如何使用符号执行 \widthof

如何使用符号执行 \widthof

我有以下代码:

\begin{align*}
c_s &\equiv b_s^2\\
&\equiv (c_{s-1}^{(2^{k_{s-1}-k_s-1})})^2 \\
&\equiv c_{s-1}^{(2^{k_{s-1}-k_s})} \\
&\equiv c_{s-2}^{(2^{k_{s-2}-k_{s-1}} \cdot 2^{k_{s-1}-k_s})}\\
&\mathrel{\makebox[\widthof{=}]{\vdots}}\\
&\equiv c_0^{(2^{k_{0}-k_{1}} \cdot \cdots \cdot 2^{k_{s-1}-k_s})} \pmod p
\end{align*}

在倒数第三行,我想将参数更改为\widthof\equiv但这样做会导致编译错误。我需要做什么才能达到预期的结果?

答案1

你可以使用

\widthof{$\equiv$}

但有一个更巧妙的方法mathtools

\documentclass{article}
\usepackage{amsmath,mathtools}

\begin{document}

\begin{align*}
c_s &\equiv b_s^2\\
&\equiv (c_{s-1}^{(2^{k_{s-1}-k_s-1})})^2 \\
&\equiv c_{s-1}^{(2^{k_{s-1}-k_s})} \\
&\equiv c_{s-2}^{(2^{k_{s-2}-k_{s-1}} \cdot 2^{k_{s-1}-k_s})}\\
&\vdotswithin{\equiv}\\
&\equiv c_0^{(2^{k_{0}-k_{1}} \cdot \cdots \cdot 2^{k_{s-1}-k_s})} \pmod{p}  
\end{align*}

\end{document}

在此处输入图片描述

空间可能看起来太大,因此\mathtools还提供\shortvdotswithin

\documentclass{article}
\usepackage{amsmath,mathtools}
\mathtoolsset{shortvdotsadjustabove=3pt} % I don't like the default

\begin{document}

\begin{align*}
c_s &\equiv b_s^2\\
&\equiv (c_{s-1}^{(2^{k_{s-1}-k_s-1})})^2 \\
&\equiv c_{s-1}^{(2^{k_{s-1}-k_s})} \\
&\equiv c_{s-2}^{(2^{k_{s-2}-k_{s-1}} \cdot 2^{k_{s-1}-k_s})}\\
&\shortvdotswithin{\equiv}
&\equiv c_0^{(2^{k_{0}-k_{1}} \cdot \cdots \cdot 2^{k_{s-1}-k_s})} \pmod{p}
\end{align*}

\end{document}

在此处输入图片描述

请注意,没有\\之后\shortvdotswithin{\equiv}

注意是\pmod{p}而不是\pmod p。后者似乎有效,但试一试\pmod 11你就会知道。

答案2

\widthof(包)的参数calc以文本模式设置。数学符号需要数学模式:

\widthof{$\equiv$}

完整示例:

\documentclass{article}
\usepackage{calc}
\usepackage{amsmath}
\begin{document}
\begin{align*}
c_s &\equiv b_s^2\\
&\equiv (c_{s-1}^{(2^{k_{s-1}-k_s-1})})^2 \\
&\equiv c_{s-1}^{(2^{k_{s-1}-k_s})} \\
&\equiv c_{s-2}^{(2^{k_{s-2}-k_{s-1}} \cdot 2^{k_{s-1}-k_s})}\\
&\mathrel{\makebox[\widthof{$\equiv$}]{\vdots}}\\
&\equiv c_0^{(2^{k_{0}-k_{1}} \cdot \cdots \cdot 2^{k_{s-1}-k_s})} \pmod p
\end{align*}
\end{document}

结果

相关内容