使用 Garamond 字体排版$\overrightarrow{OQ}$
时,箭头会出现非常不美观的间隙。下面是一个显示该问题的最小工作示例。没有 Garamond 线条,它看起来还不错。
\documentclass{article}
\usepackage[garamond]{mathdesign}
\begin{document}
\[\overrightarrow{OQ}.\]
\end{document}
这显然是一个不需要的功能。可以修复它吗?(放弃 Garamond 不是一个选择,我已经用它排版和打印了几百页,我想为我的学生提供统一的文档)。
答案1
问题在于,与选项一起使用的数学字体中的减号和箭头garamond
比平时短,这会破坏\rightarrowfill
中的使用\overrightarrow
。
您应该通过重新定义来修复该故障\rightarrowfill
:
\documentclass{article}
\usepackage[garamond]{mathdesign}
\makeatletter
\def\rightarrowfill{%
$\m@th\smash-\mkern-9mu
\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
\mkern-9mu\mathord\rightarrow$}
\makeatother
\begin{document}
$\overrightarrow{OQ}$
\makebox[1.0em]{\rightarrowfill}
\makebox[1.1em]{\rightarrowfill}
\makebox[1.2em]{\rightarrowfill}
\makebox[1.3em]{\rightarrowfill}
\makebox[1.4em]{\rightarrowfill}
\makebox[1.5em]{\rightarrowfill}
\makebox[1.6em]{\rightarrowfill}
\makebox[1.7em]{\rightarrowfill}
\makebox[1.8em]{\rightarrowfill}
\makebox[1.9em]{\rightarrowfill}
\makebox[2.0em]{\rightarrowfill}
\makebox[2.1em]{\rightarrowfill}
\end{document}
使用amsmath
(由amsart
和隐式加载amsbook
)补丁也应该是\arrowfill@
;使用更简单etoolbox
:
\usepackage{etoolbox}
\makeatletter
\patchcmd\arrowfill@{-7mu}{-9mu}{}{}
\patchcmd\arrowfill@{-7mu}{-9mu}{}{}
\patchcmd\rightarrowfill{-7mu}{-9mu}{}{}
\patchcmd\rightarrowfill{-7mu}{-9mu}{}{}
\makeatother