我正在用 LyX 写一篇论文,有两个版本——一个短版和一个长版。我在(单个)LyX 文件中创建了两个分支,并将适当地打开和关闭它们。
我想以简短的形式做出陈述,“有关详细信息,请参阅全文中的定理 [ref]。” 问题是简短版本中可能缺少一些定理,因此编号可能会不正确。
解决此问题的推荐做法是什么(在 LyX 中),即对外部文档/同一文档的不同分支进行交叉引用?
之前有一个关于 LaTeX 的问题(不同文件之间的交叉引用),但我没有看到将此解决方案移植到 LyX 的直接方法。也就是说,使用包xr
,并在 ERT 中包含一个短版本分支\externaldocument{longversion}
。但现在,实际进行编译将涉及首先将长版本导出到 LaTeX,然后构建短版本(请记住,LyX 在其他地方的临时文件夹中进行构建)。或者将两个版本都导出到 LaTeX,然后手动调用pdflatex
。这会在我原始的工作文件夹中留下一堆临时文件,并且有点破坏了我对 LyX 的所有喜爱。
答案1
让我们将 LyX 文档命名为
mypaper.lyx
。在“文档 > 设置...”下,我们添加两个分支:“fulltext”和“shorttext”,并将文件名后缀都设置为“是”。(如上所述,“分支”在 LyX 中用于管理一个文档的多个不同变体。)当只有分支“fulltext”被激活时,我们称之为完整版文档;当只有分支“shorttext”被激活时,我们称之为简洁版本该文件。
分支“fulltext”应包含所有详细信息,例如浮动表(带有标签“tab:1”)。这些详细信息放置在“分支框”内,该框由“插入 > 分支 > 1. fulltext”创建。此外,“shorttext”分支将仅包含对长版本中该表的交叉引用“表 [Ref: tab:1]”。
到目前为止,我们得到了以下具有两个分支的 LyX 文档:
如何生成简短版本mypaper-shorttext.pdf
和完整版本mypaper-fulltext.pdf
?
首先,我们仅激活“fulltext”分支并编译完整版本(PDF 格式),我们想在简短版本中引用它。输出的文件名将
mypaper-fulltext.pdf
如您在 PDF 查看器中看到的那样。然后,我们在 的 LaTeX 序言中添加两行
mypaper.lyx
。\usepackage{xr} \externaldocument{mypaper-fulltext}
其中
mypaper-fulltext
是刚刚创建的输出的不带扩展名的文件名。最后,我们仅激活“shorttext”分支并编译简短版本。
输出为:
警告
- 在编译简短版本之前,我们必须确保完整版本已更新(即完整版本已编译)否则引用可能无法正常工作!
- 每次新的开始LyX 需要重新编译完整版。之后才能创建精简版。
- 仅更改已激活分支中的标签不会触发 LyX,因此无法重新编译文档。需要对文本进行少量更改才能触发。
背景——这在 LyX 中如何运作?
为了编译文档,LyX 将文档导出到临时目录中的 LaTeX 文件,然后运行程序“pdflatex”(或类似程序)来创建输出。幸运的是,LyX 在编译简短版本和完整版本时使用相同的临时目录。因此,文件mypaper-shorttext.tex
、mypaper-shorttext.aux
、mypaper-fulltext.tex
、mypaper-fulltext.aux
位于同一目录中。使用\externaldocument{mypaper-fulltext}
LaTeX 将找到必要的文件,例如mypaper-fulltext.aux
。重新启动 LyX 后,临时目录再次为空。因此,需要先编译完整版本以创建文件mypaper-fulltext.tex
、mypaper-fulltext.aux
。
可扩展性:如果“短文本”分支包含长版本引用的标签,那么我们也需要将其添加\externaldocument{mypaper-shorttext}
到 LaTeX 序言中,并保持短版本也处于编译状态(更新状态)。可能出现具有多个分支的更复杂的情况。