我正在创建电路图,并注意到电压符号没有垂直对齐。
我通过 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
?
谢谢您的帮助!
答案1
我发现了问题:在标准 LaTeX 数学字体中,减号的方框与加号大小相同,且居中。在拉丁现代数学中,减号的方框不对称。查看此示例并测试是否使用unicode-math
和Latin 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{+}-$}
固定减号的位置。