2009-06-18 111 views
106

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

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

Trả lời

100

\mbox là 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ẽ thấy các dòng mở rộng vào lề (và các hộp màu đen 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 khoảng trống, bạn có thể không nhận thấy nó.

Sử dụng \sloppy hoặ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}).

44

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

+2

này sẽ khuyến khích LaTeX để chèn một linebreak trước khu vực nếu nó sẽ tràn dòng? – rampion

+0

Không. Lệnh '\ nohyphens {}', được tìm thấy trong gói 'hypenat', có thể. –

+0

Cảm ơn bạn đã đề xuất. Tôi vừa thử \ nohyphens {\ url {...}} và nó vẫn cho phép ngắt dòng. – rampion

15

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

Ví dụ:

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

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

+4

Chỉ cần lưu ý rằng '~' là một nhân vật _space_ không bị phá hủy, có nghĩa là, nó cũng chèn một không gian (đôi khi người ta có thể muốn ngăn chặn vi phạm mà không cần lắp một không gian). – sdaau

12

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. 

13

Sử dụng \ nolinebreak

\ nolinebreak [số]

Lệnh \ nolinebreak ngăn LaTeX từ phá vỡ dòng hiện tại thời điểm các chỉ huy. Với số đối số tùy chọn , bạn có thể chuyển đổi lệnh \ nolinebreak từ yêu cầu thành 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 hơn.

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

+1

Dont làm việc cho tôi –

+0

bạn đã thử \ nolinebreak [4]? – Tomasz

+0

Vâng, nhưng đã được giải quyết với một logic khác. Cảm ơn –

Các vấn đề liên quan