完美的方程参数描述(包括单位!)

完美的方程参数描述(包括单位!)

我一直在尝试使用@egreg提供的参数描述。(见如何写出完美的方程参数描述?)。

\newlength{\conditionwd}
\newenvironment{variables}[1][where\quad]
  {%
   #1\tabularx{\textwidth-\widthof{#1}}[t]{
     >{$}l<{$} @{${}:\enspace{}$} X@{}
   }%
  }
  {\endtabularx\\[\belowdisplayskip]}

对我来说效果很好(我稍微改变了@egreg 的回答的风格)。不过,我有兴趣将单位作为附加列添加到此描述中。

目前我的例子如下:

\begin{equation} \label{eq:bingham}
\uptau=\uptau_0+\upmu*\dot{\upgamma}
\end{equation}

\begin{variables}
\text{$ \uptau $} & shear stress\\
\text{$ \uptau_0 $} & yield stress\\
\text{$ \upmu $} & plastic viscosity \\
\text{$ \dot{\upgamma} $} & shear rate
\end{variables}

制作:

在此处输入图片描述

是否有某种方法可以生成类似于以下的代码:

 \begin{variables}
    \text{$ \uptau $} & shear stress & [Pa]\\
    \text{$ \uptau_0 $} & yield stress & [Pa]\\
    \text{$ \upmu $} & plastic viscosity & [Pa*s]\\
    \text{$ \dot{\upgamma} $} & shear rate & [s^-1]
    \end{variables}

这可能会产生类似这样的结果: 在此处输入图片描述

但是,我希望单位在 [-括号内对齐,而不必手动调整间距。

这可能吗?有人能帮忙解决吗?非常感谢!

答案1

这基本上只是一个表格,因此您可以通过在行中插入来添加另一列>{$}l<{$} @{${}:\enspace{}$} X@{}。在这里,我将两列更改为l-columns,根据您想要的间距将其更改为您需要的,或者使用例如专门分配它p{3cm}

一些解释

这里的列说明似乎有点晦涩难懂,让我们来看一下。以下是完整的一行:

>{$}l<{$} @{${}:\enspace{}$} l>{(}l<{)}@{}

这是三列的规格,因此我将逐一介绍它们:

第一列

>{$}l<{$}将是第一列。在这里,我们看到了array包中的一些语法,并且在文档表 1 第 2 页中找到了一些有关此语法的信息:

>{decl.}l可以在、rcpm选项 之前使用b。它会decl直接在列条目前面插入 .。

<{decl.}l可以在、rcpm选项 之后使用b。它会decl在列条目之后立即插入 .。

所以,>{$}l<{$}会在该列中每个单元格的内容之前和之后插入$。此处的第一个单元格设置为\uptau,然后会转换为$\uptau$。列类型为l,表示左对齐。

第二列

@{${}:\enspace{}$}l这实际上只是一个l-column(左对齐),前面的部分是列分隔的语法。我们看到它是因为它以 开头@。由于这是为了排版数学,我们希望间距与此一致,因此$将其放在 周围\enspace,这是空格的长度。看看有哪些命令可以控制水平间距?了解更多信息。:还插入了(冒号),以便直接输出。

第三列

>{(}l<{)}.第一栏解释了这个机制。简而言之,它会在输入中添加括号。


单位

单位不应该用方括号排版。这是一个非常常见的错误。在这里,我建议将它们放在标准括号中。

我还添加了siunitx,我认为您会发现它非常有用。它非常适合排版数字和单位,无论是在文本、数学还是表格中。它有一些全局设置,可以轻松更改以适合您的国家/地区的偏好。


数学困惑

您的环境的第一列将以数学模式排​​版。这可以通过 看到>{$}l<{$}。代码意味着每个单元格的$前面和后面都有,因此它将处于数学模式。您可能忽略了这一点,并试图将$\uptau$参数放入第一个单元格中。这将是双重切换,首先进入数学模式,然后再次进入文本模式,从而出现错误。为了解决这个问题,您似乎再次将其放入其中\text{},这将引入三重切换。我们可以通过使用 来减少所有这些混乱\uptau

如果我错了,请纠正我,但在您的等式中,您似乎使用了*乘法符号。在大多数情况下,这应该排版为空或为\cdot。有些文本喜欢将其打印为带有 - 符号的十字\times,即使这在数学中具有非常不同的含义。我擅自将方程式排版在三行不同的行上,只是为了显示选项。我会坚持使用第三行。


查找文档

请注意,您始终可以通过命令行/终端输入 来查找文档texdoc siunitx,这适用于任何软件包。该文档也可在以下位置找到:http://ctan.org/pkg/siunitx


输出

在此处输入图片描述

代码

\documentclass[11pt]{article}
\usepackage{mathtools}
\usepackage{upgreek}
\usepackage{tabularx}
\usepackage{siunitx}

\newlength{\conditionwd}
\newenvironment{variables}[1][where\quad]
  {%
   #1\tabularx{\textwidth-\widthof{#1}}[t]{
     >{$}l<{$} @{${}:\enspace{}$} l>{(}l<{)}@{}
   }%
  }
  {\endtabularx\\[\belowdisplayskip]}
\begin{document}

\begin{align} \label{eq:bingham}
    \uptau&=\uptau_0+\upmu*\dot{\upgamma}\\
    \uptau&=\uptau_0+\upmu\cdot\dot{\upgamma}\\
    \uptau&=\uptau_0+\upmu\dot{\upgamma}
\end{align}

\begin{variables}
    \uptau          & shear stress\\
    \uptau_0        & yield stress\\
    \upmu           & plastic viscosity \\
    \dot{\upgamma}  & shear rate
\end{variables}

 \begin{variables}
    \uptau          & shear stress          & \si{\pascal}\\
    \uptau_0        & yield stress          & \si{\pascal}\\
    \upmu           & plastic viscosity     & \si{\pascal\second}\\
    \dot{\upgamma}  & shear rate            & \si{\per\second}
    \end{variables}
\end{document}

相关内容