LyX 作为自动文档生成器的模板

LyX 作为自动文档生成器的模板

我使用 LyX 中的 ERT(原始 TeX 代码)为我的文档创建 PHP 模板。当文档导出为 LaTeX 时,这些 PHP 语句是完整的,经过 PHP 处理后,我得到了真正的 LaTeX 文档。

整个过程是这样的:

LyX  ---export--->  PHP  ---execution--->  LaTeX  ---lualatex--->  PDF.

但在编写模板时将原始 PHP 代码包含到模板中有点不切实际,因为预览功能已损坏(显然 PHP 与 LaTeX 不兼容)。而且编写标签非常烦人。但它正在发挥作用。

那么,如何更好地做到这一点?

例子

(该tex()函数转义字符串以便在 LaTeX 中使用并打印它。)

谢谢。

答案1

这是一个非常简单的想法,只是您当前正在做的事情的一个小变化。将以下内容放入 LyX 文件的本地布局中(在文档设置中):

InsetLayout Flex:PHP
  LyxType     Custom
  Decoration  Classic
  KeepEmpty   1
  LabelString PHP
  LatexType   Paragraph
  PassThru    1
End

现在要插入 PHP,不要使用 TeX 插入,而是使用插入 -> 自定义插入 -> PHP。此操作与当前操作完全相同:它将导出带有 PHP 的 LaTeX,但不会预览。但是,在处理文档时,请在本地布局中使用以下内容:

InsetLayout Flex:PHP
  LyxType     Custom
  Decoration  Classic
  KeepEmpty   1
  LabelString PHP
  LatexType   Environment
  LatexName   verbatim
  PassThru    1
  Preamble
    \RequirePackage{verbatim}
  EndPreamble
End

这将使所有 PHP 命令都以逐字形式显示在 PDF 中。恐怕我想不出更好的方法来在两个选项之间切换。一个小小的改进是同时包含这两个命令,但将未使用的命令重命名为其他名称(如 PHP1)。一个更好的想法是将这两个命令放在模块中,并根据您处于的阶段切换文档使用的模块。

答案2

过了一段时间,我创建了一个将 Twig 与 LyX 结合起来的库,以便用尽可能少的努力从 PHP 创建漂亮的 PDF 文档。

https://github.com/jkufner/lyx-on-twig

诀窍在于,可以将 Twig 配置为使用自定义语法来执行命令和值,这样它就可以解释 LaTeX 宏。因此,当不使用 Twig 时,LaTeX 会使用符号而不是数据来创建模板的 PDF 预览。当使用 Twig 时,它会在调用 LaTeX 之前替换宏,因此输出包含数据。不管怎样,都会生成 PDF。这有点脏,但效果很好。

顺便说一句,请确保您使用 LuaLaTex,因为它可以处理 UTF-8。

相关内容