在排版数学符号时,我感觉 LaTeX 有时比普通字体效果更好。我的问题是,LaTeX 有什么不同,以及普通字体是否也有简单的解决方法。
我所知道的问题有:
- 对于某些字体(例如脚本字体),Plain 不会将重音符号移到右侧。这是加载字体的软件包的问题吗?(顺便说一句,通常
\cal
没问题,但\script
错误。) - 当组合两个重音符号时,plain 会将第一个重音符号向右移动,但不会将第二个重音符号向右移动。
作为演示,比较以下两个结果。我使用 kp 字体,因为它们对数学重音的偏移相当大(我不得不说,这对我来说有点太大了)。
纯代码:
\input kp-fonts
$\tilde x, \bar x, \bar{\tilde x}, \tilde{\bar x}, \tilde{\script C}$
\bye
LaTeX 代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{kpfonts}
\begin{document}
$\tilde x, \bar x, \bar{\tilde x}, \tilde{\bar x}, \tilde{\mathscr{C}}$
\end{document}
结果:
答案1
我设法想出了第二个问题的解决方案。修改了http://petr.olsak.net/opmac-tricks-e.html#colaccent可以定义
\newmuskip\tmpmudim
\newdimen\tmpdim
\def\accents#1#2#3{
{\ifnum\skewchar\textfont1<0 \tmpmudim=0mu \else \calculatemukern {#3}{\char\skewchar\textfont1}\fi
\mkern2\tmpmudim #1{\mkern-2\tmpmudim{#2#3}}}
}
\def\calculatemukern #1#2{\setbox0=\hbox{\the\textfont1 #1#2}\setbox1=\hbox{\the\textfont1 #1\null#2}%
\tmpdim=\wd0 \advance\tmpdim by-\wd1
\tmpmudim=\expandafter\ignorept\the\tmpdim mu \tmpmudim=288\tmpmudim
\tmpdim=16em \divide\tmpmudim by\expandafter\ignorefracpart\the\tmpdim\relax
}
\def\ignorefracpart#1.#2\relax{#1}
{\lccode`\?=`\p \lccode`\!=`\t \lowercase{\gdef\ignorept#1?!{#1}}}
那么就足够了
$\accents\bar\tilde x, \accents\tilde\bar x$
以获得正确的结果。
但如果它能以某种方式自动运行就好了。