独立真 / 独立假?

独立真 / 独立假?

我认为,您可以使用\standalonefalse来指定父文档,所有子文档都应被视为子文档。

通话后可以standalone通过类似方式重新启用吗?\standalonetrue\standalonefalse

我想要这个功能,因为我有一篇论文使用独立模式来编写其子部分,而这篇论文被包含在一篇论文中,这篇论文也使用独立模式。我希望能够分别编译章节、论文和论文(因为每个文档都有不同的依赖项/构建时间)。

编辑:MWE 如下和此处:https://gist.github.com/keflavich/5224790(因为有多个文件相互依赖,所以我认为最好在一个地方有一个完整的示例)。

我对乳胶条件和独立的理解一定很薄弱。我构建了一个 MWE(sub2.tex):

\documentclass{article}
\usepackage{standalone}
%\standalonetrue
\usepackage{import}
\usepackage{natbib}
\begin{document}
\section{Section}
Nothing here (but I want to compile this document on its own sometimes)
\citet{Aguirre2010}
\ifstandalone
\bibliographystyle{apj_w_etal}  
\bibliography{mwe}      
\fi
\end{document}

mwe.bib

@article{Aguirre2010,
    title={Title},
    author = {Aguirre},
    journal = {In Prep},
    year={2010}
}

如果我使用 编译此代码pdflatex sub2.tex && bibtex sub2,它会出现 bibtex 问题:

I found no \bibdata command---while reading file sub2.aux
I found no \bibstyle command---while reading file sub2.aux

如果我取消注释\standalonetrue,它就起作用了。

如果我有另一个包含此文档的文档,则会出现问题import。为了编译此文档,我需要它。但据我所知,\standalonetrue父文档(如下)不会接受其中包含的导入文档:\standalonetrue

Illegal, another \bibstyle command---line 8 of file sub1.aux
 : \bibstyle
 :          {apj_w_etal}
I'm skipping whatever remains of this command
Illegal, another \bibdata command---line 9 of file sub1.aux
 : \bibdata
 :         {mwe}
I'm skipping whatever remains of this command

这是“父”文档(称为sub1.tex

\documentclass{aastex}
\usepackage{standalone}
\standalonetrue
\usepackage{import}
\usepackage{natbib}
\begin{document}
\chapter{Chapter of an Article}
This is an article that includes many subsections
\subimport{./}{sub2}
\ifstandalone
\bibliographystyle{apj_w_etal}
\bibliography{mwe}      
\fi
\end{document}

答案1

我是 的作者standalone。该\ifstandalone开关由包和类以不同的形式自动定义,以指示子文件是独立编译还是作为主文档的一部分编译。该开关并非设计为由用户修改,我实际上必须再次查看源代码才能知道这样做会产生什么影响。它绝对不是受支持的功能,因此我不推荐它。

请注意,您可以将standlone文档包含在另一个standalone文档中,即在类文档中使用该standalonestandalone受支持的功能。您无需为此更改任何开关。如果您想自己编译子文件,只需将它们用作主文档即可。

主文档不是通过任何开关选择的,而是由您自己选择的,即使用您提供给 LaTeX 编译器的文档。在我看来,您正在使用一些图形化的 LaTeX 开发环境/编辑器,并且没有指定它应该编译哪个文档。这是此特定程序的设置,与 LaTeX 代码本身无关。如果您告诉我们您正在使用哪个程序,人们应该能够帮助您。我个人经常使用命令行。

相关内容