Circuitikz siunitx 和 mathmode 错误?

Circuitikz siunitx 和 mathmode 错误?

以下是我现在的情况:

\documentclass[12pt]{article}
\usepackage{pgfplots}
\usepackage{float}
\pgfplotsset{compat=1.17}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows.meta, automata, positioning, matrix, calc}
\usepackage[RPvoltages, american,siunitx]{circuitikz}
\usepackage[margin=1in]{geometry} 
\usepackage{steinmetz}
\begin{document}    
    \begin{figure}[H]
        \centering
        \begin{circuitikz}
            \draw(0,0) to [V = $250\phase{\ang{0}}$] ++(0, 3) ;
        \end{circuitikz}
    \end{figure}
\end{document}

输出:

在此处输入图片描述

现在,我试图将以下任一项输入到括号中:

[V = $\SI[parse-numbers = false]{250\phase{\ang{0}}} {\volt}$]

错误:Package tikz Error: (, +, coordinate, pic, or node expected. \draw(0,0) to [$\SI[parse-numbers = false]{

[V = $250\phase{\ang{0}}$ <\volt>]

错误:Argument of \XC@definec@lor has an extra }. ... [V = $250\phase{\ang{0}}$ <\volt>] ++(0, 3)

我希望 siunit 能V像往常一样显示。如何解决?

编辑:我也尝试对电感器做同样的事情:

\documentclass[12pt]{article}
\usepackage{pgfplots}
\usepackage{float}
\pgfplotsset{compat=1.17}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows.meta, automata, positioning, matrix, calc}
\usepackage[RPvoltages, american,siunitx]{circuitikz}
\usepackage[margin=1in]{geometry} 
\usepackage{steinmetz}
\begin{document}    
    \begin{figure}[H]
        \centering
        \begin{circuitikz}
            \draw(0,0) to [$\SI[parse-numbers = false]{250\phase{\ang{0}}} {\volt}$] ++(0, 3) to[L = $j10$ <\ohm>] ++(3, 0);
        \end{circuitikz}
    \end{figure}
\end{document}

但是,我还收到一条错误消息:

Package siunitx Error: Invalid token '$' in numerical input. \draw(0,0) to[L = $j10$ <\ohm>] ++(3, 0)

如何修复这个问题?请注意,我试图绘制的内容基于以下内容:

在此处输入图片描述

答案1

这里有两个问题。

第一个是错误/限制circuitikz;当向下传递参数时,它们是没有额外的支架保护,所以你必须保护所有对 Ti 有意义的角色Z 解析器(如,=])多次。虽然使用一组 8 个(!)括号就足够了,但我发现使用一个\mbox{}更简单。

第二个是“加速 siunitx 语法” <unit>(我个人不喜欢,因为我更喜欢更清晰的\SI{}{})仅适用于结构數字<單位>,因此您必须删除数学开关。

最后,这个工作正常:

\documentclass[12pt]{article}
\usepackage[RPvoltages, american,siunitx]{circuitikz}
\usepackage{steinmetz}
\sisetup{copy-complex-root, complex-root-position=before-number}
\begin{document}
\begin{circuitikz}
    \draw(0,0) to [V=\mbox{$\SI[parse-numbers = false]{250\phase{\ang{0}}} {\volt}$}] 
    ++(0, 3) to[L = j10<\ohm>] ++(3, 0);
\end{circuitikz}
\end{document}

在此处输入图片描述

相关内容