PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Farbig hinterlegte Captions (wechsel von Caption2 aud Caption)



msthab
08-02-2012, 18:17
Hallo Zusammen,
Ich möchte, dass Bildunterschriften über die ganze Breite des Bildes mit einem farbigen Kasten hinterlegt sind und den Stil „hang“ haben.

Mit dem alten Caption2 Paket war das kein Problem: Die Anweisung:

\newcaptionstyle{buntneu}{ \colorbox[cmyk]{0.15, 0.1, 0.1,0.01} {\parbox{\hsize} {\usecaptionstyle{hang}}}}
\renewcommand\captionfont{ \sf}
\renewcommand\captionlabelfont{ \sf \bf}
\captionstyle{buntneu}

hat funktioniert.

Leider schaffe ich die Umstellung auf das gültige Caption Paket nicht. Ich schaffe es nicht, den farbigen Kasten, eine hang-Formatierung und singlelinecheck=true gleichzeitig hinzubekommen.

Hat jemand eine Idee?

Vielen Dank!

Manfred

sommerfee
09-02-2012, 09:46
Hat jemand eine Idee?

Idee #1:

Ein eigenes caption-Format basteln, wo man die "hang"- und "singlelinecheck"-Geschichte selber realisieren muß. (Bad idea!) Könnte man vereinfachen, indem man interne Makros des caption-Paketes (wie \caption@applyfont etc.) dafür verwendet, möchte man aber nicht wirklich.

Idee #2:

Einfach caption2 weiterverwenden. caption2 ist seit Version 2.2 (2007/04/06) nicht mehr so "böse" wie in der Doku verkündet, es setzt seit dieser Version auf das gleiche Basispaket (=caption3) auf wie das caption-Paket. Daher funktioniert sogar ab dieser Version die Zusammenarbeit mit dem subfig-Paket, zumindest wenn man letzteres mit "caption=false" lädt. Und viele \DeclareCaptionXxx-Befehle funktionieren seitdem auch mit caption2, ebenso \captionsetup.

Dies ist natürlich eine blöde Idee, wenn man gerne Features des neuen caption-Paketes verwenden möchte. Ein Konzept, wie man caption2 so umstrickt, daß es nicht nur auf dem gleichen Basispaket aufbaut, sondern auf dem regulären caption-Paket, habe ich schon seit über 4 Jahren in der Schublade (Version 2.2 war also nur der erste Schritt in diese Richtung), bin aber bisher nicht dazu gekommen, es umzusetzen. (Es stellt sich nach all den Jahren auch die Frage, ob so ein Schritt nicht hinfällig geworden ist. Das alternative Konzept, caption2 einfach als prähistorischen Sondermüll zu deklarieren scheint ja auch zu funktionieren :D )

Idee #3 (dazu muß man dummerweise entweder Axel Sommerfeldt heißen oder in den Quellen von caption3.sty wühlen):

Ab caption.sty v3.1f:


- Hack entfernt, da zum subfig-Paket inkompatibel -


Ab caption.sty v3.3:


\documentclass{article}

\usepackage{xcolor}

\usepackage{caption}
\DeclareCaptionBox{buntneu}{%
\colorbox[cmyk]{0.15, 0.1, 0.1,0.01}{\parbox{#1}{#2}}}
\captionsetup{box=buntneu,format=hang,font=sf,labe lfont=bf}

\begin{document}

\begin{figure}
\caption{Blah!}
\end{figure}
\begin{figure}
\caption{Blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah\ldots}
\end{figure}

\end{document}


(Die Version 3.3 liegt z.Z. nur auf meiner Festplatte, die Veröffentlichung ist für die nächsten Wochen geplant.)

msthab
09-02-2012, 11:05
Hallo sommerfee,

Vielen Dank für die ausführliche Antwort.

Die Idee #3 mit "caption.sty v3.1f" sieht genial aus, funktioniert bei mir aber leider nur bedingt. Bei "einfachen" Bildern super, sobald ich ein \subfloat habe (ich arbeite mit Lynx), steigt LaTex mit riesigen Fehlermeldungen aus . Bei caption2 hats funktioniert.

Gruß & Dank

Manfred

sommerfee
10-02-2012, 10:11
Bei "einfachen" Bildern super, sobald ich ein \subfloat habe (ich arbeite mit Lynx), steigt LaTex mit riesigen Fehlermeldungen aus .

Kein Wunder, das subfig-Paket verwendet die gleichen Funktionen wie das caption-Paket, und da haben wir gerade drin herumgepfuscht. Davon ab ist das subfig-Paket nur an das caption-Paket 3.0 angepasst, und deswegen muß man viele Dinge dort per Hand nachrüsten, wenn es mit Sachen aus caption 3.1, 3.2 oder 3.3 klarkommen soll.

Mein Vorschlag: Behalte caption2, oder warte auf caption 3.3. Dort könnte man dann das subfig-Paket mit


\captionsetup[subfloat]{box=parbox}

bändigen.

(Das subcaption-Paket braucht natürlich keine solche Extrawurst.)

msthab
10-02-2012, 14:43
Alles klar,

dann bleibe ich vorerst bei caption2.sty

Noch einmal ganz herzlichen Dank für die ausführliche Hilfe!!!!

sommerfee
10-01-2013, 08:41
Update: caption v3.3 ist endlich verfügbar, dort funktioniert es dann so:


\documentclass{article}

\usepackage{xcolor}
\definecolor{buntneu}{cmyk}{0.15, 0.1, 0.1,0.01}

\usepackage[box=colorbox,boxcolor=buntneu,format=hang,font=sf, labelfont=bf]{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
\subcaptionbox{A}{Test!}
\caption{Blah!}
\end{figure}

\begin{figure}
\caption{Blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah\ldots}
\end{figure}

\end{document}


beziehungsweise:


\documentclass{article}

\usepackage{xcolor}
\definecolor{buntneu}{cmyk}{0.15, 0.1, 0.1,0.01}

\usepackage[box=colorbox,boxcolor=buntneu,format=hang,font=sf, labelfont=bf]{caption}
\usepackage[box=parbox]{subfig}

\begin{document}

\begin{figure}
\centering
\subfloat[A]{Test!}
\caption{Blah!}
\end{figure}

\begin{figure}
\caption{Blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah\ldots}
\end{figure}

\end{document}