CircuiTikZ 美国电压符号未与 unicode-math 垂直对齐

CircuiTikZ 美国电压符号未与 unicode-math 垂直对齐

我正在创建电路图,并注意到电压符号没有垂直对齐。

我手动添加了红色覆盖来突出显示该问题。 XeLaTeX 代码输出

我通过 LaTeXmk 使用了 XeLaTeX,代码如下:

\documentclass{standalone}

\usepackage{unicode-math}
\setmathfont{Latin Modern Math}

\usepackage{circuitikz}

\begin{document}
\begin{circuitikz}[american]
    \ctikzset{voltage=raised}
    \draw (0, 0) to[R=$R_1$, *-*, v=$v_1$] ++ (-2, 0);
\end{circuitikz}
\end{document} 

如果我删除unicode-math包和Latin Modern Math字体,那么问题就解决了。 不使用 unicode-math 的代码输出 有可能在内修复该问题吗unicode-math

谢谢您的帮助!

答案1

我发现了问题:在标准 LaTeX 数学字体中,减号的方框与加号大小相同,且居中。在拉丁现代数学中,减号的方框不对称。查看此示例并测试是否使用unicode-mathLatin Modern Math...

% TeX program = lualatex
\documentclass{standalone}

\usepackage{unicode-math}
\setmathfont{Latin Modern Math}

\usepackage{circuitikz}

\begin{document}
\begin{tikzpicture}
    \ctikzset{voltage=raised}
    \draw (0.5,1) node[draw,red,thin,inner sep=1pt]{$-$}
            (1,1) node[draw,red,thin,inner sep=1pt]{$+$};
    \draw (0, 0) to[R=$R_1$, *-*, v=$v_1$, name=A] ++ (2, 0);
    \draw[red, opacity=0.5]  (A-Vfrom) -- (A-Vto);
    \ctikzset{voltage/american plus=$+$}
    \ctikzset{voltage/american minus=$\vphantom{+}-$}
    \draw (0, -2) to[R=$R_1$, *-*, v=$v_1$, name=B] ++ (2, 0);
    \draw[red, opacity=0.5]  (B-Vfrom) -- (B-Vto);
\end{tikzpicture}
\end{document}

unicode-math拉丁现代数学:

在此处输入图片描述

unicode-math(看看盒子!)

在此处输入图片描述

因此,问题在于减号不在框的中心unicode-math。我不知道这是否是一个特性,但考虑到circuitikz逐个定位节点,它会使它混淆。

如您所见,解决方法是使用:

\ctikzset{voltage/american minus=$\vphantom{+}-$}

固定减号的位置。

相关内容