我想在方程式中放入物理尺寸(单位),但我希望它们的颜色和大小与方程式不同。为了实现这一点,我尝试定义一个执行该操作的命令。它确实做到了,但是,在命令的大小也减小后,所有内容都写入了。命令如下:
\newcommand{\unidm}[1]{\scriptstyle\textcolor{red}{$\left(\right.$#1$\left.\right)$}}
使用方法如下:
\begin{equation}
\vec{x}(t) = \left[ \frac{125}{2}\unidm{m} + 25(t - 5\unidm{s})\unidm{m$cdot$s$^{-1}$} - \frac{5}{2}(t - 5\unidm{m})^2\unidm{m$\cdot$s$^{-2}$}\right]\hat{i}, ~~&\text{si } t\in[5,10]\unidm{s}
\end{equation}
其结果如下:
仅第一个命令使用之前的部分(125/2)保持正常大小。
这个想法是,只有方程中的物理维度具有较小的尺寸。
知道为什么该命令会改变使用后出现的所有内容的大小以及如何修复它吗?
答案1
以下是如何使用该包来接近您想要的结果siunitx
:
\documentclass{article}
\usepackage{siunitx,xcolor,amsmath}
% Use a dot to separate units:
\sisetup{inter-unit-product = \ensuremath { { } \cdot { } } } % Taken from siunitx manual page 64
\sisetup{unit-color = red} % units all in red
\begin{document}
\begin{equation}
\vec{x}(t) = \left[ \frac{125}{2}\si{(\metre)}
+ 25(t - \SI{5}{(\second)})\si{(m.s^{-1})}
- \frac{5}{2}(t - \SI{5}{(\metre)})^2 \si{(m.s^{-2})}\right]\hat{i},
\quad\text{si } t\in[5,10]\si{(\second)}
\end{equation}
\end{document}
似乎没有办法默认更改单位大小,有些人认为你不应该这样做。它可能可以通过重新定义来完成,\si
并且\SI
以类似于这个问题。
请注意,在您定义的\unidm
主要问题中,您遇到的问题是\scriptsize
影响与其相同的组中的所有内容,并且该组是您在其中使用该命令的任何组。这就是为什么将最后一个参数括在{
并}
修复问题中,通过这样做,您可以创建另一个仅包含定义中的代码的组。
您的定义中的另一个问题是\left(\right.
,(例如,尝试\left(\right. \frac{1}{2} \left.\right)
),因为匹配的分隔符对之间没有任何内容,即使单位变大,括号也不会随之缩放。相反,您可以使用\left( \mathrm{#1} \right)
,这仍然会为您提供直立的单位,但括号会缩放以匹配。
答案2
编辑:
通过使用包\medmath
中定义的宏nccmath
,如果它允许在书写单位时使用分数,那么您就可以在一行中写出您的方程式。
另一种选择是使用数学环境以相同的字体正常大小在两行中写出整个方程式multline
。您可能喜欢这个解决方案。
这两个建议都是 @Willoughby 很好的回答 (+1) 的变体:
\documentclass{article}
\usepackage{nccmath}
\usepackage{xcolor}
\usepackage{siunitx}
\sisetup{inter-unit-product = \ensuremath{ {}{\cdot}{} },
unit-color = red} % units in red
\begin{document}
\noindent%
With about \qty{20}{\%} smaller font size in the desired part of equation:
\begin{equation}
\vec{x}(t) = \biggl[ \frac{125}{2}\medmath{\si{(\metre)}
+ 25(t - \qty{5}{(\second)})\si{(m/s)}
- \frac{5}{2}(t - \SI{5}{(\metre)})^2 \si{(m/s^{2}})}\biggr]\hat{i},
\quad\text{si } t\in[5,10]\si{(\second)}
\end{equation}
or with all equation in normal font size but in two lines:
\begin{multline}
\vec{x}(t) = \biggl[ \frac{125}{2}\si{(\metre)}
+ 25(t - \SI{5}{(\second)})\si{(m.s^{-1})} \\
- \frac{5}{2}(t - \SI{5}{(\metre)})^2 \si{(m.s^{-2})}\biggr]\hat{i},
\hspace{3em}\text{si } t\in[5,10]\si{(\second)}
\end{multline}
\end{document}