使用standalone包含文档中的包作为解决方法

使用standalone包含文档中的包作为解决方法

我想从 Lyx 导出不带前言的 Latex。例如,我想自动删除\section{}以及之前的所有代码\end{document}。这样我就可以自动包含.tex输出文件包含到更大的 Latex 文档中,我已经按照自己的意愿为其添加了序言。

我这样做的原因是因为我有大量的方程式表,如果直接在普通的 Latex 中编辑的话会非常混乱。

答案1

目前看来这还不是直接可行的,LyX 错误跟踪器中有一个针对此功能的开放功能请求:

但那里至少描述了一种解决方法:

创建一个虚拟主 LyX 文件,并将其他文件作为子文档包含在内。导出主文件时,每个子文档都将创建为单独的.tex文件,不带前言。

答案2

subfiles解决方案

一个更简单的解决方法是使用包\subfile的命令subfiles,它会自动剥离文档骨架。

它的目的是使子文档可以自行编译,但扩展后也适合这种用例。

使用父/子对进行无前导的导出。

如果目的是导出到 latex 以包含在不允许加载额外包的日志模板中,则这无济于事。在这种情况下,一个可行的解决方法是创建一个main.lyx带有子文档的文件child.lyx,然后从中递归导出main.lyx,这将产生一个无前导的child.tex

脚本自动化

通过利用文档的简单文件格式,这也可以轻松地作为脚本自动化.lyx

  • 创建一个.tmp.lyx相同的\begin_header ... \end_headerchild.lyx确保样式和插图的一致导出。
  • 使其\begin_body ... \end_body仅包含子文档链接。
  • 导出.tmp.lyx.tmp.tex。这将创建所需的child.tex
  • 删除不需要的.tmp.*文件。

答案3

使用standalone包含文档中的包作为解决方法

standalone包重新定义\input,以便忽略任何前导码。用法:

  • 正常将您的 lyx 文档导出为 tex。
  • 在包含文档中,放入\usepackage{standalone}序言。
  • \input使用或正常加载导出的 tex 文档\include
  • 所包含文档的序言将被忽略。

该软件包还可以选择以某种方式使用子前导码(参见文档),但我没有使用过。

注意:有一个独立的包裹以及独立的文档类. 该包用于包含文档和文档类,但不需要用于包含的文档。在这个答案中,我们只使用包。

相关内容