![带有等宽老式数字的目录](https://linux22.com/image/338337/%E5%B8%A6%E6%9C%89%E7%AD%89%E5%AE%BD%E8%80%81%E5%BC%8F%E6%95%B0%E5%AD%97%E7%9A%84%E7%9B%AE%E5%BD%95.png)
我在论文中使用旧式数字,并注意到目录中的页码没有提供一条直线。下图显示了来自包含 11 个子节的节的数字的这种行为。
对于 KOMA-Script 类,scrartcl
可以通过向 添加Numbers=Monospaced
字体功能来修改 中的章节数(或 中的节数) sectionentrypagenumber
。但是,据我所知,较低级别的节数不支持此功能。
如何在目录中获取等宽旧式数字?
编辑:我使用@egreg的解决方案来获取等宽数字,并添加了行
\addtokomafont{disposition}{\rmfamily\addfontfeatures{Numbers=Monospaced}}
将所有章节都排版为等宽数字。
不幸的是,@egreg 的解决方案破坏了该siunitx
软件包,它开始使用普通文本字体而不是数学字体。我通过添加以下行解决了这个问题:
\sisetup{math-rm=\symrm}
\documentclass[a5paper,DIV=9]{scrartcl}
\addtokomafont{disposition}{\rmfamily}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}[Numbers=OldStyle]
\usepackage{lipsum}
\begin{document}
\tableofcontents
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\end{document}
答案1
您可以暂时重置目录的主字体:
\documentclass[a5paper,DIV=9]{scrartcl}
\addtokomafont{disposition}{\rmfamily}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}[Numbers=OldStyle]
% the following just for testing
\newfontfamily{\msf}{Latin Modern Roman}[Numbers={OldStyle,Monospaced}]
\usepackage{lipsum}
\begin{document}
\begingroup
\setmainfont{Latin Modern Roman}[
Numbers={OldStyle,Monospaced},
]
\tableofcontents
\endgroup
Numbers should now be not monospaced:
1234567890
{\msf 1234567890}
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\section{a}
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\subsection{a}
\lipsum
\end{document}
从测试中你会看到,目录后顶行的图形不是等宽的,而底行的图形是等宽的。
答案2
KOMA-Script v3.20 及其子包中出现了另一种可能性tocbasic
:可以使用命令修改目录条目的字体\DeclareTOCStyleEntry
。
对于我的scrbook
,我添加了以下几行:
% Define new font family with roman font and monospaced, oldstyled numbers
\newfontfamily{\msf}{Latin Modern Roman}[Numbers={OldStyle,Monospaced}]
% switch all headings and pagenumbers in the document
\addtokomafont{disposition}{\msf}
\addtokomafont{pagenumber}{\msf}
% switch entries in toc
\DeclareTOCStyleEntry[entryformat=\msf\bfseries,pagenumberformat=\msf\bfseries]{default}{chapter}
\DeclareTOCStyleEntry[entryformat=\msf,pagenumberformat=\msf]{default}{section}
\DeclareTOCStyleEntry[entryformat=\msf,pagenumberformat=\msf]{default}{subsection}
我决定将 改为entryformat
,以便entrynumberformat
在文档中保持一致的风格(参见\addkomafont{disposition}{...}
)。此外,还entrynumberformat
继承自entryformat
。