sLy
08-10-2009, 09:10
Hallo alle zusammen,
ich bin neu hier und schreibe gerade meine Facharbeit mit LaTex. Hierzu soll ich die darstellung von Schaltbildern mit dem Erweiterungspaket pst-circ
vereinfachen. Bin noch ein absoluter LaTex-Frischling, weshalb ich nun auf die Hilfe dieses Forums setzte.
Ich habe dieses Problem bereits in einem anderen Forum gepostet und dort wurde mir gesagt, dass zwar \multido und auch \forloop in normalem Rahmen funktionieren, doch als Argument von \multidipole geht das nicht so einfach, da es die folgenden Argumente "bearbeitet" und mit den Makros danach nicht klarkommt.
Hier ist mein Problem:
Ich möchte meinen eigenen Befehl schreiben, der so aussehen soll:
\WiderstandParallel {3}
Mit dem Parameter drei soll jetzt der eigentliche Befehl
\resistor[labeloffset=0]{$R_1$}
3mal ausgegeben werden, wobei die Wiederstände nicht alle "R_1" heißen sollen, sondern fortlaufend nummeriert werden.
Um in pst-circ mehrere Widerstände hintereinander zu schalten, muss man den Befehl
\multidipole (B) (C) \resistor [labeloffset=0] {$R_1$}\resistor [labeloffset=0] {$R_2$}\resistor [labeloffset=0] {$R_3$}. %Hier sind also 3 Widerstände hintereinandergeschalten. Die punkte B und C sind Punkt in einem Koordinatensystem, zwischen denen die Widerstände seien sollen. Der Punkt am Ende beendet \multidipole.
verwenden.
Wenn ich also jetzt meinen obigen Befehl"\WiderstandParallel {3}" eintippe, muss seine "Ausgabe"
\multidipole (B) (C) \resistor [labeloffset=0] {$R_1$}\resistor [labeloffset=0] {$R_2$}\resistor [labeloffset=0] {$R_3$}.
sein.
Hier ein kompilierbares Minibeispiel:
%Festlegung der Dokumentklasse:
\documentclass[a4paper,twoside,]{article}
%Auflistung aller verwendeten Packete:
\usepackage{endnotes} %Erlaubt weitere Endnoten-Optionen
\usepackage{ngerman} %Aktiviert u. a. die deutsche Trennung
\usepackage[latin1]{inputenc} %Erlaubt, dass Umlaute normal geschrieben werden können
\usepackage{enumerate} %Erlaubt erweiterte Listen-Optionen
\usepackage{url} %Unterstützt die Darstellung von URLs
\usepackage{geometry} %Definiert die Seitenränder, Texthöher und -breite, sowie Hoch- oder Querformat
\usepackage{graphicx} %Erleichterung der Arbeit mit Bildern
\usepackage{rotating} %Rotieren von Texten
\usepackage{color} %Für Farbe im Text
\usepackage{verbatim} %Erleichtert das unveränderte setzen von Text (z.B. Syntax)
\usepackage{pstricks,pst-circ} %Ermöglicht das erstellen von Schaltbildern
\usepackage{multido}%Ermöglicht Schleifen
\begin{document}
%_________________________________________________ __________________________________________________ __________________________
\def\WiderstandReihe#1{
\multidipole(B)(C)%
\multido{\I=1+1}{#1}{\resistor[labeloffset=0]{$R_\I$}}%
.
}
So ist es:
\newline
\bigskip
\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}
\newline
\bigskip
\bigskip
\bigskip
\bigskip
So sollte es sein:
\newline
\bigskip
\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)
\multidipole(B)(C)%
\resistor[labeloffset=0]{$R_1$} \resistor[labeloffset=0]{$R_2$} \resistor[labeloffset=0]{$R_3$}%
.
\end{pspicture}
\end{document}
Ich hoffe ihr könnt mir helfen. Danke im vorraus. Falls ich mein (doch recht kompliziertes) Problem zu umständlich geschildert haben sollte, fragt bitte nach.
Falls ihr ebenfalls beispielcode verwendet, wäre ich für viele erklährende Kommentare sehr dankbar.
Viele Grüße,
sLy
ich bin neu hier und schreibe gerade meine Facharbeit mit LaTex. Hierzu soll ich die darstellung von Schaltbildern mit dem Erweiterungspaket pst-circ
vereinfachen. Bin noch ein absoluter LaTex-Frischling, weshalb ich nun auf die Hilfe dieses Forums setzte.
Ich habe dieses Problem bereits in einem anderen Forum gepostet und dort wurde mir gesagt, dass zwar \multido und auch \forloop in normalem Rahmen funktionieren, doch als Argument von \multidipole geht das nicht so einfach, da es die folgenden Argumente "bearbeitet" und mit den Makros danach nicht klarkommt.
Hier ist mein Problem:
Ich möchte meinen eigenen Befehl schreiben, der so aussehen soll:
\WiderstandParallel {3}
Mit dem Parameter drei soll jetzt der eigentliche Befehl
\resistor[labeloffset=0]{$R_1$}
3mal ausgegeben werden, wobei die Wiederstände nicht alle "R_1" heißen sollen, sondern fortlaufend nummeriert werden.
Um in pst-circ mehrere Widerstände hintereinander zu schalten, muss man den Befehl
\multidipole (B) (C) \resistor [labeloffset=0] {$R_1$}\resistor [labeloffset=0] {$R_2$}\resistor [labeloffset=0] {$R_3$}. %Hier sind also 3 Widerstände hintereinandergeschalten. Die punkte B und C sind Punkt in einem Koordinatensystem, zwischen denen die Widerstände seien sollen. Der Punkt am Ende beendet \multidipole.
verwenden.
Wenn ich also jetzt meinen obigen Befehl"\WiderstandParallel {3}" eintippe, muss seine "Ausgabe"
\multidipole (B) (C) \resistor [labeloffset=0] {$R_1$}\resistor [labeloffset=0] {$R_2$}\resistor [labeloffset=0] {$R_3$}.
sein.
Hier ein kompilierbares Minibeispiel:
%Festlegung der Dokumentklasse:
\documentclass[a4paper,twoside,]{article}
%Auflistung aller verwendeten Packete:
\usepackage{endnotes} %Erlaubt weitere Endnoten-Optionen
\usepackage{ngerman} %Aktiviert u. a. die deutsche Trennung
\usepackage[latin1]{inputenc} %Erlaubt, dass Umlaute normal geschrieben werden können
\usepackage{enumerate} %Erlaubt erweiterte Listen-Optionen
\usepackage{url} %Unterstützt die Darstellung von URLs
\usepackage{geometry} %Definiert die Seitenränder, Texthöher und -breite, sowie Hoch- oder Querformat
\usepackage{graphicx} %Erleichterung der Arbeit mit Bildern
\usepackage{rotating} %Rotieren von Texten
\usepackage{color} %Für Farbe im Text
\usepackage{verbatim} %Erleichtert das unveränderte setzen von Text (z.B. Syntax)
\usepackage{pstricks,pst-circ} %Ermöglicht das erstellen von Schaltbildern
\usepackage{multido}%Ermöglicht Schleifen
\begin{document}
%_________________________________________________ __________________________________________________ __________________________
\def\WiderstandReihe#1{
\multidipole(B)(C)%
\multido{\I=1+1}{#1}{\resistor[labeloffset=0]{$R_\I$}}%
.
}
So ist es:
\newline
\bigskip
\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}
\newline
\bigskip
\bigskip
\bigskip
\bigskip
So sollte es sein:
\newline
\bigskip
\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)
\multidipole(B)(C)%
\resistor[labeloffset=0]{$R_1$} \resistor[labeloffset=0]{$R_2$} \resistor[labeloffset=0]{$R_3$}%
.
\end{pspicture}
\end{document}
Ich hoffe ihr könnt mir helfen. Danke im vorraus. Falls ich mein (doch recht kompliziertes) Problem zu umständlich geschildert haben sollte, fragt bitte nach.
Falls ihr ebenfalls beispielcode verwendet, wäre ich für viele erklährende Kommentare sehr dankbar.
Viele Grüße,
sLy