我使用 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。