我怎样才能避免电线像这样被拉过针脚?
我只是将电路缩放了 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}