为什么我的文档中以大写字母开头的单词没有连字符?(我没有使用 \uchyph=0)

为什么我的文档中以大写字母开头的单词没有连字符?(我没有使用 \uchyph=0)

我最近注意到我的论文(模板在这里) 以大写字母开头的单词没有连字符。然后,我研究并发现\uchyph=0 如何防止 TeX 对首字母缩略词进行连字符连接?然后,我观察到我的一些包正在使用它,但我没有发现任何一个包使用它。

然后,我经过一个小时的二分查找,得到了这个最小的例子,即通过从我的完整论文模板中删除添加的配置和包进行反复试验,直到得到这个最小的例子:

\documentclass[10pt,a5paper]{memoir}
\usepackage[brazil]{babel}

\usepackage{anyfontsize}
\usepackage{lmodern}
\usepackage{microtype}

\setlrmarginsandblock{2.5cm}{1.5cm}{*}
\checkandfixthelayout

\emergencystretch=50em
\renewcommand{\normalsize}{\fontsize{10.5pt}{11pt}}

\begin{document}
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens.

    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens.
\end{document}

我的序言中所有这些元素的结合导致了无法用连字符连接以大写字母开头的单词的问题。

在此处输入图片描述

我可以在不从我的论文模板中删除这些命令或包的情况下修复它吗?

在我的完整论文中,仅删除\usepackage{lmodern}包并不能解决问题。我必须同时删除\usepackage{lmodern}\usepackage{anyfontsize}

有关的:

  1. biblatex 中的水平盒溢出

答案1

在此处输入图片描述

它与大写字母无关,只是改变了宽度,从而影响了可能的换行点。您的单词非常大,\emergencystretch因此 tex 更倾向于拉伸空格而不是用连字符连接单词。

\documentclass[10pt,a5paper]{memoir}
\usepackage[brazil]{babel}

\usepackage{anyfontsize}
\usepackage{lmodern}
\usepackage{microtype}

\setlrmarginsandblock{2.5cm}{1.5cm}{*}
\checkandfixthelayout

%\emergencystretch=50em
\renewcommand{\normalsize}{\fontsize{10.5pt}{11pt}\selectfont}% \selectfont needed

\begin{document}

\showhyphens{Linguagens linguagens}

    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens Linguagens Linguagens Linguagens Linguagens
    Linguagens Linguagens.

    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens
    linguagens linguagens linguagens linguagens linguagens linguagens linguagens.
\end{document}

不使用上述紧急拉伸,你会得到一些过满的行,因为没有好的换行点,如果你增加少量拉伸,那么你可以允许换行而不会过度拉伸。使用0.5em而不是,50em你不会得到过满的行,并且

\emergencystretch=.5em

在此处输入图片描述

相关内容