带有矢量箭头的 XeLaTeX 问题

带有矢量箭头的 XeLaTeX 问题

我试图$\overrightarrow{V}_{AB}$只用向量来写V,但当我这样做时,下标AB会远离V。另一方面,当我使用向量时VAB它似乎是错误的,而且不太美观。我做错了什么?非常感谢!

答案1

如果与 XeLaTeX 一起使用unicode-math,则在 V 上有或没有箭头时打印的内容没有区别;只有使用\vec或时箭头长度会发生变化\overrightarrow

\documentclass{article}
\usepackage{unicode-math}

\linespread{1.05} % if you have arrows over capital letters

\begin{document}
$V_{AB}$ \sbox0{$V_{AB}$}\the\wd0

$\vec{V}_{AB}$ \sbox0{$\vec{V}_{AB}$}\the\wd0

$\overrightarrow{V}_{AB}$ \sbox0{$\overrightarrow{V}_{AB}$}\the\wd0
\end{document}

这些\sbox命令只是打印材料的宽度,显示宽度是相同的。

在此处输入图片描述

当然,这种情况下的字母形状会留下一个空洞,应该从视觉上进行纠正。这种情况与 类似$\sqrt{\log x}$,最好添加一个细小的空间

$\sqrt{\,\log x}$

$x^2/2$建议使用负薄空间

$x^2\!/2$

以下是具体实现,左边是未经修正的,右边是经过修正的:

在此处输入图片描述

所以,对于你的情况,我建议

\documentclass{article}
\usepackage{unicode-math}

\linespread{1.05} % if you have arrows over capital letters

\begin{document}
$V_{\!AB}$                           

$\vec{V}_{\!AB}$

$\overrightarrow{V}_{\!AB}$ 

\end{document}

在此处输入图片描述

我绝对不会建议使用\overrightarrow没有unicode-math,因为结果很糟糕

在此处输入图片描述

而且我指的并不是变量和下标之间的空间,而是指箭头的大小,它太大了。

答案2

欢迎来到 TeX.se!:-)

尝试这个:$\overrightarrow{V}_{\!AB}$

插入\!负水平间距。

答案3

问题是会\overrightarrow产生一个框。当将下标添加到框中时,它会将其视为矩形,无法看到里面的内容。当将下标添加到字符时,它会看到该字符的斜体校正(大致与倾斜量成比例)并对其进行补偿。简单的解决方法是插入负空间,其数量基于反复试验。困难的方法是尝试自动测量必要的负空间量:

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\overrightarrowwithsubscript#1{\mathpalette{\@oraws{#1}}}
\def\@oraws#1#2#3{%
  \begingroup
  \setbox0=\hbox{$#2{{#1}_{#3}}$}%
  \setbox2=\hbox{$#2{\overrightarrow{#1}_{#3}}$}%
  \@tempdima=\wd2 \advance\@tempdima-\wd0
  \overrightarrow{#1}_{\hskip-\@tempdima #3}
  \endgroup}
\begin{document}
$\overrightarrow{V}_{AB} \qquad \overrightarrowwithsubscript{V}{AB}$

\bigskip
$\frac{\overrightarrow{V}_{AB}}{\overrightarrow{V}_{AB}}\qquad
\frac{\overrightarrowwithsubscript{V}{AB}}{\overrightarrowwithsubscript{V}{AB}}$
\end{document}

pdflatex 输出

答案4

您可以使用该esvect包:它使用命令管理下标\vv*,箭头不会与下方的内容发生碰撞,您可以在八种箭头形式之间进行选择。以下是一个例子,与 进行比较\overrightarrow

\documentclass[12pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[f]{esvect}

\begin{document}

\[ \vv*{V}{AB}\qquad\vv*{V}{\!AB}\qquad \overrightarrow{V}_{AB}  \]

\end{document}

在此处输入图片描述

相关内容