Einfache Blockschaltbilder in LaTeX/TikZ
Einfach die Datei src/blockschaltbilder.tex
in das Dokument hinzufügen, z.B.:
\input{<Pfad zum Verzeichnis mit der Datei>/blockschaltbilder}
Anwendungsbeispiele für die Makros sind in der Datei examples/_examples.tex
zu finden.
\Verzweigung[<1>]{<2>}{<3>}{<4>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
\Summationsstelle[<1>]{<2>}{<3>}{<4>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
\UeFunk[<1>]{<2>}{<3>}{<4>}{<5>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Inhalt des Knotens
\MGlied[<1>]{<2>}{<3>}{<4>}{<5>}
, \MGliedVar[<1>]{<2>}{<3>}{<4>}{<5>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Verstärkung
K
\PGlied[<1>]{<2>}{<3>}{<4>}{<5>}
, \IGlied[<1>]{<2>}{<3>}{<4>}{<5>}
, \DGlied[<1>]{<2>}{<3>}{<4>}{<5>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Verstärkung
K
\TZGlied[<1>]{<2>}{<3>}{<4>}{<5>}{<6>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Verstärkung
K
- Totzeit
T_t
\PTEinsGlied[<1>]{<2>}{<3>}{<4>}{<5>}{<6>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Verstärkung
K
- Zeitkonstante
T
\PTZweiGlied[<1>]{<2>}{<3>}{<4>}{<5>}{<6>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Verstärkung
K
- Zeitkonstante
T
und Dämpfungd
\NeueEA{<1>}{<2>}{<3>}{<4>}{<5>}
- Name des Blocks, zu dem neue Ports hinzugefügt werden sollen
- Anzahl von neuen Ports oben, > 0. Diese Ports heißen
<1>--north N
, wobeiN = 1, 2, ...
- Anzahl von neuen Ports rechts, > 0. Diese Ports heißen
<1>--east N
, wobeiN = 1, 2, ...
- Anzahl von neuen Ports unten, > 0. Diese Ports heißen
<1>--south N
, wobeiN = 1, 2, ...
- Anzahl von neuen Ports links, > 0. Diese Ports heißen
<1>--west N
, wobeiN = 1, 2, ...
\KLGlied[<1>]{<2>}{<3>}{<4>}{<5>}{<6>}{<7>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Beliebige Zeichenbefehle, das verfügbare Feld ist skaliert auf +/- 1 (siehe Beispiel)
- Beschriftung oben links
- Beschriftung oben rechts
\Saettigung[<1>]{<2>}{<3>}{<4>}{<5>}{<6>}
- Optionale TikZ-Eigenschaften (z.B. Farbe)
- Name des TikZ-Knotens (
node
) - Position
- Größe
- Beschriftung oben links
- Beschriftung oben rechts
Für weitere Informationen siehe _examples.tex
.
Falls man TikzEdt oder andere WYSIWYG-Tools benutzt, kann es sinnvoll sein, die Definition der Koordinaten und die Definition der Blöcke zu trennen, z.B.:
\coordinate (i glied 1) at (0, 0);
\coordinate (i glied 2) at (3, 0);
\IGlied{i glied 1}{i glied 1}{1 cm}{}
\IGlied{i glied 2}{i glied 2}{1 cm}{}
\draw[thick, -latex'] (i glied 1) -- (i glied 2);
Obwohl diese Syntax umständlicher aussieht, hat sie den Vorteil, dass die Koordinaten als solche vom TikzEdt-Parser erkannt werden. Die werden also im Overlay markiert und man kann in der Vorschau Blöcke interaktiv positionieren.
Um den Tippaufwand bei der Erstellung von Blockschaltbildern zu minimieren,
kann man den mitgelieferten Boilerplate-Code-Generator verwenden.
Dafür legt man eine Textdatei mit Erweiterung .bsb
an und spezifiziert
das Blockschaltbild wie folgt:
Skizze:
C1 S1 S2 I1 I2 C2
P1
P2
Verbindungen:
C1 - S1
S1 - S2
S2 - I1
I1 - I2
I1 - P1
I2 - C2
I2 - P2
P1 - S2
P2 - S1
Namen:
C1: eingang
C2: ausgang
S1: sum 1
S2: sum 2
I1: int 1
I2: int 2
P1: p 1
P2: p 2
Anschließend kann man mit dem Befehl python generate_boilerplate.py .
diese bsb
-Datei in eine
LaTeX/TikZ-Datei konvertieren. Dabei wird nach jedem Block mit mehreren Ausgängen automatisch
eine Verzweigung platziert. Weitere Informationen finden Sie im Quellcode.
Das Programm setzt Python 3.5 voraus!
Element | Größe | TikZ-Eigenschaften |
---|---|---|
Verzweigung (skalar) | 2 pt |
|
Verzweigung (vektoriell) | 4 pt |
|
Summationsstelle | 0.4 cm |
|
Vordefinierter Block | 1 cm |
|
Allgemeine Übertragungsfunktion | 1 cm |
optional: inner sep = 8 pt |
Skalarer Signalfluss | thick, -latex oder thick, -latex' |
|
Vektorieller Signalfluss | ultra thick, -latex oder ultra thick, -latex' |