章节参考不显示

章节参考不显示

我与一位合著者一起编写了一份大型文档,他负责设置我们正在使用的 LaTex 文件(即,我对所要更改的内容没有完全的自主权)。

我们有一个根文件,它做两件事:

1)加载包含命令的头文件\usepackage{},然后列出用户定义的命令。

2)然后使用用户定义的命令加载每个章节文件\Chapter{#}{Title}

其编码为:

\newcommand{\Chapter}[2]{
\setcounter{chapter}{\numexpr#1-1}%
\refstepcounter{chapter}%
\setcounter{eqnhelper}{0}
\setcounter{section}{0}
\setcounter{figure}{0}
\setcounter{equation}{0}
\include{#2}
}

如您所见,此命令主要只是将各种计数器重置为 0,它还有命令\setcounter{chapter}{#1}。这样,当我们编译第 3 章和第 8 章时,它们都会正确编号。最后,它使用命令调用章节文件\include

每个章节文件以

% !TEX root = 00_makefile.tex 
\chapter*{Chapter \thechapter\\ Chapter Title}
\label{chapter: apps of integration}

问题就在这里。假设我们编写了两个章节(例如第 3 章和第 8 章),并且我们想在第 8 章中引用第 3 章。使用 TypingChapter \ref{chapter_label}命令会产生:章节 <-(看到空白了吗?)。这是为什么?我们该如何修复它?

我想我还应该提到,这是正在使用的\documentclass{report},而我们没有使用该hyperref包。

更新:我刚刚意识到我也无法在章节本身中引用它。在第 3 章中,我添加了这一行This is chapter \ref{chapter3},但在“章节”一词后面仍然有一个空格。

答案1

正确的章节引用需要\refstepcounter{chapter}类似两个都步进chapter计数器(增加它),并添加适当的锚点以供参考。您缺少后者(因为设置它类似于步进,处理前者)。

为了快速解决问题,您应该尝试将命令更改\setcounter{chapter}{#1}

\setcounter{chapter}{\numexpr#1-1}%
\refstepcounter{chapter}%

这会将计数器设置chapter为比所需值小一,然后执行正确引用所需的必要“步骤和锚定”。如果您无权访问这些文件,可以使用以下方法进行修补etoolbox是否知道包含问题的适当命令。

附注:尽量避免在标签(或一般的控制序列)内使用空格。例如,最好使用\label{chapter:apps-of-integration}

答案2

包含章节的机制可能不是实现此目的的最佳方式。您是否考虑过让 LaTeX 来完成这项工作?

例如,如果您将每个章节都写在自己的文件中,则可以用\include该命令将它们包含进去。该\includeonly命令可用于确定哪些章节文件应该真正包含进去,哪些不应该包含进去。

这种机制的优点是,只要您至少包含过一次交叉引用文件,交叉引用仍然会有效。

\includeonly{Introduction,FirstChapter}

...

\begin{document}

\include{Introduction}  % included.
\include{FirstChapter}  % included.
\include{SecondChapter} % not included.

\end{document}

这里Introduction.tex,、FirstChapter.texSecondChapter.tex是可以包含在文档正文中的 LaTeX 文件。该\includeonly命令告诉 LaTeX 只应包含Introduction.tex和。在中,您可以引用已定义的标签和,并且如果在之前的 LaTeX 运行中将它们放入参数列表中,您将获得标签的正确数字/字母。FirstChapter.texFirstChapter.texSecondChapter.texSecondChapter\includeonly

有关详细信息,请参阅For more information, see英国 TUG 常见问题解答

相关内容