我在 Win7 上使用 MikTex 和 pdfLaTeX。我有一个这样的章节标题:
\section{Naming conventions - CamelCase and SNAKE\_CASE}
标题总体上呈现良好,但它没有换行。相反,它一直延伸到右边距,几乎超出了页面。所有其他标题(有些比这个长得多)都换行正常。当我删除 时\_
,它开始正确换行,它会在下划线的位置换行。
这是怎么回事?我猜是它不知道如何在下划线处断线,而下划线恰好是断线的最佳位置,所以不知为何它就变得愚蠢了。我该如何解决这个问题?
答案1
您可以\allowbreak
在之前添加\_
:
\documentclass{article}
\begin{document}
\section{Naming conventions - CamelCase and SNAKE\_CASE}
\section{Naming conventions - CamelCase and SNAKE\allowbreak\_CASE}
\end{document}
单词中的非字母字符往往会在此时停止连字算法,例如
\showhyphens{SNAKELIKE\_SNAKELIKE}
生产
[] \OT1/cmr/m/n/10 SNAKE-LIKE[]SNAKELIKE
表明只能考虑那一次中断,
\showhypehns{SNAKE\_CASE}
生产
[] \OT1/cmr/m/n/10 SNAKE[]CASE
有些字符,例如,/
有允许中断的版本,在这种情况下\slash
。否则,您可以使用\allowbreak
方法或\discretionary{pre-break}[post-break}{no-break}
,例如
\discretionary{-}{\_}{\_}
会在出现此断行时添加连字符。请注意,单词后续部分的连字符仍处于禁用状态,除非您还添加了类似\hskip0pt
\showhyphens{SNAKELIKE\allowbreak\_\hskip0pt SNAKELIKENESS}
[] \OT1/cmr/m/n/10 SNAKE-LIKE[] SNAKE-LIKE-NESS