scrreprt - 目录混合了衬线和非衬线字体

scrreprt - 目录混合了衬线和非衬线字体

使用scrreprt文档类,我得到了一个目录,其中除部分内容外,所有内容均使用无衬线字体: enter image description here

现在,我还被要求将这些部分也更改为无衬线字体。在我的计算机上tex --version显示TeX 3.14159265 (TeX Live 2015/Debian),但从我在寻找解决方案时看到的情况来看,这实际上似乎是预期的默认行为,因此它应该可以在使用此 MWE 的其他机器上重现:

\documentclass[toc=chapterentrywithdots]{scrreprt}
\begin{document}
    \tableofcontents
    \chapter{Testing Text Chapter 1}
        Testing Text Chapter 1
        \section{Testing Text Section 1}
            Testing Text Section 1
        \section{Testing Text Section 2}
            Testing Text Section 2
\end{document}

关于这个主题最常见的问题似乎是如何将整个文档的字体改为非衬线字体或衬线字体,但这不是我想要实现的。目前,我的整个文档中都有非衬线标题和衬线文本,应该保持这种状态。只有目录中的部分应该是非衬线字体,最好使用干净的解决方案,而不是肮脏的黑客。

答案1

使用较旧的 KOMA-Script 版本(例如 TL 2015 中的版本),您可以使用

\AfterTOCHead[toc]{\sffamily\renewcommand\familydefault{\sfdefault}}

这也适用于最新的 KOMA-Script 版本。但请注意,它还会更改子节、子子节等目录条目的字体系列。

例子:

\documentclass[toc=chapterentrywithdots]{scrreprt}

\AfterTOCHead[toc]% without the optional argument, it also affects LoF and LoT
  {\sffamily\renewcommand\familydefault{\sfdefault}}

\begin{document}
    \tableofcontents
    \chapter{Testing Text Chapter 1}
        Testing Text Chapter 1 \KOMAScriptVersion
        \section{Testing Text Section 1}
            Testing Text Section 1
        \section{Testing Text Section 2}
            Testing Text Section 2
\end{document}

结果:

enter image description here


只有最新的 KOMA-Script 版本(不适用于 TL 2015!)您可以使用

\RedeclareSectionCommand[%
  tocentryformat=\sffamily,%
  tocpagenumberformat=\sffamily
]{section}

或者如果还有小节

\RedeclareSectionCommands[% note the "s" at the end
  tocentryformat=\sffamily,%
  tocpagenumberformat=\sffamily% 
]{section,subsection}

或者你可以使用

\DeclareTOCStyleEntry[% note the "s" at the end
  entryformat=\sffamily,%
  pagenumberformat=\sffamily% 
]{default}{section}

这也可以分别用于LOF 和 LOT 中的figuretable条目:

\DeclareTOCStyleEntry[% note the "s" at the end
  entryformat=\sffamily,%
  pagenumberformat=\sffamily% 
]{default}{figure}

答案2

我不知道这是否是最简单的方法,但是这是有效的:

\documentclass[toc=chapterentrywithdots]{scrreprt}
\begin{document}

\RedeclareSectionCommand[%
tocentryformat=\sffamily%
]{section}

    \tableofcontents
    \chapter{Testing Text Chapter 1}
        Testing Text Chapter 1
        \section{Testing Text Section 1}
            Testing Text Section 1
        \section{Testing Text Section 2}
            Testing Text Section 2
\end{document}

pic of toc with sectionentry in sansserif

相关内容