![使用 \nameref 引用附件](https://linux22.com/image/452358/%E4%BD%BF%E7%94%A8%20%5Cnameref%20%E5%BC%95%E7%94%A8%E9%99%84%E4%BB%B6.png)
我使用我的大学模板 Latex(蒙特利尔大学)来制作这些内容,但遇到了一个错误,我不知道如何修复它:我使用模板的命令来创建附件(\Annexe),但这对我来说不是一个完美的方法,因为当我想用“\nameref”在我的文本中引用它们时,我得到的是“REFERENCES”,而不是我的附件的名称。我找到了一种修复它的方法,方法是这样做:
\section*{\Annexe{Entrevue avec Frédéric Auger}}\label{section:Fred}
我知道将一个命令放入另一个命令中确实不太干净,但这解决了我现在遇到的所有问题:
- \nameref 指的是我的附件的名称(感谢 \section*,否则我得到的是“REFERENCES”);
- 在我的附件列表中,我得到了我的附件的名称(感谢 \Annexe);
- 在每个附件的底部,其标题采用良好的样式,即附件标题的样式而不是部分的样式(再次感谢 \Annexe)。
但是,现在我的消息/日志检测到我使用的每个“\nameref{}”都存在错误,因为它在真实名称之前找到“\Annex”参数...但它正在工作!我的 PDF 正是我想要的。
这是我遇到的错误:
! Undefined control sequence.
<argument> \Annexe
所以我的问题是:我该如何修复它而不丢失任何解决方案,或者我该如何忽略这些消息?我不想使用“latex -interaction nonstopmode”,因为我总是想知道我是否犯了其他错误...我试图在修改我的 .sty 文件时找到另一个解决方案,但我不明白它是如何工作的...
以下是在我的主文档中创建 \Annexe 的方式:
\ifthenelse{\equal{\AnnexesPresentes}{O}}{
\appendix%
\newcommand{\Annexe}[1]{\annexe{#1}\setcounter{figure}{0}\setcounter{table}{0}\setcounter{footnote}{0}}%
以下是我在 .sty 文件中找到的有关 \Annexe 的内容:
\def\@makeappendixhead#1{%
{\parindent \z@ \raggedright \normalfont
\centering
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\if@english
\normalsize\bfseries APPENDIX\space\thechapter
\else
\normalsize\bfseries ANNEXE\space\thechapter
\fi
%\par\nobreak
%\vskip 20\p@
\space\space\space\space
\fi
\fi
\interlinepenalty\@M
\normalsize \bfseries {\MakeUppercase{#1}}\par\nobreak
\vskip 40\p@
}}
和 :
\newcommand\annexe{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@annexe\@schapter}
\def\@annexe[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\if@english
\addcontentsline{app}{annexe}%
{\protect\numberline{Appendix\nobreakspace\thechapter}#1}%
\else
\addcontentsline{app}{annexe}%
{\protect\numberline{Annexe\nobreakspace\thechapter}#1}%
\fi
\else
\addcontentsline{app}{annexe}{#1}%
\fi
\else
\addcontentsline{app}{annexe}{#1}%
\fi
\chaptermark{#1}%
\if@twocolumn
\@topnewpage[\@makeappendixhead{#2}]%
\else
\@makeappendixhead{#2}%
\@afterheading
\fi}
和 :
\newcommand\listofappendices{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\if@english
\chapter*{LIST OF APPENDICES}%
\addcontentsline{toc}{compteur}{LIST OF APPENDICES}%
\else
\chapter*{LISTE DES ANNEXES}%
\addcontentsline{toc}{compteur}{LISTE DES ANNEXES}%
\fi
\@starttoc{app}%
\if@restonecol\twocolumn\fi
}
我希望我的问题得到清楚解释...谢谢!