在 Latex3 和 lualatex 之间选择

在 Latex3 和 lualatex 之间选择

我最近使用 Latex3 编写了一个自定义环境,我发现我也可以编写一些函数。为了改进我的工作流程,我将实现一些函数或一些自定义环境。要在 Latex 中实现,我可以使用 Latex3 或 Luatex 中的编程。我没有经验,所以在选择错误的选项之前,我更愿意问什么是最好的。这当然与我的目标有关。它们是:

  • 写一些宏
  • 需要进行一些编程的定制环境
  • 编写一些宏/环境来完成一些计算。

例如,我编写了一个标签系统。因此,我必须使用一些列表,并使用 Latex3 中的编程。我可以编写一些宏/环境,在其中执行加法、乘法、单位转换、一些数字的平方、分数运算等。

例如,我计划创建一个使用毕达哥拉斯定理的环境:

\begin{pythagore}
3^2 + 4^2 = 5^2
\end{pythagore}

我在练习中经常使用这样的等式,每次我都必须写下每个步骤。

\begin{align*}
3^2 + 4^2 &= 5^2 \\
9 + 16 &= 25 \\
25 = 25
\end{align*}

所以我想要一个可以自动编写所有步骤的宏/环境。

我不排除有一天编写并发布一个包。

在 Latex3 和 Lua 之间进行选择时,我应该考虑什么?或者两者也是一种可能性。

感谢您分享您的经验!

答案1

首先,您需要决定是否接受仅支持 luatex 的软件包,或者是否还想使用 pdflatex、xelatex、platex 等。目前,pdflatex 是最常用的格式。所有这些引擎都支持 LaTeX 本身,因此 Lua 代码仅在 latex2e 和 latex3 代码中的受限位置使用。

Lua 在 Luatex 中的主要用途是使用回调函数来扩展或替换以前内置的功能,因此它用于扩展 tex 引擎本身。这里与 latex3 提供的功能几乎没有重叠,后者是关于 tex 中的编程功能,而不是扩展 tex 语言。

LaTeX3 (expl3) 是用 TeX 编写的,它提供了许多实用程序来操作 tex 结构,例如框、长度等,并以各种方式对其进行迭代。

因此,只有有限的几个项目可以直接在两者之间进行选择,就像本问题的标题一样。本质上是简单的算术和迭代代码,包含在仅与 luatex 一起使用的包中。不过,在这种情况下,通常您不需要使用其中任何一个,经典的 tex 或 etex 编码就足够了。

问题中给出的例子只需要简单的整数运算,根本不需要包。

在此处输入图片描述

\documentclass{article}


\newcommand\zz[3]{%
\begin{align*}
#1^2+#2^2&=#3^2\\
\the\numexpr(#1)*(#1)\relax +
\the\numexpr(#2)*(#2)\relax &=
\the\numexpr(#3)*(#3)\relax \\
\the\numexpr(#1)*(#1) + (#2)*(#2)\relax &=
\the\numexpr(#3)*(#3)\relax \\
\end{align*}}

\usepackage{amsmath}

\begin{document}

\zz{3}{4}{5}

\zz{68}{285}{293}
\end{document}

相关内容