使用 \nameref 引用附件

使用 \nameref 引用附件

我使用我的大学模板 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
    }

我希望我的问题得到清楚解释...谢谢!

相关内容