连接多个参数

连接多个参数

我最近发现了 Latex,并使用 TexMaker 编辑我的文档,在我的大学课程中,我们将在液压钻机上进行一些测试。由于测试将由编写测试文档的人以外的人进行,因此有很大的出错空间。

我正在考虑创建一个命令,将变量的参数与相应的值匹配。

    \var{Pressure, Flow, Revolutions}{100 Bar, 25 L/min, 2000 rpm} 

    Generating the output: 
    Pressure 100 Bar 
    Flow 25 L/min
    Revolutions 2000 rpm

这是否可以创建,\newcommand或者是否有任何可以满足我的需求的包?

答案1

键值接口似乎是更好的选择:

\documentclass{article}
\usepackage{xparse,siunitx}
\ExplSyntaxOn
\NewDocumentCommand{\var}{m}
 {
  \begin{flushleft}
  \borg_var:n {#1}
  \end{flushleft}
 }

\keys_define:nn { borg/var }
 {
  pressure    .tl_set:N = \l_borg_var_pressure_tl,
  flow        .tl_set:N = \l_borg_var_flow_tl,
  revolutions .tl_set:N = \l_borg_var_revolutions_tl,
  pressure    .initial:n = { missing value for pressure },
  flow        .initial:n = { missing value for pressure },
  revolutions .initial:n = { missing value for pressure },
 }

\cs_new_protected:Npn \borg_var:n #1
 {
  \keys_set:nn { borg/var } { #1 }
  Pressure ~ \tl_use:N \l_borg_var_pressure_tl \\
  Flow ~ \tl_use:N \l_borg_var_flow_tl \\
  Revolutions ~ \tl_use:N \l_borg_var_revolutions_tl
 }

\ExplSyntaxOn

\begin{document}

\var{
  pressure = \SI{100}{bar},
  flow = \SI{25}{L/min},
  revolutions= \SI{2000}{rpm}
}

\end{document}

初始值可以改为警告甚至错误消息,以确保所有值都给出。

可以进行许多改进,例如,如果您只需要值并且单位是固定的,则可以自动打印它们,并允许使用如下语法

\var{
  pressure = 100,
  flow = 25,
  revolutions = 2000
}

\SI只需将对宏的调用合并到

\cs_new_protected:Npn \borg_var:n #1
 {
  \keys_set:nn { borg/var } { #1 }
  Pressure ~ \SI{\l_borg_var_pressure_tl}{bar} \\
  Flow ~ \SI{\l_borg_var_flow_tl}{L/min} \\
  Revolutions ~ \SI{\l_borg_var_revolutions_tl}{rpm}
 }

而不是上面的代码。

答案2

也许有更简单的方法?

\def\variable#1,#2,#3;#4,#5,#6;{#1\ #4\\ #2\ #5\\ #3\ #6\\}

使用

\variable Pressure, Flow, Revolutions;100 Bar, 25 L/min, 2000 rpm;

这里,'s还有;'s单独的论点。

相关内容