LyX 将子文档的文档设置与主文档同步,尤其是有关引用样式的文档设置

LyX 将子文档的文档设置与主文档同步,尤其是有关引用样式的文档设置

我如何确保子文档的文档设置与主文档兼容?

今天我遇到了一个关于引用的大麻烦:

如果我在主文档中选择“引用样式标准(数字)”,在子文档中选择“natbib”,那么在“插入引用窗口”(在子文档中)中,我会得到属于 natbib 包的选项(citet、citep、citeauthor 等)。尝试呈现文档时会出现错误:“控制序列未定义”(显然,因为 \citet 仅在 natbib 包中定义,而我没有将其包括在内(至少在主文档中))。

我是否必须手动保持主设置和子设置同步?难道不能自动完成吗?或者是否有不同的设置有用的用例?我期望一种类似于 LaTeX 的行为,其中也可以有没有任何标题的子文档。

这个问题:LyX BibTeX 与子文档无法正常工作 显然是由同一问题引起的。

答案1

这也许只能部分回答您的问题:我有一个主文档和一些子文档。所有 lyx 文件都具有相同的文档类型并使用默认值。为了包含包或定义宏,我有一个额外的 tex 文件 (options.tex),其中包含序言中需要完成的所有内容。

在 lyx 文档的序言中我添加了一条input说明。

\input{options}

这个解决方案并不完美,但它使我能够编译主文档(这需要一些时间,因为它有 190 多页)或仅编译子文档。

答案2

目前唯一的选择似乎是手动同步设置,这很容易出错。为了减少错误,我发现最可靠的工作流程是:

  • 更改父文档的设置。
  • 关闭 LyX
  • \begin_header将父文档作为纯文本文档打开(例如使用 Emacs)并复制以 开头和以 结尾的部分\end_header
  • 对于每个子文档:
    • 以纯文本形式打开子文档
    • 用父文档页眉覆盖该页眉。

我已经编写了一个脚本来自动执行这个过程,lyx-header-util.py[gist.github.com](需要 Python 3),这将工作流程简化为

  • 对于每个子文档运行

    lyx-header-util.py copyheaderinplace PARENTFILE.LYX CHILDDOCUMENT.lyx
    

(执行此操作之前建议备份;脚本会覆盖原始文件)。

相关内容