包含对附录的引用,但不包含附录

包含对附录的引用,但不包含附录

我正在使用命令准备一份 latex 文档input。附录有一个名为的单独文件appendix.tex。我希望在主论文的附录中添加对定理的引用,但我不想在最终编译的 pdf 中包含附录。有没有办法实现这一点(无需手动从最终 pdf 中裁剪页面)?

进一步阐述:现在,如果我不包含\input{appendix},我的 pdf 中就会出现很多??(损坏的引用)。我希望用??正确的定理编号替换,而不包含附录。

答案1

首先,我同意 Christian Hupfer 的观点。读到这样的文档我会很恼火。其次,将附录作为附加 PDF 提供可能是一个好主意,但如果页码应该在两个文件中连续,那么它就会比 goofynos 的答案建议的要复杂一些。如果附录与主要部分有交叉引用,情况就会变得更加复杂。

但如果你真的想要一个没有交叉引用的 PDF 文件,有两种方法可以实现。对于这两种方法,你都需要先编译带有附录的 PDF,以确保所有引用正确。然后,在对主文件进行一些更改后,你需要再次编译文件以删除附录。

解决方案 1,使用\include

您需要在此处添加\includeonly{<files>}到最后一次运行的序言中。<files>是除附录文件外所有包含文件的逗号分隔列表。

请注意,\include总是开始新的一页。

\documentclass[a4paper]{article}
\usepackage{lipsum}

% uncomment for last run
% comma seperated list of all files except those for appendix
%\includeonly{main}

\begin{document}
\include{main}

\appendix
\include{appendix}

\end{document}

解决方案 2,使用\input

这里需要注释掉附录的文件并添加\nofiles序言。后者可以防止 LaTeX 写入辅助文件,因此那里的信息\label不会被覆盖。

注意:\input不开始新的页面。

\documentclass[a4paper]{article}
\usepackage{lipsum}

% uncomment for last run
%\nofiles

\begin{document}
\input{main}

\appendix
% comment out for last run
\input{appendix}

\end{document}

为了完整起见,main.tex

\section{Main text}
\lipsum[1]

Reference to appendix: \ref{lia}

\lipsum[2]

appendix.tex

\section{Stuff}
\label{lia}
\lipsum[3]

答案2

请发帖平均能量损失下次。


你可以用一个小技巧来做到这一点:

在外部文档中运行appendix.texvia 。然后使用包将外部文档包含在内。确保至少运行一次。\input{appendix.tex}xr-hyper\externaldocument{extfile}extfile.tex

您将拥有三个文件 MWE:

主要文件

\documentclass{article} 
\usepackage{xr-hyper}
\usepackage{hyperref} 

\externaldocument{extfile} 

\begin{document}
\autoref{sec:external}

\autoref{sec:local}

\section{Local section}\label{sec:local}
% \input{appendix}
\end{document}

外部文档

\documentclass{article}
\usepackage{hyperref}

\begin{document}
\input{appendix.tex}
\end{document} 

附录

\section{Appendix}
\label{sec:external}

相关内容