2010-01-07 42 views
40

LaTeX cố gắng đoán xem một khoảng thời gian có kết thúc một câu hay không, trong trường hợp này, nó đặt thêm khoảng trống sau đó. Dưới đây là hai ví dụ mà nó dự đoán sai: ("Superman III" Quá ít không gian sau đó.)LaTeX đôi khi đặt quá nhiều hoặc quá ít không gian sau một khoảng thời gian

I watched Superman III. Then I went home. 

After brushing teeth etc. I went to bed. 

(Quá nhiều không gian sau khi "vv".)

Lưu ý rằng không quan trọng bạn sử dụng bao nhiêu khoảng trắng trong nguồn LaTeX vì LaTeX bỏ qua điều đó.

Trả lời

61

Tôi tìm thấy câu trả lời ở đây: http://john.regehr.org/latex/. Trích:

Khi khoảng thời gian không kết thúc câu được theo sau là dấu cách, khoảng trắng phải rõ ràng. Vì vậy, ví dụ thứ hai nên là:

After brushing teeth etc.\ I went to bed. 

Các converse của vấn đề này xảy ra khi một chữ cái in hoa đứng trước một thời kỳ câu kết thúc trong đầu vào, như trong ví dụ đầu tiên. Trong trường hợp này, LaTeX giả định rằng khoảng thời gian chấm dứt một từ viết tắt và theo sau nó với không gian liên từ chứ không phải là khoảng cách giữa các câu. Khắc phục là đặt "\@" trước khoảng thời gian. Vì vậy, ví dụ đầu tiên nên

I watched Superman III\@. Then I went home. 

Một cách thuận tiện để tìm lỗi này là:

grep '[A-Z]\.' *.tex 
+1

Thực tế, lệnh "\ @" đặc biệt cho mục đích này - trước một giai đoạn không kết thúc câu. – dreeves

+3

Và bạn cũng có thể viết 'etc. \ @ Tôi đã đi ngủ.' nếu bạn thích sự đối xứng. –

+2

@dreeves: theo phản hồi và kinh nghiệm của tôi, '\ @' được thiết kế để đứng trước một giai đoạn kết thúc câu, ngược lại với những gì bạn nói. – Blaisorblade

13

Bạn có thể để bên ngoài vấn đề khoảng cách nếu bạn thích không gian duy nhất ở cuối câu: đặt \frenchspacing trên (đối với các phiên bản cũ của Latex, đây là một lệnh dễ vỡ). Knuth đã làm theo cách đặt tên truyền thống trong việc gọi nó là khoảng cách của Pháp, mặc dù gọi khoảng cách gấp đôi sau khi các câu tiếng Pháp đã trở nên thống trị trong xuất bản.

Dirk Margulis đã viết một bài đăng tuyệt vời tóm tắt một số lý do cho sự phổ biến của khoảng cách đơn: Space between sentences.

5

Tôi thích câu trả lời từ dreeves và tìm kiếm tiện dụng mà anh ấy cũng đề xuất. Tôi không có "đại diện" Stackoverflow chỉ để nhận xét, nhưng ...

Vì dòng trong * .tex thô có xu hướng rất dài, đầu ra từ grep có thể bị áp đảo (tức là toàn bộ đoạn); Tôi đề xuất một biến thể để chỉ hiển thị các từ kết thúc bằng '[A-Z].' (theo sau là một hoặc nhiều không gian, theo sau là từ viết hoa mới). Đó là,

grep -o -E '[A-Z]+\. +[A-Z]+[A-Za-z]+' *.tex 
Các vấn đề liên quan