\xrightarrow 问题

\xrightarrow 问题

我从 \xrightarrow 命令中得到了一些奇怪的事情:该线是虚线。 在此处输入图片描述

这是我的main.tex文件:

\documentclass[twoside,titlepage,paper=a4,fontsize=12pt,numbers=noenddot,cleardoublepage=empty,openright]{scrreprt}

\usepackage{polyglossia}
\setdefaultlanguage{french}

\usepackage{feynmp}

\usepackage{unicode-math}
\RequirePackage{amsmath}
\usepackage{slashed}

\usepackage{graphicx}
\DeclareGraphicsRule{*}{eps}{*}{}

\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext=eqs,placement={tbp},name=Éq.]{eq}


\begin{document}

\begin{equation}
\parbox{30mm}{
\vspace{4.3mm}
\begin{fmffile}{self}
\begin{fmfgraph*}(100,75)
    \fmfcmd{
    vardef middir(expr p,ang) =
     dir(angle direction length(p)/2 of p + ang)
    enddef;
    style_def arrow_right expr p =
     shrink(.7);
      cfill(arrow p
       shifted (8thick*middir(p,-90)));
     endshrink
    enddef;}
    \fmfset{curly_len}{2mm}
    \fmfleft{i} \fmfright{o}
    \fmf{quark,label=$p$}{i,v1} \fmf{quark,label=$p$}{v2,o}
    \fmf{quark,tension=.3,label=$p+l$}{v1,v2}
    \fmf{arrow_right,tension=.3}{v2,v1}
    \fmf{gluon,left,tension=.1,label=$l$}{v1,v2}
\end{fmfgraph*}
\end{fmffile}
} 
\qquad \xrightarrow[\: \varepsilon \to 0 \:]{}
\quad i \, \slashed{p} \, C_F\, \frac{g_C^2}{4\pi} \, \frac{1}{\varepsilon} + \dots
\end{equation}

\end{document}

为了编译,我运行:

latexmk -quiet -e '$pdflatex=q/xelatex %O %S/' -f -pdf -synctex=1 -jobname=Document -outdir=$PWD/Result $PWD/main.tex
cd Result/
mpost self.mp
cd ..
latexmk -quiet -e '$pdflatex=q/xelatex %O %S/' -f -pdf -synctex=1 -jobname=Document -outdir=$PWD/Result $PWD/main.tex

你知道我该如何解决这个问题吗?

非常感谢你的帮助 !

(编辑:)

以下是 MWE:

\documentclass{article}



\usepackage{unicode-math}
\RequirePackage{amsmath}

\begin{document}

\begin{equation}
 \xrightarrow[\: \varepsilon \to 0 \:]{}
\end{equation}

\end{document}

答案1

\arrowfill@在使用拉丁现代数学时,似乎所做的备份不够。以下是解决方法:

\documentclass{article}
\usepackage{ifxetex}

\usepackage{amsmath}
\usepackage{etoolbox}
\ifxetex
  \usepackage{unicode-math}
  \makeatletter
  \patchcmd{\arrowfill@}{-7mu}{-14mu}{}{}
  \patchcmd{\arrowfill@}{-7mu}{-14mu}{}{}
  \patchcmd{\arrowfill@}{-2mu}{-4mu}{}{}
  \patchcmd{\arrowfill@}{-2mu}{-4mu}{}{}
  \makeatother
\fi

\begin{document}

\begin{gather}
 \xrightarrow[\mspace{28mu}]{}\\
 \xrightarrow[\mspace{30mu}]{}\\
 \xrightarrow[\mspace{32mu}]{}\\
 \xrightarrow[\mspace{34mu}]{}\\
 \xrightarrow[\mspace{36mu}]{}\\
 \xrightarrow[\mspace{38mu}]{}\\
 \xrightarrow[\mspace{40mu}]{}\\
 \xrightarrow[\mspace{42mu}]{}\\
 \xrightarrow[\mspace{44mu}]{}\\
 \xrightarrow[\mspace{46mu}]{}\\
 \xrightarrow[\mspace{48mu}]{}\\
 \xrightarrow[\mspace{50mu}]{}\\
 \xrightarrow[\mspace{52mu}]{}\\
 \xrightarrow[\mspace{54mu}]{}\\
 \xrightarrow[\mspace{56mu}]{}\\
 \xrightarrow[\mspace{58mu}]{}\\
 \xrightarrow[\mspace{60mu}]{}\\
 \xrightarrow[\mspace{62mu}]{}\\
 \xrightarrow[\mspace{64mu}]{}\\
 \xrightarrow[\mspace{66mu}]{}\\
 \xrightarrow[\mspace{68mu}]{}\\
 \xrightarrow[\mspace{70mu}]{}\\
 \xrightarrow[\mspace{72mu}]{}\\
 \xrightarrow[\mspace{74mu}]{}\\
 \xrightarrow[\mspace{76mu}]{}\\
 \xrightarrow[\mspace{78mu}]{}
\end{gather}
\end{document}

在此处输入图片描述

\patchcmd如果注释掉这四行,则输出如下。

在此处输入图片描述

可以观察到第一部分和最后一部分有间隙,而中间部分彼此不重叠。终端部分的默认备份为 -7mu,中间部分的默认备份为 -2mu。

答案2

这与解释方式有关\:。以下代码不存在同样的问题。

\documentclass{article}


\RequirePackage{amsmath}
\usepackage{unicode-math}

\begin{document}

\begin{equation}
 \xrightarrow[\; \varepsilon \to 0 \;]{}
\end{equation}

\end{document}

相关内容