Wie kann ich einen Zeilenumbruch in der Bildunterschrift der Subfloats erzeugen?

\\ und \par funktionieren nicht...


Open in writeLaTeX
\documentclass{article}
\usepackage{subfig}

\begin{document}
\begin{figure}
  \begin{minipage}{0.45\linewidth}
    \centering
    \subfloat[BILDUNTERSCHRIFT BILDUNTERSCHRIFT BILDUNTERSCHRIFT BILDUNTERSCHRIF ]{\rule{3cm}{2cm}\label{fig:sub1}}\qquad    
    \subfloat[BILDUNTERSCHRIFT BILDUNTERSCHRIFT BILDUNTERSCHRIFT BILDUNTERSCHRIFT]{\rule{3cm}{2cm}\label{fig:sub2}}
    \caption{}
  \end{minipage}
\end{figure}
\end{document}

gefragt 22 Mai '14, 15:21

wiewowas's gravatar image

wiewowas
28921831
Akzeptiert: 80%

bearbeitet 26 Mai '14, 04:42

Bes's gravatar image

Bes
1411516

Der Autor von caption, dem Paket, das auch bei subfig für die Unterschriften zuständig ist, empfiehlt übrigens deutlich sein Paket subcaption, weil er keine Lust mehr hat, um Probleme von subfig herum zu programmieren …

(23 Mai '14, 01:48) Bes

Wegen diverser Probleme mit dem Paket subfig hat der Autor von caption das Paket subcaption geschrieben, das letztlich das gleiche Ziel wie subfig verfolgt, aber Hand in Hand mit dem von subfig ebenfalls verwendeten Paket caption entwickelt und zusammen mit diesem verteilt wird. Damit gibt es auch kein Problem bei der Verwendung von \\ im Argument von \subcaption. Lediglich für \par ist ggf. die von LaTeX als Notlösung vorgesehene Anweisung \endgraf zu verwenden.

Open in writeLaTeX
\documentclass{article}
\usepackage{subcaption}

\begin{document}
\listoffigures
\begin{figure}
  \begin{minipage}{0.45\linewidth}
    \centering
    \rule{3cm}{2cm}
    \subcaption{BILDUNTERSCHRIFT\\
              BILDUNTERSCHRIFT\\
              BILDUNTERSCHRIFT\\
              BILDUNTERSCHRIFT}
    \label{fig:sub1}%
  \end{minipage}
  \begin{minipage}{0.45\linewidth}
    \rule{3cm}{2cm}
    \subcaption{BILDUNTERSCHRIFT\endgraf
              BILDUNTERSCHRIFT\endgraf
              BILDUNTERSCHRIFT\endgraf
              BILDUNTERSCHRIFT}
    \label{fig:sub2}
  \end{minipage}
  \caption{Unterschrift}
\end{figure}
\end{document}

In der Voreinstellung weicht das Ergebnis etwas von dem von subfig ab:

Ergebnis mit subcaption

Man kann die Bildunterschriften jedoch mit allen für caption zur Verfügung stehenden Mitteln einfach konfigurieren. Siehe dazu die Anleitung beider Pakete.

Permanenter link

beantwortet 23 Mai '14, 02:01

Bes's gravatar image

Bes
1411516

\\ ist ein zerbrechliches Makro, was in beweglichen Argumenten wie einer Bildunterschrift immer wieder zu Problemem führen kann, siehe Was sind zerbrechliche Befehle und bewegliche Argumente?. LaTeX hat für diesen Zweck \protect im Gepäck, das man dem zerbrechlichen Befehl voranstellt:

Open in writeLaTeX
    \subfloat[BILDUNTERSCHRIFT\protect\\
              BILDUNTERSCHRIFT\protect\\
              BILDUNTERSCHRIFT\protect\\
              BILDUNTERSCHRIFT]{\rule{3cm}{2cm}\label{fig:sub1}}%

\par lässt sich nicht einsetzen, weil das optionale Argument des \subfloat-Befehls kurz ist (siehe Was ist der Unterschied zwischen \newcommand und \newcommand*? für den Hintergrund dazu). Mann könnte es aber versteckt in einem Makro hineinschmuggeln. Ansonsten funktioniert auch \newline:

Open in writeLaTeX
\documentclass{article}
\usepackage{subfig}

\newcommand*\fakepar{\par}

\begin{document}
\begin{figure}
  \begin{minipage}{0.45\linewidth}
    \centering
    \subfloat[BILDUNTERSCHRIFT\newline
              BILDUNTERSCHRIFT\newline
              BILDUNTERSCHRIFT\newline
              BILDUNTERSCHRIFT]{\rule{3cm}{2cm}\label{fig:sub1}}%
  \end{minipage}
  \begin{minipage}{0.45\linewidth}
    \subfloat[BILDUNTERSCHRIFT\fakepar
              BILDUNTERSCHRIFT\fakepar
              BILDUNTERSCHRIFT\fakepar
              BILDUNTERSCHRIFT]{\rule{3cm}{2cm}\label{fig:sub2}}
  \end{minipage}
  \caption{Unterschrift}
\end{figure}
\end{document}

alt text

Will man \listoffigures einsetzen, dann müsste obiges \fakepar (wenn man es denn wirklich verwenden will) robust definiert werden:

Open in writeLaTeX
\DeclareRobustCommand*\fakepar{\par}

Da Bildunterschriften im Text (im Abbildungsverzeichnis wohl eher nicht) durchaus länger sein und aus mehreren Absätzen bestehen können, halte ich es mindestens für eine ungünstige Designentscheidung (ob absichtlich oder unabsichtlich), dass \subfloat kein \par akzeptiert.

Permanenter link

beantwortet 22 Mai '14, 15:35

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 26 Mai '14, 07:18

@Bes Das mir \endgraf nicht eingefallen ist, wundert mich nicht, aber auf \protect hätte ich kommen müssen ... :/

(23 Mai '14, 04:44) Clemens
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×44
×32
×31
×4
×3

Frage gestellt: 22 Mai '14, 15:21

Frage wurde angeschaut: 5,980 Mal

Zuletzt aktualisiert: 26 Mai '14, 07:18