重新定义下划线以产生罗马下标

重新定义下划线以产生罗马下标

我想重新定义下划线,_以便在罗马字体的数学模式下自动设置下标,因为我目前发现自己几乎总是使用_\mathrm{}。我找不到重新定义以下内容的方法_
\renewcommand_

! Missing control sequence inserted.
<inserted text> 
                \inaccessible 

\show_告诉我

subscript character _.

我发现如何创建_活跃角色的描述在 Anthony Lieken 的网站上,但这只是带来_文本^模式,并不会改变数学模式下的行为。

问:我怎样才能使_x行为变得像_\mathrm{x}

答案1

采取_积极措施是正确的想法:

\documentclass{minimal}
\catcode`_=\active
\newcommand_[1]{\ensuremath{\sb{\mathrm{#1}}}}
\begin{document}
a_{text} $a_{text}$
\end{document}

感谢\ensuremath(以及 Bruno),这也可以在文本模式下使用。对于“旧”模式,_您可以使用\sb

答案2

\documentclass[12pt]{article}

\catcode`\_=\active
\def_#1{\ensuremath{\sb{\mathrm{#1}}}}

\begin{document}

$f_{bar}$ f_x

\[ \int_a^b f(x) \mathrm{d}x \]
\[ \int\sb{a}^b f(x) \mathrm{d}x \]

\end{document}

相关内容