
Tenho um erro de compilação ao tentar usar coordenadas perpendiculares no circuitikz com ConTeXt :
\usemodule[tikz]
\usemodule[circuitikz]
\ctikzset{current=european, voltage=european, resistor=european, inductor=european}
\starttext
\startcircuitikz
\draw (0, 0)
node [en amp, noinv input up] (ALI) {}
(ALI.+) -- ++(-1, 0) coordinate (A)
(ALI.-) -- ++(0, -1.5) coordinate (B)
to [R, l=$R_1$] (ALI.out |- B);
\stopcircuitikz
\stoptext
Estou tendo o erro a seguir :
Package PGF Math Error: Unknown function `out' (in 'out |- B')
Também tentei usar (ALI.out) coordinate (S)
e depois (S |- B)
evitar o operador ponto no nome da coordenada, mas o erro permanece. Olhando as outras postagens, não vejo nenhum erro usual no meu código. Há algum problema com ConTeXt e circuitikz?
Agradeço antecipadamente,
Responder1
Parece ter havido mudanças na configuração do TikImagem Z em context
; de alguma forma, o simples "aliasing" \startcircuitikz
não está mais funcionando. A boa notícia é que o circuitikz
ambiente não faz nada (e estou pensando em removê-lo do manual). No seu caso,
\usemodule[tikz]
\usemodule[circuitikz]
\ctikzset{current=european, voltage=european, resistor=european, inductor=european}
\starttext
\starttikzpicture
\draw (0, 0)
node [en amp, noinv input up] (ALI) {}
(ALI.+) -- ++(-1, 0) coordinate (A)
(ALI.-) -- ++(0, -1.5) coordinate (B)
to [R, l=$R_1$] (ALI.out |- B);
\stoptikzpicture
\stoptext
Parece funcionar bem. De qualquer forma, tentarei verificar o que está acontecendo.
Responder2
ConTeXt é configurado |
como um personagem ativo (catcode 13) enquanto TikZ espera um “outro” |
(catcode 12). Isso significa que você realmente digitou , mas Ti|13=12
kZ está apenas procurando .|12=12
\startcircuitikz
é definido como uma macro delimitada
% Lines 131--134 of m-circuitikz.mkxl
\aliased\let\stopcircuitikz\relax
\permanent\protected\def\startcircuitikz#1\stopcircuitikz
{\starttikzpicture#1\stoptikzpicture}
então os catcodes ficam "congelados" quando o argumento é digitalizado. \starttikzpicture
não aceita argumentos, entãoécapaz de digitalizar o |
com o catcode apropriado.
Para corrigir isso, podemos alias \startcircuitikz
diretamente para \starttikzpicture
:
\usemodule[circuitikz]
\let\startcircuitikz\starttikzpicture
\let\stopcircuitikz\stoptikzpicture
\startTEXpage[offset=1em]
\startcircuitikz
\draw (0, 0) to (0, 0 -| 1, 1);
\stopcircuitikz
\stopTEXpage
ou podemos corrigir manualmente |
o catcode de:
\usemodule[circuitikz]
\catcode`\|=12
\startTEXpage[offset=1em]
\startcircuitikz
\draw (0, 0) to (0, 0 -| 1, 1);
\stopcircuitikz
\stopTEXpage
Ambas as opções fornecem a mesma saída: