LaTeX: Ngăn chặn ngắt dòng trong một đoạn văn bản


148

Làm cách nào tôi có thể ngăn LaTeX chèn các ngắt dòng trong vùng \texttt{...}hoặc \url{...}văn bản của mình? Không có không gian bên trong tôi có thể thay thế ~, nó chỉ phá vỡ các biểu tượng.

Cập nhật : Tôi không muốn gây ra tràn dòng, tôi chỉ muốn chèn các ngắt dòng LaTeX trước các khu vực này chứ không phải bên trong chúng.

Câu trả lời:


157

\mboxlà câu trả lời đơn giản nhất. Về bản cập nhật:

TeX thích các dòng quá dài để thêm quá nhiều khoảng trống giữa các từ trên một dòng; Tôi nghĩ ý tưởng là bạn sẽ chú ý đến các dòng kéo dài vào lề (và các hộp đen mà nó chèn sau các dòng đó) và sẽ có cơ hội sửa đổi nội dung, trong khi nếu có quá nhiều không gian, bạn có thể không nhận thấy nó

Sử dụng \sloppyhoặc \begin{sloppypar}...\end{sloppypar}để điều chỉnh hành vi này, ít nhất một chút. Một khả năng khác là \raggedright(hoặc \begin{raggedright}...\end{raggedright}).


64

Bao quanh nó với một \mbox{}


4
Điều này có khuyến khích LaTeX chèn một dòng ngắt trước khu vực nếu nó tràn qua dòng không?
hung hăng

1
Không. \nohyphens{}Lệnh, được tìm thấy trong hypenatgói, chỉ có thể.
Michiel Buddingh

1
Cám ơn vì sự gợi ý. Tôi vừa thử \ nohyphens {\ url {...}} và nó vẫn cho phép ngắt dòng.
hung hăng

31

Ngoài ra, nếu bạn có hai từ tiếp theo trong văn bản thông thường và bạn muốn tránh ngắt dòng giữa chúng, bạn có thể sử dụng ký tự ~.

Ví dụ:

As we can see in Fig.~\ref{BlaBla}, there is nothing interesting to see. A~better place..

Điều này có thể đảm bảo rằng bạn không có một dòng bắt đầu bằng số hình (không có phần Hình) hoặc bằng chữ A.


12
Chỉ cần lưu ý rằng đó ~là một ký tự không gian không phá vỡ , nghĩa là, nó cũng chèn một khoảng trắng (đôi khi người ta có thể muốn ngăn chặn phá vỡ mà không chèn một khoảng trắng).
sdaau

24

Sử dụng \ nolinebreak

\ nolinebreak [số]

Lệnh \ nolinebreak ngăn LaTeX phá vỡ dòng hiện tại tại điểm của lệnh. Với đối số tùy chọn, số, bạn có thể chuyển đổi lệnh \ nolinebreak từ yêu cầu sang yêu cầu. Số phải là một số từ 0 đến 4. Số càng cao, yêu cầu càng khăng khăng.

Nguồn: http://www.personal.ceu.hu/tex/breaking.htmlm#nolinebreak


14

Xác định lệnh myurl:


\def\myurl{\hfil\penalty 100 \hfilneg \hbox}

I don't want to cause line overflows, 
I'd just rather LaTeX insert linebreaks before 
\myurl{\tt http://stackoverflow.com/questions/1012799/} 
regions rather than inside them.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.