0
1

Ich habe 3 Abbildungen mit tikzpicture erstellt, 3 kleine elektrische Ersatzschaltbilder, welche ich gerne nebeneinander hätte.

Das ist mein Code:

Open in Online-Editor
\documentclass[12pt, bibliography=totocnumbered]{scrartcl}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}

\begin{document}
\begin{figure}%[H]
\centering
\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
\end{tikzpicture}
\end{subfigure}

\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
\end{tikzpicture}
\end{subfigure}

\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
    (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
    (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
    (6,1) node[contact] {}
    (6,1) -- (7,1);
\end{tikzpicture}
\end{subfigure}
\caption{equivalent circuit diagrams of used dummies}

\label{esbdummies}
\end{figure}
\end{document}

Eigentlich unwichtig, was ich da gemacht hab, geht nur ums Prinzip. Ist es prinzipiell möglich ohne \includegraphic subfigures zu machen, z. B. wenn man ein selbst gemachtes Diagramm mit \pgfplots als figure nimmt?

Ich müsste evtl die Größe der Figures anpassen, geht das, wenn ja: wie?

gefragt 08 Jun '16, 01:12

Jackhaeften's gravatar image

Jackhaeften
56238
Akzeptiert-Rate: 100%

bearbeitet 08 Jun '16, 08:33

saputello's gravatar image

saputello
11.1k174365

3

Dem Proramm ist es prinzipiell egal was in den Boxen ist, Boxen sind Boxen. Kleiner Tip: Eine Leerzeile im Code erstellt einen neuen Absatz, und neue Absätze beginnen immer in einer neuen Zeile.

(08 Jun '16, 07:20) Johannes

Bitte achte darauf, dass ein Beispiel auch fehlerfrei lauffähig ist (soweit der Fehler nicht Teil der Frage ist). Bei Deinem Beispiel fehlte nicht nur \end{document}. LaTeX kennt auch keine Gleitoption H und meldet deshalb einen Fehler. Wenn ein Helfer erst einmal zwei Fehler beseitigen muss, ist das nicht sehr motivierend.

(08 Jun '16, 07:44) saputello
1

Wenn wie in Deinem Beispiel die Teilabbildungen gar keine eigenen Beschriftungen bekommen, kannst Du sie doch eigentlich auch ganz ohne subfigure nebeneinander setzen?

(08 Jun '16, 09:31) esdd

Die sollen noch kommen! :)

(08 Jun '16, 09:42) Jackhaeften

Wenn man die Fehler im Beispiel entfernt und – wie von @Johannes angeregt – zwischen den Teilabbildungen keinen Absatz macht, dann stehen die Bilder bereits nebeneinander:

Open in Online-Editor
\documentclass[12pt, bibliography=totocnumbered]{scrartcl}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{showframe}% Zu Demonstrationszwecken
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
\end{tikzpicture}
\end{subfigure}
\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
\end{tikzpicture}
\end{subfigure}
\begin{subfigure}{0.3\textwidth}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
    (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
    (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
    (6,1) node[contact] {}
    (6,1) -- (7,1);
\end{tikzpicture}
\end{subfigure}
\caption{equivalent circuit diagrams of used dummies}

\label{esbdummies}
\end{figure}
\end{document}

mit subfigure

Wie man durch die Verwendung von showframe leicht sehen kann, ist allerdings das rechte Teilbild breiter als 0.3\textwidth (dafür sind die anderen schmaler), so dass man die Breiten-Angaben bei subfigure noch korrigieren sollte.

Als Alternative bietet sich an, die \subcaptionbox zu verwenden, das die Breite automatisch bestimmt:

Open in Online-Editor
\documentclass[12pt]{scrartcl}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{showframe}
\begin{document}
\begin{figure}
\centering
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
  \end{tikzpicture}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
  \end{tikzpicture}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
          (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
          (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
          (6,1) node[contact] {}
          (6,1) -- (7,1);
  \end{tikzpicture}
}
\caption{equivalent circuit diagrams of used dummies}

\label{esbdummies}
\end{figure}
\end{document}

klzzwxh:0006ubcaptionbox statt subfigure

Wie man sieht, wird dabei aber nicht mehr automatisch vertikal zentriert, sondern unten an der Grundlinie ausgerichtet. Eine allgemeine Möglichkeit, Material vertikal zu verschieben ist die Verwendung von \raisebox:

Open in Online-Editor
\documentclass[12pt]{scrartcl}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{showframe}
\begin{document}
\begin{figure}
\centering
\subcaptionbox*{}{%
  \raisebox{1cm}{\begin{tikzpicture}[circuit ee IEC]
    \draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
  \end{tikzpicture}}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
  \end{tikzpicture}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
          (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
          (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
          (6,1) node[contact] {}
          (6,1) -- (7,1);
  \end{tikzpicture}
}
\caption{equivalent circuit diagrams of used dummies}

\label{esbdummies}
\end{figure}
\end{document}

mit klzzwxh:0010aisebox

Wie so oft, gibt es bei LaTeX natürlich diverse weitere Möglichkeiten.

Übrigens: Wenn das Ganze nicht gleiten soll, ist das einfachste, keine Gleitumgebung zu verwenden:

Open in Online-Editor
\documentclass[12pt]{scrartcl}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{showframe}
\begin{document}

\noindent\begin{minipage}{\linewidth}
\captionsetup{type=figure}% caption mitteilen, dass es sich um eine figure handelt
\subcaptionbox*{}{%
  \raisebox{1cm}{\begin{tikzpicture}[circuit ee IEC]
    \draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
  \end{tikzpicture}}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
  \end{tikzpicture}
}
\subcaptionbox*{}{%
  \begin{tikzpicture}[circuit ee IEC]
    \draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
          (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
          (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
          (6,1) node[contact] {}
          (6,1) -- (7,1);
  \end{tikzpicture}
}
\caption{equivalent circuit diagrams of used dummies}\label{esbdummies}
\end{minipage}
\end{document}

Fast zum Schluss sei noch einmal darauf hingewiesen, dass es LaTeX reichlich egal ist, was man in eine Gleitumgebung oder eine subfigure oder \subcaptionbox packt. Das sind alles nur große Kisten. Auf denen steht zwar vielleicht »Badezimmer«. Man kann aber trotzdem auch das Inventar des Kinderzimmers hinein packen. Was sinnvoll ist, ist also eine Sache des Anwenders.

Und ganz zum Schluss dann noch die von @esdd angeregte Lösung mit der kleinsten Anzahl an benötigten Paketen:

Open in Online-Editor
\documentclass[12pt]{scrartcl}
\usepackage{siunitx,tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{showframe}
\begin{document}

\noindent\begin{minipage}{\linewidth}
  \hspace*{\fill}%
  \raisebox{1cm}{\begin{tikzpicture}[circuit ee IEC]
    \draw (0,0) to [resistor={info=\SI{100}{\ohm}}] (3,0);
  \end{tikzpicture}}\hfill
  \begin{tikzpicture}[circuit ee IEC]
    \draw   (1,0) to [resistor={info=\SI{100}{\ohm}}] (4,0)
            (1,2) to [capacitor={info=\SI{1}{\milli\farad}}] (4,2)
            (1,1) node[contact] {}
            (4,1) node[contact] {}
            (1,2) -- (1,0)
            (4,2) -- (4,0)
            (1,0) -- (1,1)
            (4,1) -- (5,1)
            (0,1) -- (1,1);
  \end{tikzpicture}\hfill
  \begin{tikzpicture}[circuit ee IEC]
    \draw (0,1) to [resistor={info=\SI{100}{\ohm}}] (3,1) node[contact] {} -- 
          (3,2) to [capacitor={info=\SI{1}{\milli\farad}}] (6,2) -- (6,1)
          (3,1) -- (3,0) to [resistor={info=$R_{anode}$}] (6,0) -- (6,1)
          (6,1) node[contact] {}
          (6,1) -- (7,1);
  \end{tikzpicture}
  \hspace*{\fill}
  \captionof{figure}{equivalent circuit diagrams of used dummies}\label{esbdummies}
\end{minipage}
\end{document}

Natürlich geht das auch mit Gleitumgebung, indem man die äußere minipage- wieder durch eine figure-Umgebung und \captionof{figure} wieder durch \caption ersetzt.

Permanenter link

beantwortet 08 Jun '16, 07:50

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 08 Jun '16, 09:38

Erstmal: 1000 Dank! Ich habs in meiner Thesis eingebaut und erst hat's nicht funktioniert. Fehler: usepackage{vmargin} wurde zusätzlich verwendet. Ich habs auskommentiert, nur generell eine Frage wäre: Kann man die Größe des einzelnen subfigures bzw. der box ändern, falls die durch das Inventar gefüllten "Zimmer" einfach zu groß bzw. zu breit für die Seite sind?

(08 Jun '16, 10:17) Jackhaeften
2

@Jackhaeften: Das ist eine neue Frage zum Thema skalieren, die nicht nur für TikZ-Bilder bereits gestellt und beantwortet wurde. Ich möchte Dir als Einsteiger bei der Gelegenheit aber auch noch einmal nahe legen, Dich mit einer ausführlichen LaTeX-Einführung zu beschäftigen. Das ist gut investierte Zeit, die man ganz schnell mehrfach wieder raus holt!

(08 Jun '16, 10:34) saputello

Okay, vielen Dank und sorry für meine Inkompetenz :/

(08 Jun '16, 10:38) Jackhaeften
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×30
×20
×5

gestellte Frage: 08 Jun '16, 01:12

Frage wurde gesehen: 17,135 Mal

zuletzt geändert: 08 Jun '16, 10:45