当我使用相关电压源时,设备的极性会根据我编译文档的计算机而变化(它不是随机的;我的家用笔记本电脑总是会在一个方向显示源,在工作时则显示另一个方向)。这是一个大问题,因为我经常在家里为学生写作业,在工作时重新编译,然后在打印出来时极性不正确。有什么方法可以规定源的方向,以便计算机不会改变它?
例子:
\begin{circuitikz}[font=\sffamily, american voltages]
\draw (-2,2) to [V, l_=8~V] (-2,0);
\draw (0,0) to [cV, l_=4~V] (0,2);
\draw (-2,2) to [R, bipoles/length=1cm, l_=2~k$\Omega$, v^>=$V_1$] (0,2);
\draw (-2,0) to [short] (0,0);
\end{circuitikz}
答案1
编辑(1): 多年后我发现我没有加载正确的图像。应该是下面的这个:
使用您的代码,我重现了您的正确图像。但我假设您喜欢留下一个在工作中制作的图像。为此,我对您的电路方案进行了以下重新设计。其代码略短,可用于siunitx
单位:
\documentclass[margin=3mm]{standalone}
\usepackage{siunitx}
\usepackage[siunitx]{circuitikz}
\begin{document}
\begin{circuitikz}[american voltages]
\ctikzset{bipoles/length=1cm}
\draw (0,2) to [V, l_=8<\volt>] (0,0)
(0,2) to [R, l_=2<\kilo\ohm>, v^>=$V_1$] (2,2)
to [cV,l^=4<\volt>] (2,0)
to [short] (0,0)
;
\end{circuitikz}
\end{document}
如果两台计算机上安装的是相同的 LaTeX,则上述 MWE 应该会在两台计算机上给出相同的结果。
编辑(2): 不幸的是,您只提供了代码片段,所以我们不知道您使用了哪个文档类以及在文档前言中加载了哪些包。因此,在上述原始解决方案中使用了默认 (roman) 字体,而不是您图片中显示的 san serif。
对于无衬线字体,您需要加载包并声明使用此类字体。一种方法是使用 XeLaTeX 或 LuaLaTeX 引擎,如以下 MWE 中所做的那样(其中还有一点点改进的 circuitikz 代码):
\documentclass[margin=3mm]{standalone}
\usepackage[no-math]{fontspec}
\setmainfont{Source Sans Pro}
\usepackage[italic]{mathastext}
\usepackage[siunitx]{circuitikz}
\sisetup{detect-family,
detect-weight,
}
\begin{document}
\begin{circuitikz}[font=\small, american voltages]
\draw (0,0) to [V, l^=8<\volt>, invert] (0,2)
to [R, l_=2<\kilo\ohm>, v^>=$V_1$] ++ (2,0)
to [cV,l^=4<\volt>] (2,0)
to [short] (0,0);
\end{circuitikz}
\end{document}
使用 XeLaTeX 或 LuaLaTeX 编译后<ou将获得以下结果: