我正在使用命令准备一份 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.tex
via 。然后使用包将外部文档包含在内。确保至少运行一次。\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}