【解决方案】

选自:http://bbs.ctex.org/viewthread.php?tid=34373

回答:Neals

编译下面的例子

\documentclass{article}
\begin{document}
$P_{x+y_{2x}}$
\font\sevenrm=cmr7
\font\fiverm=cmr5
\scriptfont1=\sevenrm
\scriptscriptfont1=\fiverm
$P_{x+y_{2x}}$
\end{document}
[right][snapback]266535[/snapback][/right]

我之前也這樣想過,不過這樣不好,比如 $\frac ab$ 就亂了,我建議:

CODE

\documentclass{article}
\let\sb=_ \catcode`\_=\active \def_#1{\ensuremath \sb{\rm#1}}
\begin{document}
$a+b_{12abcd}=\frac ab$
\end{document}

具体解释如下:

TeX 把 256 個字符分割為 15 個類,默認 _ 是屬於第 8 類,我先將 _ 的定義完全賦給 \sb 命令(等會兒有用),然後將 _ 改爲第 13 類,這樣就可以用 \def 來定義了,於是利用剛才定義的 \sb 命令,將所有下標之前添 \rm 命令,這樣就都變成正體了

\catcode`_=\active 就是把 _ 改爲第 13 類,plain.tex 中有句:
\chardef\active=13
這樣看一下應該知道了吧

点赞(1)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部