我认为以我所提出的方式解决我的问题将会很困难,因为我担心我无法为其提供 MWE。
问题是,当我输入类似 的内容时\textsc{\textup{upshape text} smallcaps text}
,我得到的所有内容都是小写字母。我已经能够检查出这个问题与我使用的字体无关。
我无法提供 MWE,因为这种情况发生在依赖于类的文档中,我正在加载非常长的包列表,并且正在进行大量处理。因此,如果有人能说出这里可能发生的事情,即使这只是一种可能性或猜测,也会很有帮助,因为其他一切都正常。
编译已打开pdfLaTeX
,并且在我正在使用的类中expl3
代码。
编辑:至于我的意图,我正在收集一些标记列表,并将其中的所有内容设置为小写字母,除了我在原文中可能用 标记的内容\textup
。希望这会有所帮助。
编辑 2:我找到了问题的根源。归根结底是biolinum
包内的问题。下一个 MWE 复制了这个问题:
\documentclass{memoir}
\usepackage{biolinum}
\begin{document}
\textsc{\textup{regular text} small caps}
\end{document}
现在,有人知道发生这种情况的原因是什么吗?当然,我感谢所有猜测、暗示或提供任何批评意见的人。
答案1
在设计 NFSS2(当前的 LaTeX 字体选择方案)时,开发人员决定采用四个“轴”:编码、字体系列、粗细和形状。他们编码了四种基本形状
- 直立
- 斜体
- 倾斜的
- 小帽子
当时,由于低内存计算机的限制,这可能就足够了。森诺·迪波伊(正如我们在意大利语中所说的“后见之明”),将小型大写字母编码为形状是一个错误。诸如libertine
和之类的软件包biolinum
会加载fontaxes
修改 NFSS2 的软件包,以便为新轴腾出空间。该命令\textup
仅更改“主要形状”属性,而不会更改区分“主要”和“次要”形状的新轴,因此次要形状仍为小型大写字母。主要形状用于直立、斜体和倾斜。
话虽如此,使用\textulc
(相应的声明是\ulcshape
),其中ulc
代表“大写和小写”。
\documentclass{memoir}
\usepackage{biolinum}
\begin{document}
\textsc{\textulc{regular text} small caps}
\end{document}