目录中的动态章节名称错误

目录中的动态章节名称错误

我想打印带有前缀“附录 A:[某些标题]”,“附录 B:[某些其他标题]”...的附录标题。

我使用了以下定义的命令(最后可运行 tex-document):

\newcounter{rsss}

\DeclareRobustCommand{\appendixString}{
    \setcounter{rsss}{\value{chapter}}
    \addtocounter{rsss}{- \value{chapterCounter}}
    Appendix\Alph{rsss} :
}
\DeclareRobustCommand{\appendixStringHeadline}{
    \setcounter{rsss}{\value{chapter}}
    \addtocounter{rsss}{- \value{chapterCounter}}
    \addtocounter{rsss}{1}
    Appendix \Alph{rsss} :
}

\DeclareRobustCommand{\appendix}[2]{
    \addchap[\appendixStringHeadline #1]{\appendixStringHeadline     #1}\label{#2}
    \ihead{
    \appendixString #1
    }
    \stepcounter{chapter}
}

这对标题和大标题有效,但在目录中,始终有“附录 A”。我该如何修复此问题?我尝试使用 手动设置目录名称[],但此方法无效 :/。感谢您的帮助 :)

可运行的 tex 文件

\documentclass{scrreprt}
\usepackage{scrpage2}\pagestyle{scrheadings}


\newcounter{chapterCounter}
\newcounter{rsss}

\DeclareRobustCommand{\appendixString}{
    \setcounter{rsss}{\value{chapter}}
    \addtocounter{rsss}{- \value{chapterCounter}}
    Appendix \Alph{rsss} :
}
\DeclareRobustCommand{\appendixStringHeadline}{
    \setcounter{rsss}{\value{chapter}}
    \addtocounter{rsss}{- \value{chapterCounter}}
    \addtocounter{rsss}{1}
    Appendix \Alph{rsss} :
}

\DeclareRobustCommand{\appendix}[2]{
    \addchap[\appendixStringHeadline #1]{\appendixStringHeadline     #1}\label{#2}
    \ihead{
        \appendixString #1
    }
    \stepcounter{chapter}
}
\begin{document}
\tableofcontents
\chapter{ Bla}
\chapter{ Bla Bla}
\appendix{test 1}{bla bla}
\appendix{test 2}{bla}

\end{document}

答案1

我不确定你为什么要使用如此复杂的方法。

\documentclass{scrreprt}
\usepackage{scrpage2}

\pagestyle{scrheadings}

\newcommand{\appendixString}{Appendix \thechapter: }

\newcommand{\addappendix}[1]{%
  \refstepcounter{chapter}
  \addchap{\appendixString #1}%
  \ihead{\appendixString #1}%
}

\begin{document}
\tableofcontents

\chapter{Bla}
\chapter{Bla Bla}

\appendix

\addappendix{test 1}\label{bla bla}
\addappendix{test 2}\label{bla}

\end{document}

在此处输入图片描述

\appendix无论如何,重新定义都不是最好的选择。

答案2

不要在 \addchap 的参数中设置计数器。

\documentclass{scrreprt}
\usepackage{scrpage2}\pagestyle{scrheadings}


\newcounter{chapterCounter}
\newcounter{rsss}

\DeclareRobustCommand{\appendix}[2]{%
    \clearpage
    \setcounter{rsss}{\value{chapter}}%
    \addtocounter{rsss}{- \value{chapterCounter}}%
    \addtocounter{rsss}{1}%
    \addchap[Anhang \Alph{rsss} : #1]{Anhang \Alph{rsss} :     #1}\label{#2}
    \ihead{%
        Appendix \Alph{rsss} : #1
    }%
    \stepcounter{chapter}
}
\begin{document}
\tableofcontents
\chapter{ Bla}
\chapter{ Bla Bla}
\appendix{test 1}{bla bla}
\appendix{test 2}{bla}

\end{document}

(我不明白为什么您要使用所有这些附加计数器,为什么不使用 KOMA 脚本提供的章节前缀,以及为什么在文本中使用“Anhang”,但在标题中使用“Appendix”但没有更改代码的这一部分。)

相关内容