LaTeX: Mencegah jeda baris dalam rentang teks

148

Bagaimana saya bisa mencegah LaTeX dari menyisipkan linebreak di wilayah teks \texttt{...}atau saya \url{...}? Tidak ada ruang di dalam saya dapat menggantinya dengan ~, itu hanya melanggar simbol.

Pembaruan : Saya tidak ingin menyebabkan garis meluap, saya lebih suka LaTeX menyisipkan linebreaks sebelum wilayah ini daripada di dalamnya.

rampion
sumber

Jawaban:

157

\mboxadalah jawaban paling sederhana. Mengenai pembaruan:

TeX lebih suka baris yang terlalu panjang untuk menambahkan terlalu banyak ruang di antara kata-kata pada sebuah baris; Saya pikir idenya adalah bahwa Anda akan melihat garis-garis yang memanjang ke margin (dan kotak hitam yang dimasukkan setelah garis-garis tersebut), dan akan memiliki kesempatan untuk merevisi isinya, sedangkan jika ada terlalu banyak ruang, Anda mungkin tidak melihat Itu.

Gunakan \sloppyatau \begin{sloppypar}...\end{sloppypar}untuk menyesuaikan perilaku ini, setidaknya sedikit. Kemungkinan lain adalah \raggedright(atau \begin{raggedright}...\end{raggedright}).

Jouni K. Seppänen
sumber
64

Kelilingi dengan \mbox{}

Michiel Buddingh
sumber
4
Apakah ini akan mendorong LaTeX untuk memasukkan linebreak sebelum wilayah jika akan meluap baris?
rampion
1
Tidak. \nohyphens{}Perintah, yang ditemukan dalam hypenatpaket, mungkin saja.
Michiel Buddingh
1
Terima kasih untuk sarannya. Saya baru saja mencoba \ nohyphens {\ url {...}}, dan itu masih memungkinkan linebreak.
rampion
31

Juga, jika Anda memiliki dua kata berikutnya dalam teks biasa dan Anda ingin menghindari jeda baris di antara mereka, Anda dapat menggunakan ~ karakter.

Sebagai contoh:

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

Ini dapat memastikan bahwa Anda tidak memiliki garis yang dimulai dengan nomor gambar (tanpa bagian Fig.) Atau dengan huruf A. besar

Uri
sumber
12
Hanya untuk dicatat bahwa itu ~adalah karakter spasi yang tidak melanggar , yaitu, ia juga menyisipkan spasi (kadang-kadang orang mungkin ingin mencegah kerusakan tanpa memasukkan spasi).
sdaau
24

Gunakan \ nolinebreak

\ nolinebreak [angka]

Perintah \ nolinebreak mencegah LaTeX dari memecah baris saat ini pada titik perintah. Dengan argumen opsional, angka, Anda dapat mengonversi perintah \ nolinebreak dari permintaan ke permintaan. Angka harus berupa angka dari 0 hingga 4. Semakin tinggi angkanya, semakin mendesak permintaannya.

Sumber: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak

Tomasz
sumber
14

Tentukan perintah 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.
Alexey Malistov
sumber