von sLy » Mo 12. Okt 2009, 20:04
Hier die Lösung von H.Voss persönlich:
"Das ist nicht so einfach, weil \multidipole erst alle Bauteile sammeln muss. Mit \multido werden sie aber vorher schon "zerlegt". Mit \toks@ kann man jetzt erstmal alle Bauteile sammeln und am Ende komplett ausgeben, so als hätte man sie getippt."
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pst-circ}
\makeatletter
\newcommand*\InitToks{\toks@={}}
\newcommand\AddToks[1]{\toks@=\expandafter{\the\toks@ #1}}
\newcommand*\PrintToks{\the\toks@}
\def\WiderstandReihe#1{%
\begingroup
\InitToks
\AddToks{\multidipole(B)(C)}%
\count@=0 %
\loop\ifnum\count@<#1\relax
\advance\count@ by 1 %
\AddToks{\resistor[labeloffset=0]{$R_{\the\count@}$}}%
\repeat
\AddToks{.}%
\PrintToks
\endgroup}
\makeatother
\begin{document}
\begin{pspicture}[showgrid=true](0,0)(8,5)
\pnode(0.5,4.5){A}
\pnode(0.5,1.75){B}
\pnode(7.5,1.75){C}
\pnode(7.5,4.5){D}
\battery (D)(A){$U_0$}
\wire (A)(B)
\wire (C)(D)
\WiderstandReihe{3}
\end{pspicture}
\end{document}
Da mir H.Voss seinen quellcode (trotz bitten) nicht erklärt, wäre ich für eine möglichst genaue Erklärung sehr dankbar.
Außerdem funktioniert die Benennung der Wiederstände nicht (sie heißen alle R_3 statt der reinfolge nach nummeriert)
grüße,
sLy
Hier die Lösung von H.Voss persönlich:
"Das ist nicht so einfach, weil \multidipole erst alle Bauteile sammeln muss. Mit \multido werden sie aber vorher schon "zerlegt". Mit \toks@ kann man jetzt erstmal alle Bauteile sammeln und am Ende komplett ausgeben, so als hätte man sie getippt."
[code]
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pst-circ}
\makeatletter
\newcommand*\InitToks{\toks@={}}
\newcommand\AddToks[1]{\toks@=\expandafter{\the\toks@ #1}}
\newcommand*\PrintToks{\the\toks@}
\def\WiderstandReihe#1{%
\begingroup
\InitToks
\AddToks{\multidipole(B)(C)}%
\count@=0 %
\loop\ifnum\count@<#1\relax
\advance\count@ by 1 %
\AddToks{\resistor[labeloffset=0]{$R_{\the\count@}$}}%
\repeat
\AddToks{.}%
\PrintToks
\endgroup}
\makeatother
\begin{document}
\begin{pspicture}[showgrid=true](0,0)(8,5)
\pnode(0.5,4.5){A}
\pnode(0.5,1.75){B}
\pnode(7.5,1.75){C}
\pnode(7.5,4.5){D}
\battery (D)(A){$U_0$}
\wire (A)(B)
\wire (C)(D)
\WiderstandReihe{3}
\end{pspicture}
\end{document}[/code]
Da mir H.Voss seinen quellcode (trotz bitten) nicht erklärt, wäre ich für eine möglichst genaue Erklärung sehr dankbar.
Außerdem funktioniert die Benennung der Wiederstände nicht (sie heißen alle R_3 statt der reinfolge nach nummeriert)
grüße,
sLy