我正在尝试制作一个类似于矢量的符号,用于我正在撰写的论文中。实际上,我几乎可以在 Mathematica 中制作出我想要的符号,它看起来像这样:
在 TeX 中我使用 $\overset{\rightharpoonup}{\Gamma_{\! G}}$
,其结果为:
顶部的鱼叉设置得太高了。
此外,较高的鱼叉线会导致行距出现问题,这从下图中可以看出:
我如何“轻推”\rightharpoonup
它以使其不至于设置得过高\Gamma
?
答案1
\documentclass{minimal}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{tikz}
% Adjust the -0.75ex to taste
\newcommand{\tightoverset}[2]{%
\mathop{#2}\limits^{\vbox to -.5ex{\kern-0.75ex\hbox{$#1$}\vss}}}
% Just for fun, a tikz solution
\newcommand{\tikzoverset}[2]{%
\tikz[baseline=(X.base),inner sep=0pt,outer sep=0pt]{%
\node[inner sep=0pt,outer sep=0pt] (X) {$#2$};
\node[yshift=1pt] at (X.north) {$#1$};
}}
\begin{document}
\lipsum[1]
$\overset{\rightharpoonup}{\Gamma_{\!G}}$
$\tightoverset{\rightharpoonup}{\Gamma_{\!G}}$
$\tikzoverset{\rightharpoonup}{\Gamma_{\!G}}$
\lipsum[2]
\end{document}
(这也会给你一个更大的鱼叉,它更接近你的 Mathematica 示例。)
答案2
您可以使用降低高度\smash
并插入假高度来上下移动重音:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
$\overset{\rightharpoonup}{\Gamma_{\!G}}\
\overset{\rightharpoonup}{\vphantom{a}\smash{\Gamma_{\!G}}}$
\end{document}
\vphantom{a}
只是插入一个高度对象a
(无上升部分)。或者,您可以使用\rule{0pt}{.6ex}
,例如。
答案3
您可能需要考虑使用包\overrightharp
提供的命令harpoon
。符号的总长度会自动适应其参数的宽度。
请注意,与大多数数学重音符号不同,\overrightharp
宏的操作方式是文本模式。如果要在数学上下文中经常使用,那么创建一个包装器宏(例如)可能是个好主意\orh
,该宏在数学模式下可以正常运行。以下 MWE 显示了如何做到这一点:
\documentclass{standalone}
\usepackage{harpoon,amsmath}
\newcommand*{\orh}[1]{\text{\overrightharp{\ensuremath{#1}}}}
\begin{document}
\overrightharp{$\Gamma_{\!G}$} and $\orh{\Gamma_{\!G}}$
\end{document}
另外,如果该术语\Gamma_{\!G}
将在您的文档中频繁使用,您可能需要创建一个专用的宏,例如\def\GG{\Gamma_{\!G}}
。这将为您节省大量在文档本身中输入的内容(并避免大量输入错误的机会...)。
答案4
据我所知,这类事情的“正确”方法是数学重音。使用 XeTeX,底层定义可以是,例如(需要在此之前设置字体):
\def\rharp{\XeTeXmathaccent"7"0"20D1 } % for luatex: \Umathaccent
$ \rharp\Gamma \qquad \rharp{\Gamma_G} \qquad \rharp{\Gamma_{GG}} $
看起来像(XITS Math 处于活动状态):
-packageunicode-math
具有这个数学重音,可以通过以下命令访问:
\rightharpoonaccent