如何从 [json|yaml|toml] 文件分配变量

如何从 [json|yaml|toml] 文件分配变量

我有两个 Latex 文件用于我创建的每周文档。template.tex包含大量每周都会更改的变量列表:

\newcommand{\var}{foo}
\newcommand{\othervar}{bar}

然后template.tex导入document.tex实际的文档,其中每个变量都在正确的位置。

我想用 Python 来更新它。目前我有一个 Python 脚本,它可以在 Google Docs 电子表格中找到适当的变量并将它们保存为 toml 文件。我希望 Latex 读取该 toml(或 json 或 yaml,格式对我来说无关紧要),然后根据它分配这些变量的值。

答案1

例如,空格分隔的值比 JSON 更容易解析

在此处输入图片描述

来自文本文件vars.txt

var foo
othervar bar
zzz 42

和一个 tex 文件

\documentclass{article}

\newread\varsfile
\def\assignvar#1 #2\relax{\expandafter\gdef\csname #1\endcsname{#2}}
\openin\varsfile=vars.txt
{\endlinechar=-1
\loop
\ifeof\varsfile\else
\read\varsfile to \tmp
\ifx\tmp\empty\else
\expandafter\assignvar\tmp\relax
\fi
\repeat
}
\closein\varsfile

\begin{document}


var is \var\ and zzz is \zzz, othevar is \othervar.

\end{document}

相关内容