Hi,
This works here:
\usemodule[circuitikz]
\starttext
\startcircuitikz
\draw (0,2) to[I] (2,2);
\stopcircuitikz
\startcircuitikz
\draw (0,2) to[I] (2,2);
\stopcircuitikz
\stoptext
with the attached. Make sure to put it in the regular context base path
and run mtxrun --generate.
Aditya: can you check if we load enough? We really need to get rid of
all these (kind of strange) t-* modules that somehow ended up in tikz
and it's way easier and robust to occasionally add something needed to
m-tikz than to try to catch hard-to-locate-and-fix stuff in the tikz
distribution. If needed we can apply runtime patches too.
(nyw, it looks like tikz creates empty pfg files during a run but that's
probbably has a reason)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------%D \module
%D [ file=m-tikz,
%D version=2021.07.12,
%D title=\CONTEXT\ Extra Modules,
%D subtitle=TIKZ support,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
%D A fixed variant of the t-tikz module distributed with tikz. For practical
reasons
%D per 2021 we split the module for \MKIV\ and \LMTX. (Maybe some day I'll
optimize
%D TIKZ a bit.)
%D
%D All these t-* modules in the tikz distribution make no sense as we can just
load
%D them here which is way cleaner. There is also some mkii filename mapping
going on
%D that is not needed on todays systems (windows has no 8.3 limitation and on
unix
%D tds finally adopted a case insensitive approach.)
%D Just in case someone does a hard input ...
\ifdefined\pgfdefined \endinput \fi
\ifdefined\pgfcoredefined\endinput \fi
%D ... but normally we end up here:
\startmodule[tikz]
\ifdefined\pdflastxpos \else
\unprotect
\frozen\overloaded\protected\def\pdflastxpos{\numexpr\clf_lastxpos\relax}
\frozen\overloaded\protected\def\pdflastypos{\numexpr\clf_lastypos\relax}
\protect
\fi
\permanent\protected\def\starttikzinput
{\pushoverloadmode
\pushcatcodetable
\setcatcodetable\texcatcodes
\catcode`\@=11
\catcode`\|=12
\catcode`\!=12
\autoparagraphmode\zerocount}
\permanent\protected\def\stoptikzinput
{\autoparagraphmode\plusone
\popcatcodetable
\popoverloadmode}
\permanent\protected\def\tikzinputfile#1%
{\starttikzinput
\input{#1}\relax
\stoptikzinput}
\permanent\protected\def\tikzerrormessage#1#2#3%
{\writestatus{#1}{#2}}
% For now we need this but we need to educate the user to wrap settings in the
% wrappers. So some day the next line will go. I need to check what commands are
% possible outside a picture.
\overloadmode\zerocount
\permanent\protected\def\starttikzsettings
{\pushoverloadmode
\autoparagraphmode\zerocount}
\permanent\protected\def\stoptikzsettings
{\autoparagraphmode\plusone
\popoverloadmode}
\permanent\protected\def\starttikzpicture
{\dontleavehmode
\hcontainer\bgroup
\autoparagraphmode\zerocount
% \pushoverloadmode
\ifdefined\PackageError\else \let\PackageError\tikzerrormessage \fi
\tikzpicture}
\permanent\protected\def\stoptikzpicture
{\endtikzpicture
% \popoverloadmode
\egroup}
\let\pgfdefined \relax
\let\pgfcoredefined\relax
\tikzinputfile{pgfutil-common.tex}
\tikzinputfile{pgfutil-context.def}
\tikzinputfile{pgfrcs.code.tex}
\tikzinputfile{pgfsys.code.tex}
\tikzinputfile{pgfkeys.code.tex}
\tikzinputfile{pgfsyssoftpath.code.tex}
\tikzinputfile{pgfsysprotocol.code.tex}
\tikzinputfile{pgfcore.code.tex}
\tikzinputfile{pgffor.code.tex}
\tikzinputfile{pgfmoduleplot.code.tex}
\tikzinputfile{tikz.code.tex}
\let\startpgfpicture \pgfpicture \let\stoppgfpicture
\endpgfpicture
\let\startpgfscope \pgfscope \let\stoppgfscope
\endpgfscope
\let\startpgflowlevelscope \pgflowlevelscope
\let\stoppgflowlevelscope \endpgflowlevelscope
\let\startpgfinterruptpath \pgfinterruptpath
\let\stoppgfinterruptpath \endpgfinterruptpath
\let\startpgfinterruptpicture \pgfinterruptpicture
\let\stoppgfinterruptpicture \endpgfinterruptpicture
\let\startpgfinterruptboundingbox\pgfinterruptboundinbox
\let\stoppgfinterruptboudingbox\endpgfinterruptboundingbox
\let\normalusepgfmodule\usepgfmodule
\let\normalusepgflibrary\usepgflibrary
\tolerant\protected\def\usepgfmodule[#1]#;#2% somehow both variants are used
{\starttikzinput
\normalusepgfmodule[#1#2]%
\stoptikzinput}
\tolerant\protected\def\usepgflibrary[#1]#;#2% somehow both variants are used
{\starttikzinput
\normalusepgflibrary[#1#2]%
\stoptikzinput}
\usepgfmodule[shapes]
\usepgfmodule[plot]
\usepgfmodule[matrix]
\usepgfmodule[decorations]
\stopmodule
%D \module
%D [ file=m-circuitikz,
%D version=2021.12.03,
%D title=\CONTEXT\ Extra Modules,
%D subtitle=CURCUITIKZ support,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
%D A fixed variant of the t-curcuitikz module distributed with tikz. This one
%D is for \LMTX.
\usemodule[m][tikz]
\startmodule[circuitikz]
\def\pgfcircversion {1.4.4}
\def\pgfcircversiondate {2021/10/31}
\usetikzlibrary[calc]
\usetikzlibrary[arrows.meta]
\usetikzlibrary[bending]
\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
\tikzinputfile{pgfcirc.defines.tex}
\tikzinputfile{pgfcircutils.tex}
\tikzinputfile{pgfcircpath.tex}
\tikzinputfile{pgfcircshapes.tex}
\tikzinputfile{pgfcircmonopoles.tex}
\tikzinputfile{pgfcircbipoles.tex}
\tikzinputfile{pgfcirctripoles.tex}
\tikzinputfile{pgfcircquadpoles.tex}
\tikzinputfile{pgfcircmultipoles.tex}
\tikzinputfile{pgfcirclabel.tex}
\tikzinputfile{pgfcircvoltage.tex}
\tikzinputfile{pgfcirccurrent.tex}
\tikzinputfile{pgfcircflow.tex}
% defaults
\setupmodule
[current=european,
voltage=european,
resistor=american,
inductor=cute,
logic=american,
siunitx=true,
arrowmos=false]
% can be done nicer ... todo
\processaction
[\currentmoduleparameter{voltage}]
[european=>\ctikzset{voltage=european},
american=>\ctikzset{voltage=american}]
\processaction
[\currentmoduleparameter{current}]
[european=>\ctikzset{ current=european},
american=>\ctikzset{ current=american}]
\processaction
[\currentmoduleparameter{label}]
[straight=>\ctikzset{label/align = straight},
align=>\ctikzset{label/align = rotate},
smart=>\ctikzset{label/align = smart}]
\processaction
[\currentmoduleparameter{resistor}]
[european=>\ctikzset{ resistor=european},
american=>\ctikzset{ resistor=american}]
\processaction
[\currentmoduleparameter{inductor}]
[european=>\ctikzset{ inductor=european},
american=>\ctikzset{ inductor=american},
cute=>\ctikzset{ inductor=cute}]
\processaction
[\currentmoduleparameter{diode}]
[full=>\ctikzset{ diode=full},
empty=>\ctikzset{ diode=empty}]
\processaction
[\currentmoduleparameter{logic}]
[european=>\ctikzset{ logic ports=european},
american=>\ctikzset{ logic ports=american}]
% hm, we have units built in and in mkii one can load the units module
% ... always been so ...
\processaction
[\currentmoduleparameter{siunitx}]
[true=>\def\SI #1#2{#1\,#2}
\def\ampere {\rm{A}}
\def\volt {\rm{V}}
\def\ohm {\Omega}
\def\siemens {\rm{S}}
\def\farad {\rm{F}}
\def\henry {\rm{H}}
\def\second {\rm{s}}
\def\coulomb {\rm{C}}
\def\siemens {\rm{S}}
\def\radians {\rm{rad}}
\def\milli {\rm{m}}
\def\micro {\mu}
\def\nano {\rm{n}}
\def\pico {\rm{p}}
\def\kilo {\rm{k}}
\def\mega {\rm{M}}
\def\giga {\rm{G}}
\def\tera {\rm{T}}]
\unprotect
\processaction
[\currentmoduleparameter{arrowmos}]
[true=>\pgf@circuit@mos@arrowstrue,
false=>\pgf@circuit@mos@arrowsfalse]
\protect
\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}
\aliased\let\stopcircuitikz\relax
\permanent\protected\def\startcircuitikz#1\stopcircuitikz
{\starttikzpicture#1\stoptikzpicture}
\stopmodule
\endinput
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________