KOMA 脚本:附录部分 A1.1、A1.2、...A2.1 和大写的 TOC 章节条目

KOMA 脚本:附录部分 A1.1、A1.2、...A2.1 和大写的 TOC 章节条目

我使用 xelatex 和 KOMA 脚本类 scrreprt。现在我必须将我的论文附录编号为章节 A1.1、A1.2 和小节 A1.1.1 等。目录中的章节条目(包括章节附录)应设置为大写。

因此,我重新定义了 \thesection 和 \thesubsection。hyperref 选项 hypertexnames=false 确保链接正确链接。但现在我希望目录条目 A1.1,... 与正常章节和子章节编号对齐,例如:

 1.1 Section
     1.1.1 Subsection
A1.1 Appendix Section
    A1.1.1 Appendix Subsection

使用 fontspec 设置主字体 Verdana 还会减小 A1.1 与相应 TOC 条目之间的间距:

目录中章节和子章节条目的间距减小

这可能是由于未将 A 定义为附录前缀造成的。

此外,我尝试使用以下方法将目录章节条目变为大写:

\addtokomafont{chapterentry}{\MakeUppercase} 

但是这会为 .toc 文件生成错误消息。不知何故,这对于文本本身的章节标题来说却很有效,而且 \nameref chapter 不是按预期的大写。

希望有人能帮我将附录条目对齐,并将章节条目改为大写。先谢谢大家了!

这是我的 MWE:

% !TEX TS-program = xelatex

\documentclass[
a4paper,
10pt,
]{scrreprt}

\usepackage[no-math]{fontspec}
\PassOptionsToPackage{no-math}{fontspec}

\usepackage{footnotebackref}

\usepackage[showframe]{geometry}

\setmainfont[BoldFont={Verdanab.ttf},ItalicFont={Verdanai.ttf}]{Verdana.ttf} % <<< Reduces spacing in toc entries

\setlength{\parindent}{0pt}

% Chapter title
\setkomafont{chapter}{\Large\normalfont\bfseries\MakeUppercase}
\RedeclareSectionCommand[beforeskip=0pt]{chapter}

% TOC entry chapter level
\RedeclareSectionCommand[
toclinefill=\TOCLineLeaderFill
]{chapter}

\setkomafont{chapterentry}{\normalfont\bfseries}
%\addtokomafont{chapterentry}{\MakeUppercase} % <<< This does not work


% Section title
\setkomafont{section}{\large\normalfont\bfseries}

% Subsection/Subsubsection title
\setkomafont{subsection}{\normalsize\normalfont\bfseries}

\hypersetup{ 
    hypertexnames=false,
    colorlinks=true,
    citecolor=black,
    linkcolor=black,
    urlcolor=black,
    bookmarksnumbered,
    bookmarksdepth=2,
    bookmarksopenlevel=1,
    bookmarksopen=true,
} 

\begin{document}

\tableofcontents

\chapter{Main Body}

Reference to appedix \ref{app: First Appendix} or sub-appendix \ref{app: First Sub-Appendix}

\section{Section}

\subsection{Subsetion}

\chapter{Appendices}

\renewcommand{\thesection}{A\arabic{chapter}.\arabic{section}}
\renewcommand{\thesubsection}{A\arabic{chapter}.\arabic{section}.\arabic{subsection}}
\renewcommand{\thesubsubsection}{A\arabic{chapter}.\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
\setcounter{chapter}{1}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}

\section{First Appendix} \label{app: First Appendix}

\subsection{Fist Sub-Appendix} \label{app: First Sub-Appendix}

\end{document}

答案1

我只需使用 \appendix 命令,并通过 tocentry 命令设置大写,添加一个带有参数的复杂命令(如\MakeUppercase字体命令)必然会在这个地方中断,因为参数包含链接命令。

\documentclass[
a4paper,
10pt,
]{scrreprt}

\usepackage[no-math]{fontspec}
\PassOptionsToPackage{no-math}{fontspec}

\usepackage{footnotebackref,etoolbox}

\usepackage[showframe]{geometry}

\setmainfont[BoldFont={Verdanab.ttf},ItalicFont={Verdanai.ttf}]{Verdana.ttf} % <<< Reduces spacing in toc entries

\setlength{\parindent}{0pt}

% Chapter title
\setkomafont{chapter}{\Large\normalfont\bfseries\MakeUppercase}
\RedeclareSectionCommand[beforeskip=0pt]{chapter}

% TOC entry chapter level
\RedeclareSectionCommand[
toclinefill=\TOCLineLeaderFill
]{chapter}

\setkomafont{chapterentry}{\normalfont\bfseries}

\renewcommand{\addchaptertocentry}[2]{%
\IfArgIsEmpty{#1}
 {\addcontentsline{toc}{chapter}{\protect\nonumberline\texorpdfstring{\protect\MakeUppercase{#2}}{#2}}}
 {\addcontentsline{toc}{chapter}{\protect\numberline{#1}\texorpdfstring{\protect\MakeUppercase{#2}}{#2}}}%
}%

% Section title
\setkomafont{section}{\large\normalfont\bfseries}

% Subsection/Subsubsection title
\setkomafont{subsection}{\normalsize\normalfont\bfseries}

\hypersetup{
    hypertexnames=false,
    colorlinks=true,
    citecolor=black,
    linkcolor=black,
    urlcolor=black,
    bookmarksnumbered,
    bookmarksdepth=2,
    bookmarksopenlevel=1,
    bookmarksopen=true,
}

\begin{document}

\tableofcontents

\chapter{Main Body}

Reference to appedix \ref{app: First Appendix} or sub-appendix \ref{app: First Sub-Appendix}

\section{Section}

\subsection{Subsetion}

\appendix
\chapter{Appendices}

\section{First Appendix} \label{app: First Appendix}

\subsection{Fist Sub-Appendix} \label{app: First Sub-Appendix}

\end{document}

相关内容