LaTeX: ป้องกันการแบ่งบรรทัดในช่วงข้อความ


148

ฉันจะป้องกันไม่ให้ LaTeX แทรกการกระจายบรรทัดในภูมิภาค\texttt{...}หรือ\url{...}ข้อความของฉันได้อย่างไร ไม่มีช่องว่างภายในที่ฉันสามารถแทนที่~ได้มันแค่ทำลายสัญลักษณ์

อัปเดต : ฉันไม่ต้องการที่จะทำให้เกิดการล้นบรรทัดฉันเพียง แต่ต้องการแทรก LaTeX linebreaks ก่อนภูมิภาคเหล่านี้มากกว่าภายในพวกเขา

คำตอบ:


157

\mboxเป็นคำตอบที่ง่ายที่สุด เกี่ยวกับการอัพเดท:

TeX ชอบเส้นที่ยาวเกินไปเพื่อเพิ่มช่องว่างระหว่างคำในบรรทัดมากเกินไป ฉันคิดว่าความคิดนี้คือคุณจะสังเกตเห็นเส้นที่ขยายไปถึงระยะขอบ (และกล่องดำที่แทรกหลังจากเส้นดังกล่าว) และจะมีโอกาสแก้ไขเนื้อหาในขณะที่ถ้ามีพื้นที่มากเกินไปคุณอาจไม่สังเกตเห็น มัน.

ใช้\sloppyหรือ\begin{sloppypar}...\end{sloppypar}เพื่อปรับพฤติกรรมนี้อย่างน้อยก็น้อย ความเป็นไปได้อีกอย่างคือ\raggedright(หรือ\begin{raggedright}...\end{raggedright})


64

ล้อมรอบด้วย \mbox{}


4
สิ่งนี้จะกระตุ้นให้ LaTeX แทรกการแตกแถวก่อนที่ภูมิภาคหรือไม่ถ้ามันล้นเส้น?
rampion

1
ไม่\nohyphens{}คำสั่งที่พบในhypenatแพ็คเกจอาจทำได้
Michiel Buddingh

1
ขอบคุณสำหรับคำแนะนำ ฉันเพิ่งลอง \ nohyphens {\ url {... }} และมันยังยอมให้มีการแพร่กระจาย
rampion

31

นอกจากนี้หากคุณมีสองคำต่อมาในข้อความปกติและคุณต้องการหลีกเลี่ยงการแบ่งบรรทัดระหว่างคำเหล่านั้นคุณสามารถใช้อักขระ ~

ตัวอย่างเช่น:

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

สิ่งนี้สามารถมั่นใจได้ว่าคุณไม่มีบรรทัดที่ขึ้นต้นด้วยหมายเลขรูป (ไม่มีส่วนที่รูป) หรือด้วยตัวพิมพ์ใหญ่ A


12
เพียงเพื่อให้ทราบว่า~เป็นอักขระช่องว่างที่ไม่ทำลายนั่นคือมันยังแทรกช่องว่าง (บางครั้งอาจต้องการป้องกันการแตกโดยไม่ต้องแทรกช่องว่าง)
sdaau

24

ใช้ \ nolinebreak

\ nolinebreak [หมายเลข]

คำสั่ง \ nolinebreak ป้องกัน LaTeX ไม่ให้แบ่งบรรทัดปัจจุบันที่จุดของคำสั่ง ด้วยอาร์กิวเมนต์ number ที่เป็นทางเลือกคุณสามารถแปลงคำสั่ง \ nolinebreak จากความต้องการเป็นการร้องขอ ตัวเลขจะต้องเป็นตัวเลขตั้งแต่ 0 ถึง 4 ยิ่งมีจำนวนมากเท่าใดการร้องขอก็จะยิ่งยืนหยัดมากขึ้น

ที่มา: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak


14

กำหนดคำสั่ง 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.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.