我在数学模式中需要一个“宽短音”重音,可以稍微延伸一点,就像\widetilde
和\widehat
做一样。我尝试了以下两个建议显示多个字母上的短音符,但第一个不太令人满意,有几个原因。第二个在图片上看起来不错,但它不适用于单个字母:
为了方便起见,这里是链接线程中原始帖子的代码本身:
\makeatletter
\def\widebreve#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern\p@}%
\brevefill\crcr\noalign{\kern0.1\p@\nointerlineskip}%
$\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\def\brevefill{$\m@th \setbox\z@\hbox{}%
\hfill\scalebox{0.7}{\rotatebox[origin=c]{90}{(}} \kern4pt $}
\makeatletter
我希望有类似这个例子中的宽短音
这也适用于数学模式下的单个字母,并且比单纯的 更宽\breve{U}
。想想\widetilde{U}
或\widehat{U}
。如果有人知道如何修复它或有更好的建议,我会很高兴。谢谢!
答案1
我认为 Sabian 的代码只适用于两个字符,因此我尝试对其进行改进:
\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}
\makeatletter
\def\widebreve{\mathpalette\wide@breve}
\def\wide@breve#1#2{\sbox\z@{$#1#2$}%
\mathop{\vbox{\m@th\ialign{##\crcr
\kern0.08em\brevefill#1{0.8\wd\z@}\crcr\noalign{\nointerlineskip}%
$\hss#1#2\hss$\crcr}}}\limits}
\def\brevefill#1#2{$\m@th\sbox\tw@{$#1($}%
\hss\resizebox{#2}{\wd\tw@}{\rotatebox[origin=c]{90}{\upshape(}}\hss$}
\makeatletter
\begin{document}
\begin{tabular}{ccc}
\(\widebreve{ONO}\) & \(A^{\widebreve{ONO}}\) & \(B^{A^{\widebreve{ONO}}}\) \\
\(\widebreve{ON}\) & \(A^{\widebreve{ON}}\) & \(B^{A^{\widebreve{ON}}}\) \\
\(\widebreve{U}\) & \(A^{\widebreve{U}}\) & \(B^{A^{\widebreve{U}}}\) \\
\end{tabular}
\end{document}
原则上,该命令适用于任意数量的字符。不过,有几点需要手动调整。
\kern0.08em\brevefill#1{0.8\wd\z@}\crcr\noalign{\nointerlineskip}%
包含两个可调整的参数:\kern0.08em
和0.8\wd\z@
。第一个是要在短重音符左侧插入的水平空间,以使其看起来“更居中”。第二个(0.8
)是重音符相对于重音字符的相对位置。