Sie sind hier

Zweisprachige Bildunterschriften mit übereinander angeordneter Sprache

Hallo zusammen,

nachdem das mit den zweisprachigen Überschriften gut funktioniert, würde ich gerne noch das Problem der zweisprachigen Bildunterschriften lösen.

Die Bildunterschriften sollen (wie die Kapitelüberschriften) unterhalb des deutschen Textes auch in Englisch (in Kursiv) gesetzt werden. Idealerweise klappt das dann auch noch mit subcations.

Google spuckt dazu unter anderem das Paket bicaption aus, welches für meine Zwecke aber wohl leider nicht geeignet ist. Die englische Bildunterschrift soll nämlich laut Dokumentenvorlage keine neue Bezeichnung erhalten (wie etwa "Figure"), sondern bei gleichem hängendem Einzug unterhalb der deutschen Variante stehen.

Hier ein Minimalbeispiel mit einem Versuch meinerseits, die Lösung der zweisprachigen Kapitelüberschriften auf diese Anwendung anzupassen. Leider klappt das noch nicht so richtig:

\documentclass[
  twoside=true,
  BCOR=12mm,DIV=14,
  parskip=half+,
  captions=nooneline,
  numbers=noenddot,
  headlines=1.75,
  USenglish,ngerman,
]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype} 
\usepackage{babel}
 
\RequirePackage[scaled]{helvet}
\renewcommand{\familydefault}{\sfdefault}
 
\usepackage{hyperref}
 
\usepackage{mwe}
 
\RequirePackage[justification=centering]{subcaption}
 
\newsavebox\captionnumbox
\newcommand\CapOptArg{}
 
\makeatletter
 
\newcommand*{\bicaption}[3][]{ % \bicaption[Kurzform]{deutsch}{englisch}
  \ifstr{#1}{}{\def\CapOptArg{#2}}{\def\CapOptArg{#1}}
  \caption[\CapOptArg]{%  
    \sbox\captionnumbox{xxxxxxxxx}%
    \ignorespaces#2\ifhmode\unskip\strut\fi\endgraf\nobreak% hier steht der deutsche Text
    \normalsize\nobreak
    \hspace*{\wd\captionnumbox}\nobreak%
    \parbox[t]{\dimexpr\linewidth-\wd\captionnumbox\relax}{%
      \mdseries\itshape\foreignlanguage{USenglish}{%
        \ignorespaces\strut#3\ifhmode\unskip\strut\fi}% hier steht der englische Text
    }\endgraf
  }%
}
 
\makeatother
 
 
\begin{document}
 
\listoffigures
 
\chapter{Erste Überschrift}
 
 
\begin{figure}[htbp]
	\centering
	\includegraphics[width=\linewidth]{example-image-a}
	\bicaption[Kurztext]{Bildunterschrift auf deutsch, die über zwei Zeilen geht um den hängenden Einzug zu erkennen \label{fig:eins}}{Caption in English that is longer than one single line to see the hanging indention with more text}
\end{figure}
 
 
\begin{figure}[htb]
	\centering
	\begin{subfigure}[b]{.5\linewidth}
		\centering
		\includegraphics[width=\linewidth]{example-image-a}
		\bicaption{Variante 1}{Version 1}
	\end{subfigure}%	
	\begin{subfigure}[b]{.5\linewidth}
		\centering
		\includegraphics[width=\linewidth]{example-image-b}
		\bicaption{Variante 2}{Version 2}
	\end{subfigure}%	
 
	\bicaption{Bildbeschriftung}{English Caption}
\end{figure}
 
\end{document}
Bild von Markus Kohm

Die deutsche Bildunterschrift? Die englische Bildunterschrift? Beide? Oder für jede ein eigenes Verzeichnis?

Guter Hinweis: es sollte nur der deutsche Text im Verzeichnis stehen.

Bild von Markus Kohm

\documentclass[
  twoside=true,
  BCOR=12mm,DIV=14,
  parskip=half+,
  captions=nooneline,
  numbers=noenddot,
  headlines=1.75,
  USenglish,ngerman,
]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype} 
\usepackage{babel}
 
\RequirePackage[scaled]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{mwe}
 
\usepackage[justification=centering]{subcaption}% \RequirePackage nur in
                                % Paketen oder vor \documentclass
 
\usepackage{hyperref}
 
\newcommand\CapOptArg{}
 
\newcommand*{\bicaption}[3][]{ % \bicaption[Kurzform]{deutsch}{englisch}
  \ifstr{#1}{}{\def\CapOptArg{#2}}{\def\CapOptArg{#1}}%
  \caption[\CapOptArg]{#2\\#3}%
}
 
\begin{document}
 
\listoffigures
 
\chapter{Erste Überschrift}
 
 
\begin{figure}[htbp]
	\centering
	\includegraphics[width=\linewidth]{example-image-a}
	\bicaption[Kurztext]{Bildunterschrift auf deutsch, die über zwei Zeilen geht um den hängenden Einzug zu erkennen \label{fig:eins}}{Caption in English that is longer than one single line to see the hanging indention with more text}
\end{figure}
 
 
\begin{figure}[htb]
	\centering
	\begin{subfigure}[b]{.5\linewidth}
		\centering
		\includegraphics[width=\linewidth]{example-image-a}
		\bicaption{Variante 1}{Version 1}
	\end{subfigure}%	
	\begin{subfigure}[b]{.5\linewidth}
		\centering
		\includegraphics[width=\linewidth]{example-image-b}
		\bicaption{Variante 2}{Version 2}
	\end{subfigure}%	
 
	\bicaption{Bildbeschriftung}{English Caption}
\end{figure}
 
\end{document}

Wobei mir schon klar ist, dass im subcaption-Fall dabei die englische Unterschrift unter der deutschen zentriert wird. Aber das entspricht schlicht der justification-Einstellung.

Alternativ könnte man einen neuen caption-Typ definieren und die englische Unterschrift mit einer zweiten \caption-Anweisung dieses Typs setzen. Das zu zeigen fehlt mir aber gerade die Zeit.

Vielen Dank, Markus!

Jetzt bin ich allerdings etwas von mir enttäuscht. Ich hatte mir das immer viel komplizierter vorgestellt, dass ich mir die Einrückung wieder irgendwie in einer \sbox speichern muss. ;-)

Hab die Formatierung noch leicht für meine Zwecke angepasst:

\newcommand\CapOptArg{}
 
\newcommand*{\bicaption}[3][]{ % \bicaption[Kurzform]{deutsch}{englisch}
  \ifstr{#1}{}{\def\CapOptArg{#2}}{\def\CapOptArg{#1}}%
  \caption[\CapOptArg]{#2\vspace{4pt}\\\textit{#3}}%
}

Einen Zeilenumbruch mit \\ hatte ich mal per Hand in die \caption geschrieben, aber dann standen im Abbildungsverzeichnis noch die englischen Texte (und das auch noch kursiv).

Wie werden eigentlich die Texte fürs Abbildungsverzeichnis generiert? Ich schätze, manche Zeichen werden ignoriert, andere sorgen dafür, dass hinter ihnen keine weiteren Zeichen genommen werden, richtig?

Bild von Markus Kohm

Ist ein optionales Argument bei \caption vorhanden, wird das als Befehlsargument zuerst in die aux-Datei und von dieser dann beispielsweise in die lof-Datei geschrieben. Gibt es kein optionales Argument wird das obligatorische verwendet. Was genau dabei in die aux- und die lof-Datei geschrieben wird, kannst Du Dir leicht in den Dateien selbst ansehen.

Bei der Ausgabe des entsprechenden Verzeichnisses wird dann die entsprechende Hilfsdatei, also beispielsweise die lof-Datei, per \input gelesen und damit deren Befehle expandiert und ausgeführt.

Der Trick bei \bicaption ist, in das optionale Argument von \caption entweder das optionale Argument von \bicaption oder, wenn dieses leer ist, nur das erste obligatorische Argument, also die deutsche Unterschrift zu schreiben. Das geht übrigens auch anders:

\newcommand*{\bicaption}[3][\CapOptArg]{%
  \def\CapOptArg{#2}\caption[#1]{#2\\[4pt]\textit{#3}}%
}

Man muss jetzt nur durchspielen, was #1 ist, abhängig davon, ob jemand das optionale Argument von \bicaption verwendet oder nicht.

Es ist überhaupt für das Verständnis von TeX sehr nützlich, wenn man mal die Expansion von Befehlen stufenweise von Hand durchspielt.

Comments for "Zweisprachige Bildunterschriften mit übereinander angeordneter Sprache" abonnieren