我已将文档的默认衬线字体更改为使用旧式数字(我认为它们看起来相当不错)。但是,在目录中子节的衬线条目中(节条目采用无衬线字体),旧式数字作为节号和页码相当奇怪。我想将它们更改为“正常”数字。我可以使用 和 来设置节条目字体\setkomafont{sectionentry}
,\setkomafont{sectionentrypagenumber}
但其他条目没有这样的功能,并且在周围的块中设置字体\tableofcontents
也无济于事。
我怎样才能达到我想要的效果?
编辑
这是一个 MWE。
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle,Mapping=tex-text]{Linux Libertine}
\setsansfont[Mapping=tex-text]{Linux Biolinum}
\newfontfamily\NoOldStyleNumsSerif[Mapping=tex-text]{Linux Libertine}
\begin{document}
{\NoOldStyleNumsSerif \tableofcontents}
\section{foo}
\subsection{bar}
Some text 0123456789
\end{document}
请注意,页码仍然以旧式数字呈现:
答案1
免责声明:我不使用fontspec
,因此可能有更优雅的方法来做到这一点。
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle]{Cambria}
\setsansfont{Calibri}
\newfontfamily\tocmainfont{Cambria}
\usepackage{tocloft}
\renewcommand*{\cftsecfont}{\sffamily\bfseries}
\renewcommand*{\cftsecpagefont}{\sffamily\bfseries}
\renewcommand*{\cftsubsecfont}{\tocmainfont}
\renewcommand*{\cftsubsecpagefont}{\tocmainfont}
\begin{document}
\tableofcontents
\section{foo}
\subsection{bar}
Some text 0123456789
\end{document}
答案2
这是需要 KOMA-Script 3.20 或更新版本的建议。无需其他toc
软件包。
\documentclass{scrartcl}[2016/05/10]
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle]{Cambria}
\setsansfont{Calibri}
\newfontfamily\NoOldStyleNumsSerif{Cambria}
\newcommand\tocmainfont[1]{%
\NoOldStyleNumsSerif #1%
}
\RedeclareSectionCommands[
tocentrynumberformat=\tocmainfont,
tocpagenumberformat=\tocmainfont
]{subsection,subsubsection}
\DeclareTOCStyleEntry[
entrynumberformat=\tocmainfont,
pagenumberformat=\tocmainfont
]{default}{figure}
\DeclareTOCStyleEntry[
entrynumberformat=\tocmainfont,
pagenumberformat=\tocmainfont
]{default}{table}
\begin{document}
\tableofcontents
\listoffigures
\section{foo}
Some text 0123456789
\subsection{bar}
\setcounter{subsection}{8}
\subsection{A figure caption}
\setcounter{figure}{8}
\captionof{figure}{Test}
\end{document}