CircuiTikz 边境入侵

CircuiTikz 边境入侵

我怎样才能避免电线像这样被拉过针脚?

在此处输入图片描述

我只是将电路缩放了 1 倍(比例=1.5),并且知道有些电线与某些元件重叠。您可以在上图中看到,橙色电线画在电压源上方。

这就是发生这种情况的一个例子,稍微放大一点。

\documentclass[a4paper,12pt]{article}

\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[]{circuitikzgit}

\begin{document}

\begin{center}
    \begin{circuitikz}[rotate=90,scale=1.5,transform shape]
    \draw (-3,-4) node[dcvsourceshape,rotate=90,label={[label distance=0.25cm]-45:\tt 5 V}](Vi){};
    \draw[color=orange] (Vi.right) -- ++(0,1);
    \end{circuitikz}
\end{center}    

\end{document}

如你所见,我使用了最新版本的 CircuiTikz,这是你可以得到它的地方

答案1

这些只是解决方法。我不认为有一个简单的通用解决方案。您可以缩短橙色线(但这需要您知道圆圈的线宽)或将其绘制在背景上。其他替代方案包括使用逆剪辑

\documentclass[a4paper,12pt]{article}

\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[]{circuitikz}
\usetikzlibrary{backgrounds}

\begin{document}
\section*{Workarounds}

\subsection*{Shorten}

\begin{center}
    \begin{circuitikz}[rotate=90,scale=1.5,transform shape]
    \draw (-3,-4) node[dcvsourceshape,rotate=90,
    label={[label distance=0.25cm]-45:5 V}](Vi){};
    \draw[color=orange,shorten <=0.4pt] (Vi.right) -- ++(0,1);
    \end{circuitikz}
\end{center}    

\subsection*{Use layers}

\begin{center}
    \begin{circuitikz}[rotate=90,scale=1.5,transform shape]
    \draw (-3,-4) node[dcvsourceshape,rotate=90,
    label={[label distance=0.25cm]-45:5 V}](Vi){};
    \begin{scope}[on background layer]
     \draw[color=orange] (Vi.right) -- ++(0,1);
    \end{scope} 
    \end{circuitikz}
\end{center}    

\end{document}

在此处输入图片描述

答案2

如果使用to语法,您可以这样做:

\documentclass[a4paper,12pt]{article}

\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[siunitx, RPvoltages]{circuitikzgit}

\begin{document}

\begin{center}
    \begin{circuitikz}[rotate=90,scale=1.5,transform shape]
    \draw[color=orange]  (0,0) to[dcvsource, color=black, name=A] ++(0,2);
    \node [right] at(A.south) {\SI{5}{V}};
    \end{circuitikz}
\end{center}

\end{document}

在此处输入图片描述

...顺便说一下,你的例子发现了一个错误 --- 如果我使用

to[dcvsource, color=black, l_=\SI{5}{V}]

我遇到了一个除以零的错误,这是由全局的 引起的rotate。现在,circuitikz没有用旋转测试过,所以严格来说不是一个错误,但我会深入研究它。

如果有人愿意提供帮助,这里是错误报告:https://github.com/circuitikz/circuitikz/issues/344

旋转比例circuitikz环境的更好方法是将其放在一个盒子中并使用以下方式旋转rotatebox

\documentclass[a4paper,12pt]{article}

\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[siunitx, RPvoltages]{circuitikzgit}

\begin{document}

\begin{center}
    \rotatebox{90}{%
    \begin{circuitikz}[scale=1.5,transform shape]
        \draw[color=orange]  (0,0)
        to[dcvsource, color=black, l_={\color{black}\SI{5}{V}}]
        ++(0,2);
    \end{circuitikz}}
\end{center}

\end{document}

在此处输入图片描述

答案3

没有答案,但是为什么线宽会随着背景层而减小?

在此处输入图片描述

相关内容