![避免使用连字符,并在文本块中使用换行符](https://linux22.com/image/232796/%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8%E8%BF%9E%E5%AD%97%E7%AC%A6%EF%BC%8C%E5%B9%B6%E5%9C%A8%E6%96%87%E6%9C%AC%E5%9D%97%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8D%A2%E8%A1%8C%E7%AC%A6.png)
我的标题页上有一段自定义文本,其长度可能超过一行。默认情况下,LaTeX 会在行末用连字符连接单词,但我希望它在下一行断开。
我该如何强制实现这一点?
我知道我可以\\
在文本中使用它,但是我正在为文档创建标准模板,我希望它能够自动处理这种边缘情况,而不必记住手动分解文本。
例如
这是我的标题 longpiece-
oftext
应该
这是我的标题
longpieceoftext
答案1
看这TeX FAQ 中的答案。
防止文本块(而不是整个文档)连字的三种“简单”方法是:
将文本块封闭在
raggedright
环境中(这会使文本块的排版变得不正确,并且不太可能出现连字);将文本块括在一个组中,并将设置
\hyphenpenalty
为\exhyphenpenalty
10000;编辑:加载连字符打包并写入
\nohyphens{(text block)}
。
最小示例:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{hyphenat}
\usepackage{blindtext}
\textwidth 300pt
\begin{document}
\blindtext
\begin{raggedright}
\blindtext
\end{raggedright}
\begingroup
\hyphenpenalty 10000
\exhyphenpenalty 10000
\blindtext
\endgroup
\nohyphens{\blindtext}
\end{document}
编辑 2:比布拉特克斯该包提供了附加命令\nohyphenation
(通常应该在组内使用)和\textnohyphenation{(text)}
。
答案2
如果长文很少,而且很容易识别,那么
This is my title \mbox{longpieceoftext} with
some other \mbox{ridiculouslylongtextaddition}
应该会做你想做的事。当然,你会“得到你想要的,所以要小心”:箱子太满/太满……
答案3
答案4
最简单的解决方案:
\usepackage{hyphenat}
\DeclareCaptionTextFormat{new}{\nohyphens{#1}}