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, 21:21

wiewowas's gravatar image

wiewowas
437203040
Akzeptiert-Rate: 40%

bearbeitet 26 Mai '14, 10:42

Bes's gravatar image

Bes
2913937


\\ 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, 21:35

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 26 Mai '14, 13:18

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

(23 Mai '14, 10:44) cgnieder
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:

×50
×46
×45
×7
×4

gestellte Frage: 22 Mai '14, 21:21

Frage wurde gesehen: 18,805 Mal

zuletzt geändert: 26 Mai '14, 13:18