LaTeX 文档的作者是否需要 xparse 或 \ExplSyntaxOn?

LaTeX 文档的作者是否需要 xparse 或 \ExplSyntaxOn?

如果“最终用户”正在使用 LaTeX 准备文档并使用当前版本的 LaTeX(截至目前,LaTeX2e <2021-06-01> 补丁级别 1),它会自动加载 L3 编程层 <2021-10-12>,并且如果用户正在编写和应用使用 等的宏\NewDocumentCommand,那么是否有理由:

  1. 包括\usepackage{xparse},或
  2. 使用\ExplSyntaxOn

例如,以下来源来自https://tex.stackexchange.com/a/393188/13492

\documentclass{article}

\NewDocumentCommand\test{o}{\IfNoValueTF{#1}{test}{#1}}
\begin{document}
\test[hello], and \test[hello]{\ world!}
\end{document}

我当然知道,ExplSyntaxOn 和 ExplSyntaxOff 起什么作用?,但我是从文档编写者的角度提出一个实际问题,而不是从包作者或 LaTeX 开发人员的角度!

答案1

如果你知道有最新的 LaTeX 可用,那么你只需要明确使用

\usepackage{xparse}

xparse如果您想使用已在软件包中试用但未包含在最终版本 ( ) 中的功能之一,ltcmd该功能已合并到格式中。特别是g参数类型。但g很邪恶,所以希望您不需要它。

\ExplSyntaxOn就像\makeatletter,它从来不需要访问诸如\IfNoValueTF您显示的命令,但就像\makeatletter允许偶尔访问@名称中包含的命令(在包代码而不是文档中会更好)一样,\ExplSyntaxOn允许访问名称中包含和的命令(_以及:对空格的一些控制)再次访问可能在包中更好的代码,但如果需要,可以放在序言中。

相关内容