如何在 circuitikz 样式文件 ctikzstyle 中指定线宽?

如何在 circuitikz 样式文件 ctikzstyle 中指定线宽?

我已经编写了一个自定义 circuitikz 样式文件,但它不应用line width第 7 行 tikz 级别设置块中指定的选项。

我的样式文件ctikzstyle-mystyle.tex名称为mystyle

% Do not use LaTeX commands if you want it to be compatible with ConTeXt!
% Do not add spurious spaces!
%
\tikzset{mystyle circuit style/.style={%
% generic tikz-level settings
american,%
line width=1pt,% PROBLEM HERE
%
\circuitikzbasekey/.cd,%
% circutikz-level settings
%
% RESISTORS
resistors/scale=0.7,
resistors/thickness=1.0,
%
% CAPACITORS
capacitors/scale=0.7,
capacitors/thickness=1.0,
bipoles/capacitor/width/.initial=.13,
%
% GROUND
grounds/scale=1.0,
grounds/thickness=1.0,
%
% SOURCES (the round ones)
sources/scale=0.7,
sources/thickness=1.0,
%
% OTHER OPTIONS
bipoles/thickness=1,
nodes width/.initial=.03,
%
},% end .style
}% end \tikzset
\endinput

这是一个示例电路:

\documentclass[border = 1cm, tikz]{standalone}
\usepackage{circuitikz}
\ctikzsetstyle{mystyle}
\begin{document}
%
\begin{tikzpicture}
    \draw (0,0) to[short, o-]  ++(1,  0)
                to[R]          ++(0, -2)
                to[short]      ++(1,  0) coordinate(e)
                to[short, *-o] ++(0, -1);

    \draw(4,0) to[short, o-] ++(-1,  0)
               to[isource]   ++( 0, -2)
               to[short] (e);
\end{tikzpicture}
%
\end{document}

两个文件(示例和样式文件)都位于同一个文件夹中。

原则上,样式文件可以正常工作,但line width不会按预期发生变化。它仍具有 的默认值,0.4pt而不是1pt

答案1

最小变化(从按比例更改所有线宽)将你的“PROBLEM HERE”行更改为:

every picture/.append style={line width=1pt},

在此处输入图片描述

但请注意,这将适用于tikzpicture文档中的所有内容。在对上述链接问题的回答中,有一个更细致入微的版本。

如果您不想将新的线宽应用于所有tikzpicture线宽(请记住这circuitikz只是一个别名),您可以使用原始样式文件,但将其明确应用于电路 --- 您也可以给它一个简称:

\documentclass[border = 1cm, tikz]{standalone}
\usepackage{circuitikz}
\ctikzloadstyle{mystyle} % maybe just load it, without setting as default
% shortcut
\tikzset{mystyle/.style={mystyle circuit style}}
\begin{document}
%
\begin{tikzpicture}[mystyle]
    \draw (0,0) to[short, o-]  ++(1,  0)
                to[R]          ++(0, -2)
                to[short]      ++(1,  0) coordinate(e)
                to[short, *-o] ++(0, -1);

    \draw(4,0) to[short, o-] ++(-1,  0)
               to[isource]   ++( 0, -2)
               to[short] (e);
\end{tikzpicture}
%
\end{document}

...结果是一样的。

相关内容