![重新定义下划线以产生罗马下标](https://linux22.com/image/234182/%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E4%B8%8B%E5%88%92%E7%BA%BF%E4%BB%A5%E4%BA%A7%E7%94%9F%E7%BD%97%E9%A9%AC%E4%B8%8B%E6%A0%87.png)
我想重新定义下划线,_
以便在罗马字体的数学模式下自动设置下标,因为我目前发现自己几乎总是使用_\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}