我更愿意坚持使用防伪包,否则我将被迫手动迁移文档中的所有校样。如果我能以某种方式重新定义编号以添加单词“附录”,那就容易多了。有一个可以重新定义的 \appendixsectionformat 命令,但这只会改变附录部分标题中“A.”部分之后发生的事情。即“A. [在此处更改文本]”。
例如,以下代码
\documentclass[11pt]{article}
\usepackage[bibliography = common]{apxproof}
\usepackage{amsmath, amsthm}
\usepackage{hyperref}
\begin{document}
\section{Introduction}
\section{Main}
\begin{theorem} \label{theorem:label} This is an example theorem.
\end{theorem}
\begin{toappendix} % This is from the apxproof package
\begin{proof}[\hypertarget{proof:theorem:label}{Proof of Theorem \ref{theorem:label}}]
The proof goes here.
\end{proof}
\end{toappendix}
\end{document}
将生成一个文档,其中创建“1. 简介”、“2. 主要”和“A. 第 2 节(主要)的证明”部分。定理陈述出现在第 2 节中,但其证明出现在附录 A 中。我的目标是让附录部分标题改为“附录 A. 第 2 节(主要)的证明”。
从 apxproof 文档来看,当前外观可能如下所示(将单词“Usage”替换为“Main”,将“Foobar”替换为“Theorem”):
如果相关的话,我在 .sty 文件中找到了这个防伪:
\newcommand\axp@writesection{%
\ifx\axp@sectitle\@empty
\else
\edef\axp@tmp{%
\noexpand\global\noexpand\def
\expandonce{\csname axp@protectref@\roman{axp@seccounter}\endcsname}{%
\noexpand\ref{axp@s\roman{axp@seccounter}}%
}%
}%
\immediate\write\@auxout{\expandonce\axp@tmp}
\immediate\write\axp@proofsfile{%
\expandonce\axp@tmp^^J%
\noexpand\axp@section{%
\noexpand\appendixsectionformat{%
\protect
\expandonce{\csname axp@protectref@\roman{axp@seccounter}\endcsname}%
}{\expandonce\axp@sectitle}%
}%
}%
\nosectionappendix
\fi
}
我想知道这是可以修改的地方吗?如果可以,我该如何修改这部分代码。
答案1
以下是一个解决方法:
对于每个具有相应附录部分的部分,您可以插入以下代码。
\section{My first section with proofs}\label{first:section}
\begin{toappendix}
\section*{Appendix A. Proofs for Section \ref{first:section}}
% This version removes the numbering from the table of contents/document outline
\end{toappendix}
%
% Your theorems/proofs go here
%
\section{My second section with proofs}\label{second:section}
\begin{toappendix}
\section*{Appendix B. Proofs for Section \ref{second:section}}
\addcontentsline{toc}{section}{\protect\numberline{}Appendix B. Proofs for Section \ref{second:section} (My second section with proofs)}
\renewcommand{\theequation}{B.\arabic{equation}}
% This version adds back in the numbering to the table of contents / document outline, as well as sets equation numbering
\end{toappendix}
重要的是你使用\section*
否则防伪包将附加其自己的编号,例如“A. 附录 A”。但是,这意味着您将丢失目录中的编号和外观。要解决这个问题,请使用第二个示例,其中\addcontentsline
允许您手动将编号重新插入目录中。此外,您还将丢失方程编号的部分。例如,在附录 A 中,您的方程标签将看起来像 (.1)、(.2),而不是 (A.1)、(A.2)。上面\renewcommand{\theequation}{B.\arabic{equation}}
第二个附录部分中添加的行将为方程标签提供正确的编号 (B.1)、(B.2) 等等。
这是一个有点手动的解决方案,但每个附录只需要执行一次。例如,如果您只有一个部分有证明,则只需手动添加此代码一次。使用时可能有一种方法可以获取实际的章节标题文本,\addcontentsline
但我不知道有这样的解决方案。但最重要的是,这可以让您保持定理/证明在文本中的位置不变。