在 scrartcl 中更改 ToC 子部分条目字体

在 scrartcl 中更改 ToC 子部分条目字体

我已将文档的默认衬线字体更改为使用旧式数字(我认为它们看起来相当不错)。但是,在目录中子节的衬线条目中(节条目采用无衬线字体),旧式数字作为节号和页码相当奇怪。我想将它们更改为“正常”数字。我可以使用 和 来设置节条目字体\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}

在此处输入图片描述

相关内容