防止短划线和括号之间出现换行符

防止短划线和括号之间出现换行符

当提到仍然健在的人时,我会给出出生年份,后面跟着一个短划线,全部放在括号中,例如 Jim Foo (1977--)。有时这会导致短划线和右括号之间出现换行符。有什么方法可以防止这种情况发生,以便 Jim Foo (1977--) 全部在同一行上?

答案1

正如芭芭拉 (Barbara) 已经展示的那样,你应该把它放在 a 中\mbox以防止换行。

\mbox就像内容放在盒子里一样,不易破碎。

如果你想让生活更轻松,你可以创建自己的命令:

\documentclass[12pt]{article}    
\newcommand{\alive}[2]{{#1} \mbox{({#2}--)}}
\begin{document}
\alive{Jim Foo}{1977}
\end{document}

答案2

您可以使用\nobreakdash来自amsmath

\documentclass{article}

\usepackage{amsmath}

\textwidth=2.9cm


\begin{document}

\noindent X\dotfill X

Jim Foo (1977\nobreakdash--)

\end{document}

答案3

在此处输入图片描述

除了限制整个日期范围之外,还有一些其他可能性,可能更方便,也可能更不方便,这取决于创作要求。

\documentclass{article}

\textwidth=2.9cm
\begin{document}

\noindent X\dotfill X

Jim Foo (1977--)


Jim Foo \mbox{(1977--)}

Jim Foo (1977\mbox{--})

Jim Foo (1977\nobreakdashes--)

\exhyphenpenalty=10000 % global affecting - and --- as well as --
Jim Foo (1977--)


\end{document}

相关内容