将目录中的章节名称大写,scrbook

将目录中的章节名称大写,scrbook

因此,我尝试将目录中的章节名称大写,以将其与部分名称区分开来。我真的不知道我在做什么。所以我尝试了以下方法:

  1. 文档明确指出不要使用\MakeUppercase无效的内容。
  2. 我无法\uppercase工作,它会隔开文本,忽略任何其他格式(\hfill),并重置页码的字体设置。
  3. 使用 expl3 将命令用作to_uppercase可扩展命令只会导致它打印出 .55emi 但也会带有重置字体。
  4. 我希望我可以使用koma-script 文档中的onstartentryonendentry,但它们对我来说也不起作用。否则我可能会创建一个大写环境。
  5. 我目前的解决方法是通过更新将添加到目录中的任何章节设置为大写\addchaptertocentry,但这会带来令人讨厌的副作用,即来自 hyperref 的超链接也是如此。

梅威瑟:

\documentclass{scrbook}
\usepackage{AlegreyaSans, blindtext, color}
\newcommand{\mediumsansfont}{\AlegreyaSansMedium}
\newcommand{\regularsansfont}{\sffamily}

\setcounter{secnumdepth}{-\maxdimen}
\setcounter{tocdepth}{2}

\DeclareTOCStyleEntry[
    pagenumberformat={\color{blue}\mediumsansfont},
    indent=0em,
    linefill=\hfill,
    entryformat={\regularsansfont\bfseries\color{blue}}
]{default}{chapter}

\DeclareTOCStyleEntry[
    pagenumberformat={\color{black}\mediumsansfont},
    indent=0em,
    linefill=\hfill,
    entryformat={\regularsansfont\bfseries\color{blue}}
]{default}{section}

\DeclareTOCStyleEntry[
    pagenumberformat={\mediumsansfont},
    indent=1.5em,
    linefill=\hfill,
    entryformat={\mediumsansfont}
]{default}{subsection}

\begin{document}
\tableofcontents
\Blinddocument
\end{document}

请帮忙。

答案1

不确定这是否有一些副作用。

没有注意到你的问题。这是你第 5 点提到的方法吗?如果是的话,我可能需要删除它。

\documentclass{scrbook}
\usepackage{AlegreyaSans, blindtext, color}
\newcommand{\mediumsansfont}{\AlegreyaSansMedium}
\newcommand{\regularsansfont}{\sffamily}

\setcounter{secnumdepth}{-\maxdimen}
\setcounter{tocdepth}{2}

\DeclareTOCStyleEntry[
    pagenumberformat={\color{blue}\mediumsansfont},
    indent=0em,
    linefill=\hfill,
    entryformat={\regularsansfont\bfseries\color{blue}}
]{default}{chapter}

\DeclareTOCStyleEntry[
    pagenumberformat={\color{black}\mediumsansfont},
    indent=0em,
    linefill=\hfill,
    entryformat={\regularsansfont\bfseries\color{blue}}
]{default}{section}

\DeclareTOCStyleEntry[
    pagenumberformat={\mediumsansfont},
    indent=1.5em,
    linefill=\hfill,
    entryformat={\mediumsansfont}
]{default}{subsection}

\usepackage{etoolbox}
\patchcmd{\addchaptertocentry}{{#1}{#2}}{{#1}{\texorpdfstring{\uppercase{#2}}{#2}}}{}{}
\usepackage{hyperref}

\begin{document}
\tableofcontents
\Blinddocument
\end{document}

在此处输入图片描述

相关内容