Eine andere (aber auch bessere?) Lösung:
Code:
\documentclass[english,ngerman]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{caption,subcaption}
\makeatletter
\DeclareCaptionFormat{bi}{%
#1#2#3%
\@ifundefined{bicaptionx}{}{%
\selectlanguage{english}%
\textit{#1#2\bicaptionx}}}
\makeatother
\captionsetup{format=bi,labelfont={}}
\newcommand\bicaption[2]{%
\long\def\bicaptionx{#2}%
\caption{#1}}
\newcommand\bisubcaptionbox[2]{%
\long\def\bicaptionx{#2}%
\subcaptionbox{#1}}
\begin{document}
\begin{figure}
\centering
\bisubcaptionbox{Teilabbildung A\label{fig:test:A}}{Subfigure A}[0.5\textwidth]{BILD}%
\bisubcaptionbox{Teilabbildung B\label{fig:test:B}}{Subfigure B}[0.5\textwidth]{BILD}%
\bicaption{Deutscher Titel}{English Title}
\label{fig:test}
\end{figure}
\end{document}
Anmerkungen:
- Die Definition eines eigenen Caption-Formates erscheint mir elegant, hat aber den Nachteil, daß man nicht mehr "format=hang" einstellen kann. Möchte man "hängende" captions, so müsste man dies selber in obriges Format namens "bi" einbauen.
- Das "labelfont={}" ist für KOMA-Script notwendig, weil KOMA-Script ansonsten den Zeichensatz des Labels explizit auf \normalfont zurücksetzt. (Siehe auch Doku zum caption-Paket, Abschnitt über KOMA-Script)
- Obrige Lösung funktioniert vermutlich nicht in Verbindung mit dem sidecap- und/oder dem fltpage-Paket. Wenn Bedarf dafür da ist, bitte bescheid geben, dann denke ich mir was aus.
- Bei obriger Lösung fällt zwar das optionale Argument von \caption bzw. \subcaptionbox für den Verzeichniseintrag unter den Tisch, dies ließe sich aber problemlos nachrüsten. Ich habe es erstmal bewußt nicht eingebaut, um den Quelltext verständlich zu halten. Wer es dennoch gerne haben möchte:
Code:
\documentclass[english,ngerman]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[list=on]{caption,subcaption}
\makeatletter
\DeclareCaptionFormat{bi}{%
#1#2#3%
\@ifundefined{bicaptionx}{}{%
\selectlanguage{english}%
\textit{#1#2\bicaptionx}}}
\newcommand\bicaption{%
\caption@withoptargs\@bicaption}
\newcommand\@bicaption[3]{%
\long\def\bicaptionx{#3}%
\caption#1{#2}}
\newcommand\bisubcaptionbox{%
\caption@withoptargs\@bisubcaptionbox}
\newcommand\@bisubcaptionbox[3]{%
\long\def\bicaptionx{#3}%
\subcaptionbox#1{#2}}
\makeatother
\captionsetup{format=bi,labelfont={}}
\begin{document}
\listoffigures
\begin{figure}
\centering
\bisubcaptionbox[A]{Teilabbildung A\label{fig:test:A}}{Subfigure A}[0.5\textwidth]{BILD}%
\bisubcaptionbox[B]{Teilabbildung B\label{fig:test:B}}{Subfigure B}[0.5\textwidth]{BILD}%
\bicaption[Abbildungstitel]{Deutscher Titel}{English Title}
\label{fig:test}
\end{figure}
\end{document}
(Äquivalent zu \bicaption und \bicaptionbox ließe sich auch ein \bisubcaption definieren.)
\caption@withoptargs ist hierbei ein Hilfsmakro des caption-Paketes, welches alle optionalen Argumente aufsammelt und an das nächste Makro diese in Form von #1 übergibt. Für nur ein optionales Argument hätte man das zwar auch "zu Fuß" machen können, durch die Verwendung von \caption@withoptargs funktioniert jedoch auch \bicaption*{Test dt}{Test en}, da \caption@withoptargs auch den * aufsammelt. (Mehr zu \caption@withoptargs findet sich in den kommentierten Quellen vom caption-Paket, also caption.pdf.)
Liebe Grüße,
Axel
Lesezeichen