在我的文本中,我使用了很多日期。现在我遇到了以下问题:(1480–1541
两个数字,中间有一个破折号)出现在一行的末尾,并延伸到行边空白处,而没有正确地分隔到下一行。我猜这是破折号造成的。类似的东西1480–\-1541
不起作用,因为它添加了一个额外的连字符。那么,我如何才能获得正确的结果:
... ... ... 1480–
1541?
答案1
塞巴斯蒂安,
我相信你想要的是\emergencystretch
,例如\emergencystretch=3em
。这允许 TeX 在应用其换行算法时具有更多的灵活性。
这是一个简单的例子,后面是一张图片。尝试使用0em
(LaTeX 默认值)和之间的不同值,5em
然后让我们知道这是否适合您。
\documentclass{article}
\usepackage{amsmath}
\setlength{\topmargin}{-1.3in}
\setlength{\textheight}{11in}
\begin{document}
\newcommand{\composers}{\noindent
A short list of famous composers includes Bach (1685--1750),
Beethoven (1770--1827), Brahms (1833--1897), Chopin (1810--1849),
Elgar (1857--1934), Handel (1685--1759), Haydn (1732--1809),
Holst (1874--1934), Gustav (1860--1911), Mendelssohn (1809--1847),
Mozart (1756--1791), Scarlatti (1685--1757), Schubert (1797--1828),
Schumann (1810--1856), Shostakovich (1906--1975), Sibelius (1865--1957),
Tchaikovsky (1840--1893), and Vivaldi (1678--1741).\par}
\emergencystretch=3em
\composers\narrower\composers\narrower\composers\narrower\composers
\narrower\composers\narrower\composers\narrower\composers
\end{document}
效果如下 — 不再有框过满或未满的情况。 :) 虽然不完美,但可能对您排版的文本有用。您的边距有多宽/多窄?下面的示例输出经过了几次缩小:
答案2
您可以在连字符前尝试\nobreakdash
,以防止它在行末断开。因此您的示例将是
1480\nobreakdash-1541