Lyx 分支之间的交叉引用

Lyx 分支之间的交叉引用

我正在用 LyX 写一篇论文,有两个版本——一个短版和一个长版。我在(单个)LyX 文件中创建了两个分支,并将适当地打开和关闭它们。

我想以简短的形式做出陈述,“有关详细信息,请参阅全文中的定理 [ref]。” 问题是简短版本中可能缺少一些定理,因此编号可能会不正确。

解决此问题的推荐做法是什么(在 LyX 中),即对外部文档/同一文档的不同分支进行交叉引用?

之前有一个关于 LaTeX 的问题(不同文件之间的交叉引用),但我没有看到将此解决方案移植到 LyX 的直接方法。也就是说,使用包xr,并在 ERT 中包含一个短版本分支\externaldocument{longversion}。但现在,实际进行编译将涉及首先将长版本导出到 LaTeX,然后构建短版本(请记住,LyX 在其他地方的临时文件夹中进行构建)。或者将两个版本都导出到 LaTeX,然后手动调用pdflatex。这会在我原始的工作文件夹中留下一堆临时文件,并且有点破坏了我对 LyX 的所有喜爱。

答案1

  1. 让我们将 LyX 文档命名为mypaper.lyx。在“文档 > 设置...”下,我们添加两个分支:“fulltext”和“shorttext”,并将文件名后缀都设置为“是”。(如上所述,“分支”在 LyX 中用于管理一个文档的多个不同变体。)

    可用分支

    当只有分支“fulltext”被激活时,我们称之为完整版文档;当只有分支“shorttext”被激活时,我们称之为简洁版本该文件。

  2. 分支“fulltext”应包含所有详细信息,例如浮动表(带有标签“tab:1”)。这些详细信息放置在“分支框”内,该框由“插入 > 分支 > 1. fulltext”创建。此外,“shorttext”分支将仅包含对长版本中该表的交叉引用“表 [Ref: tab:1]”。

到目前为止,我们得到了以下具有两个分支的 LyX 文档:

mypaper.lyx 包含分支框

如何生成简短版本mypaper-shorttext.pdf和完整版本mypaper-fulltext.pdf

  1. 首先,我们仅激活“fulltext”分支并编译完整版本(PDF 格式),我们想在简短版本中引用它。输出的文件名将mypaper-fulltext.pdf如您在 PDF 查看器中看到的那样。

  2. 然后,我们在 的 LaTeX 序言中添加两行mypaper.lyx

    \usepackage{xr}
    \externaldocument{mypaper-fulltext}
    

    其中mypaper-fulltext是刚刚创建的输出的不带扩展名的文件名。

  3. 最后,我们仅激活“shorttext”分支并编译简短版本。

输出为:

全文和短文本 PDF


警告

  • 在编译简短版本之前,我们必须确保完整版本已更新(即完整版本已编译)否则引用可能无法正常工作!
  • 每次新的开始LyX 需要重新编译完整版。之后才能创建精简版。
  • 仅更改已激活分支中的标签不会触发 LyX,因此无法重新编译文档。需要对文本进行少量更改才能触发。

背景——这在 LyX 中如何运作?

为了编译文档,LyX 将文档导出到临时目录中的 LaTeX 文件,然后运行程序“pdflatex”(或类似程序)来创建输出。幸运的是,LyX 在编译简短版本和完整版本时使用相同的临时目录。因此,文件mypaper-shorttext.texmypaper-shorttext.auxmypaper-fulltext.texmypaper-fulltext.aux位于同一目录中。使用\externaldocument{mypaper-fulltext}LaTeX 将找到必要的文件,例如mypaper-fulltext.aux。重新启动 LyX 后,临时目录再次为空。因此,需要先编译完整版本以创建文件mypaper-fulltext.texmypaper-fulltext.aux

可扩展性:如果“短文本”分支包含长版本引用的标签,那么我们也需要将其添加\externaldocument{mypaper-shorttext}到 LaTeX 序言中,并保持短版本也处于编译状态(更新状态)。可能出现具有多个分支的更复杂的情况。

相关内容