今天,我在乳胶文件中编写了以下代码片段,并且我想要实现的效果很好:
\draw [dotted] (\ordinateOnTimeAxis{-1500}, 2 * \laneHeight) -- (\ordinateOnTimeAxis{-1500}, 2 * \laneHeight - 20);
\draw[xshift=\ordinateOnTimeAxis{-1500}, yshift=2 * \laneHeight -20]
node[draw, dotted, anchor=north west, text width=\textWidth, align=justify, inner sep=10]
{
\textbf{Lorem ipsum}\\ et caetera...
};
其中 ordinateOnTimeAxis 是一个 Lua 函数。
上面的代码将一个框放置在 TikZ 图表中的正确位置,并在其中放置描述性文本。
您会注意到这里有很多重复的文字:
- 1500 出现多次
- 2 也一样
- ordinateOnTimeAxis 也是如此
我想做的是用更简单的内容替换所有文本,其中只保留变量,例如:
\dateDescription{-1500}{2}{north west}{
\textbf{Lorem ipsum}\\ et caetera...
}
我想编写 Lua,它可以编写引用 Lua 函数的 LaTeX。
这可以来回实现吗?
如果可能的话,我宁愿坚持使用 Lua,因为对于不熟悉 LaTeX 复杂性的人来说,它更简单。
如果不行,有什么替代方案吗?
由于我对 LaTeX 一点都不自信,我迄今为止的所有尝试都失败了。
感谢您对我的问题感兴趣。
答案1
它可以在 Lua 中完成(如果您不展示您尝试的内容,很难说出为什么您的尝试失败了)但对于这种简单的文本替换,在 TeX 中执行更容易:
\newcommand \dateDescription[4] {% 4 arguments, can be used as #1, #2, #3 and #4
\draw [dotted] (\ordinateOnTimeAxis{#1}, #2 * \laneHeight) -- (\ordinateOnTimeAxis{#1}, #2 * \laneHeight - 20);
\draw[xshift=\ordinateOnTimeAxis{#1}, yshift=#2 * \laneHeight -20]
node[draw, dotted, anchor=#3, text width=\textWidth, align=justify, inner sep=10]
{#4};
}