例如
$\widetilde{\bm{H}}$
或者
$\widetilde{\boldsymbol{H}}$
会导致字母 H、K、M、N、W 和 X 上方出现较大的波浪符号,请参见以下字母表:
我可以理解该命令可以自适应地调整特定字母的宽度,但是我如何自定义这个宽度呢?
答案1
这段代码定义了三个宏:
\mathcenterto{#1}{#2}
排版#2
要居中,大小为#1
;\widetildeto{#1}{#2}
会将宽波浪号放在上面,#2
但它认为它的大小是#1
。如果您希望整个文档中的所有宽波浪号都相同,则可以将\def\widetilde{\widetildeto{X}}
或任何其他字母放在 之外X
;\widehatto{#1}{#2}
为了\widehat
。
备注:需mathtools
另加包装amsmath
!
警告:参数不能包含活动宏,因为#1
会扩展两次并#2
扩展三次!您仍然可以使用大多数数学宏,如,,,\vec
...禁止使用宏,如,,,...\bm
\frac
\newcommand
\addtocounter
\documentclass{article}
\usepackage{amsmath,mathtools}
\makeatletter
\def\mathcenterto#1#2{\mathclap{\phantom{#1}\mathclap{#2}}\phantom{#1}}
\let\old@widetilde\widetilde
\def\widetildeto#1#2{\mathcenterto{#2}{\old@widetilde{\mathcenterto{#1}{#2\,}}}}
\let\old@widehat\widehat
\def\widehatto#1#2{\mathcenterto{#2}{\old@widehat{\mathcenterto{#1}{#2\,}}}}
\makeatother
\begin{document}
\[
\widetildeto{I}{W} \widetilde{I}
\]
\[
\widetilde{W} \widetildeto{W}{I}
\]
\def\widetilde{\widetildeto{X}}
\[
\widetilde{W} \widetilde{I}
\]
\end{document}