我确信这是一些基本的 LaTeX 文档格式,但就我而言,我就是无法在文档中找到正确的位置来实现我想要的正确方法。
考虑以下 MWE:
\documentclass[12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\sloppypar
\begin{document}
Some normal line followed by a cyrillic long word многодългадуманакирилицабезпренасяне
\end{document}
我知道\sloppypar
这是一种不好的做法,但它确实以可接受的方式处理了我的大多数警告和文档缺陷,所以我现在坚持这样做。
此示例编译时会发出Underfull \hbox (badness 10000) in paragraph at lines 9--10
警告,这是可以理解的,因为 LaTeX 没有关于如何对有问题的西里尔字母单词进行连字符处理的说明,因此将其放在一个全新的行上,同时尝试拉伸前一行,最终结果为Underfull
。我明白了。(顺便说一句,这不是俄语,而是保加利亚语,我没有找到任何用于该语言的连字符包……因此也欢迎对此提出建议)。
本质:我现在真的没有时间重新格式化整个文档,所以我想指示 LaTeX 不要尝试拉伸前一行(基本上在\\
需要的地方像 with 一样将其断开),这现在完全让我满意。因此文档应该看起来像它的内容如下:
\documentclass[12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\sloppypar
\begin{document}
Some normal line followed by a cyrillic long word\\ многодългадуманакирилицабезпренасяне
\end{document}
现在,我实际上正在修复出现此问题的几个地方(大概 10 或 15 行),通过手动添加,我知道这很糟糕并且从长远来看难以管理,所以我真的很高兴得到一些关于如何强制执行这种行为的说明(如果可能的话\\
结合)。\sloppypar
提前谢谢了!
答案1
我很惊讶没有人建议使用“自由连字符”。自由连字符\-
在单词中适合使用连字符的位置输入为反斜杠连字符 ( )。
在英语文本中,有时需要使用自由连字符,因为可以且应该用连字符连接的单词无法自动用连字符连接,因为 (La)TeX 无法区分它是动词还是名词,并且根据单词是用作动词还是名词,断字的位置应该有所不同,例如“ pro\-gress
”(动词)与“ prog\-ress
”(名词)。
让我们用你的长西里尔字母尝试一下:
много\-дълга\-дума\-на\-кирилица\-без\-пре\-насяне
(La)TeX 将选择在当前段落内提供最佳间距的换行符。
(请不要认为这完全正确。我对保加利亚语的掌握相当不稳定;我可能对俄语掌握得更好。)
附录:
原帖作者在评论中指出,相关文档包含的保加利亚语文本不止一点点。在这种情况下,这种方法几乎肯定是更好的选择:
\usepackage[bulgarian]{babel}
@leandris 在评论中提出了以下内容:
\documentclass[12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
% \sloppypar
\begin{document}
Some normal line followed by a cyrillic long word
\foreignlanguage{bulgarian}{многодългадуманакирилицабезпренасяне}
\end{document}
我建议检查babel
文档以确定如何处理“其他”语言的更广泛的包。
答案2
TeX 多年来一直支持多种语言。
\documentclass[12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[bulgarian,english]{babel}
\usepackage{showframe} % to show page margins
\begin{document}
Some normal line followed by a cyrillic long word
\foreignlanguage{bulgarian}{многодългадуманакирилицабезпренасяне}
\end{document}
如果您的文档主要为保加利亚语,并包含英文文本,请交换:
\documentclass[12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,bulgarian]{babel}
\usepackage{showframe} % to show page margins
\begin{document}
\foreignlanguage{english}{Some normal line followed by a cyrillic long word}
многодългадуманакирилицабезпренасяне
\end{document}
如果因为复合词而不喜欢这种连字符,您可以使用"=
设置复合词边界。这是结果,也是此情况下的完整连字符。
\documentclass[12pt]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,bulgarian]{babel}
\usepackage{showframe} % to show page margins
\begin{document}
\foreignlanguage{english}{Some normal line followed by a cyrillic long word}
многодългадумана"=кирилицабезпренасяне
\parbox[t]{0pt}{\hspace{0pt}многодългадуманакирилицабезпренасяне}
\end{document}
来自以下文档babel-bulgarian
:
请注意,‘‘
实际上应该是"
(无向双引号),因此真正的简写是
"-
""
"~
"=
",