![让公式模式中的字符(下标)占据相同的宽度](https://linux22.com/image/463976/%E8%AE%A9%E5%85%AC%E5%BC%8F%E6%A8%A1%E5%BC%8F%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%88%E4%B8%8B%E6%A0%87%EF%BC%89%E5%8D%A0%E6%8D%AE%E7%9B%B8%E5%90%8C%E7%9A%84%E5%AE%BD%E5%BA%A6.png)
有没有办法让公式模式中的特定字母具有相同的宽度?我可以\texttt{}
在对齐环境之外使用该命令,但不能在数学模式下使用。例如,下面的脚本生成以下内容
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{amsmath}
\begin{document}
\begin{align}
\hat{y}^t &= \alpha^t_{l,\text{h}}\hat{y}^t \odot m_l + \textstyle\sum_{i} \alpha^t_{l,i}\hat{y}^t_{l,i} \odot (1 - m_l) \\
\hat{y}^t &= \alpha^t_{r,\text{h}}\hat{y}^t \odot m_r + \textstyle\sum_{i} \alpha^t_{r,i}\hat{y}^t_{r,i} \odot (1 - m_r)
\end{align}
\noindent
\texttt{your text - IN CAPITALS}\\
\texttt{lrlr text - IN CAPITALS}
\end{document}
我有很多这样的方程式需要按顺序计算和读取,我认为如果至少可以让特定字母占据相同的宽度会更好。在上面的例子中,我希望下标l
具有r
相同的宽度,或者让字母l
有额外的填充以匹配字母r
占用的总宽度。我不能使用它们的大写字母。
答案1
我认为最好对齐运算符,而不是通过强制相同宽度的字符来获得“意外”对齐。
我还将文本样式限制为总和而不是表达式的其余部分。
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{4}
\hat{y}^t &= \alpha^t_{l,\text{h}}\hat{y}^t &&\odot m_l &&+ \mathop{\textstyle\sum_{i}} \alpha^t_{l,i}\hat{y}^t_{l,i} &&\odot (1 - m_l) \\
\hat{y}^t &= \alpha^t_{r,\text{h}}\hat{y}^t &&\odot m_r &&+ \mathop{\textstyle\sum_{i}} \alpha^t_{r,i}\hat{y}^t_{r,i} &&\odot (1 - m_r)
\end{alignat}
\noindent
\texttt{your text - IN CAPITALS}\\
\texttt{lrlr text - IN CAPITALS}
\end{document}
答案2
我同意大卫·卡莱尔的观点XY 问题。
但是,这里有一些 X 问题的答案。\texttt
如果您使用,该命令也可以在数学模式下工作amsmath
,几乎所有的数学试卷都使用。该unicode-math
包还提供了\symtt
Unicode 数学打字机字母表。(请注意,两者都不应该与普通变量同义。)最后,您可以计算下标的最大宽度,并将 a 放在\scriptstyle i
a 内,\mbox
其宽度与最宽的下标相同。