我最近发现了 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
单独的论点。