PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bildunterschriften (caption) als Margin



akki
10-09-2007, 11:38
Hallo zusammen,

kann mir von euch jemand sagen, wie ich Bildunterschriften in die Marginalspalte setzen lassen kann?
Habe eben schon die Doku zum caption-Paket gewälzt und im Netz gesucht aber nix gefunden … wäre schade, wenn LaTeX das nicht hinbekäme.

Vielen Dank schonmal für eure Hilfe

Besten Gruß

Akki

bischi
10-09-2007, 11:44
Mittels captionof-Befehl?

MfG Bischi

sommerfee
10-09-2007, 11:54
Nein, das caption-Paket bietet z.Z. lediglich Möglichkeiten an, das Aussehen zu ändern, aber nicht die Platzierung.

Für KOMA-Script-Dokumentenklassen gibt es ein Paket namens mcaption (ftp://dante.ctan.org/tex-archive/macros/latex/contrib/mcaption/):

"This package provides a margincap environment to put figure
or table captions in the margin. See the documentation to
learn more about this package."

Was dazu sagen kann ich allerdings nicht, da ich es nie ausprobiert habe.

Im Prinzip "schiebt" es wohl die caption mittels der captionbeside-Umgebung von KOMA-Script in den Rand, etwas vergleichbares sollte eigentlich auch mit dem sidecap-Paket möglich sein!? Beizeiten werde ich das mal ausprobieren...

Gruß,
Axel

edico
10-09-2007, 12:54
sidecap package

edico

akki
12-09-2007, 10:12
Hallo zusammen,

zuerst einmal vielen Dank für die schnellen und hilfreichen Antworten.
Mittels mcaption-Package habe ich prinzipiell genau das hinbekommen was ich wollte.
Meine Bildunterschriften sind jetzt schön in der Marginalspalte gesetzt und ich habe auch sehr einfach rausbekommen, wie ich die Nummerierung dieser seitlichen Unterschriften mit Mediaevalziffern realisiere:

\renewcommand{\thefigure}{\oldstylenums{\thechapte r}.\oldstylenums{\arabic{figure}}}


Jetzt stellen sich mir nur noch zwei (zusammenhängende) Probleme, die dem Autor von mcaption auch bereits bekannt sind (werde ihn auch gleich mal anschreiben, aber vielleicht weiss ja jemand von euch, wo der Hase im Pfeffer liegt):

Die Nummerierung der Bildunterschriften wird wie von mir gewünscht durchgezählt: Kapitelnummer.Abbildungsnummer Bildunterschrift.
(Bsp.: 2.1. Ein lustiges Tortendiagramm).
Wenn ich aber im Text mittels \ref(labelname) auf das Bild verweise, wird die Abbildungsnummer nicht mit ausgegeben
(Bsp.: Wie in Abbildung \ref(Tortendiagramm) zu sehen ist -> Wie in Abbildung 2 zu sehen ist).
Das ist so natürlich schon mal falsch, katastrophal wird es aber, wenn in einem Kapitel mehr als eine Abbildung vorkommt, denn die würden im Test dann alle mit derselben Zahl referenziert. Die Möglichkeit zur Formatierung mit Mediaevalziffern ergibt sich dann sicherlich aus dieser Lösung, denn das Format muss damit zusammen hängen

Hat jemand von euch ne Idee, wo die Referenzierung von Abbildungen realisiert ist, d.h. in welcher Style-Datei ich Hand anlegen müsste?

Vielen Dank schon mal für eure Hilfe

Gruß

Akki

sommerfee
12-09-2007, 11:10
Hallo Akki,



Wenn ich aber im Text mittels \ref(labelname) auf das Bild verweise, wird die Abbildungsnummer nicht mit ausgegeben
(Bsp.: Wie in Abbildung \ref(Tortendiagramm) zu sehen ist -> Wie in Abbildung 2 zu sehen ist).
Das ist so natürlich schon mal falsch, katastrophal wird es aber, wenn in einem Kapitel mehr als eine Abbildung vorkommt, denn die würden im Test dann alle mit derselben Zahl referenziert. Die Möglichkeit zur Formatierung mit Mediaevalziffern ergibt sich dann sicherlich aus dieser Lösung, denn das Format muss damit zusammen hängen

Nein, das Problem ist von den Mediaevalziffern unabhängig. Ich weiß nicht, wie das mcaption-Paket im Detail implementiert ist, aber vielleicht hilft es, den \label-Befehl in den Text für die caption hineinzuschreiben!? Ich schaue mir das am Wochenende mal an, vorher finde ich leider keine Zeit dafür...



Hat jemand von euch ne Idee, wo die Referenzierung von Abbildungen realisiert ist, d.h. in welcher Style-Datei ich Hand anlegen müsste?

Normalerweise setzt \caption die Referenz, mit \label wird dieser internen Referenz ein Prosa-Name zugewiesen. Anscheinend hat das mcaption-Paket dahingehend was verändert, daß \label statt dieser Referenz die vorherige Referenz (das wird \section oder \subsection sein) "aufgreift".

Wenn \caption, \label und \ref mit captionbeside von KOMA-Script funktioniert (wovon ich ausgehe!), und mit dem mcaption-Paket nicht, so muß das Problem im mcaption-Paket zu finden und auch dort zu lösen sein.

Liebe Grüße,
Axel

akki
12-09-2007, 12:28
Hallo Axel,

erst einmal vielen Dank für den Tip. Wenn ich eine Bildunterschrift mit captionbeside setze, wird die Referenz auch nicht richtig dargestellt – selbes Problem wie bei mcaption, der label/reference-Mechanismus funktioniert nicht.

Wir kommen also dem Problem schon näher, es muss wahrscheinlich im caption-Packet zu suchen sein.

Mit der Formatierung der Referenzen habe ich mich missverständlich ausgedrückt - ich dachte, im mcaption-Paket gebe es vielleicht ein Format, welches das Aussehen festlegt und das man redefinieren könnte.
Stattdessen habe ich dieses Problem mittlerweile mittels prettyref gelöst:

\usepackage{prettyref}
\newrefformat{fig}{Abbildung \oldstylenums{\ref{#1}} auf Seite \oldstylenums{\pageref{#1}}}

Wenn ich jetzt noch bei den Referenzen sowohl die Kapitelnummer als auch die Abbildungsnummer ausgegeben bekomme (sprich: das "#1" sich auflöst zu Kapitel.Abbildungsnummer), dann bin ich glücklich. Leider habe ich noch keine konkrette Vorstellung, wo ich suchen müßte.

Wäre toll, wenn Du am WE Zeit finden würdest.

Besten Gruß

Akki

sommerfee
12-09-2007, 13:45
Wenn ich eine Bildunterschrift mit captionbeside setze, wird die Referenz auch nicht richtig dargestellt – selbes Problem wie bei mcaption, der label/reference-Mechanismus funktioniert nicht.

Bei mir schon, hier das Beispiel aus der KOMA-Script-Anleitung:


\documentclass{scrbook}

\begin{document}
\chapter{Kapitel}
\section{Abschnitt 1}
Ein Verweis auf Bild \ref{fig:maincls.captionbeside}
\section{Abschnitt 2}
\begin{figure}
\begin{captionbeside}[Beispiel für
Bildbeschreibung]%
{Eine Bildbeschreibung weder ueber noch unter der
Abbildung, sondern daneben}[i][\linewidth]%
[2em]*
\fbox{%
\parbox[b][5\baselineskip][c]{.25\textwidth}{%
\hspace*{\fill}\KOMAScript\hspace*{\fill}%
\par}}
\end{captionbeside}
\label{fig:maincls.captionbeside}
\end{figure}
\end{document}




Wir kommen also dem Problem schon näher, es muss wahrscheinlich im caption-Packet zu suchen sein.

Wie kommst du jetzt auf das caption-Paket, was hat das damit zu tun?

Ein Minimalbeispiel, welches das Problem zeigt, wäre nett, meine Kristallkugel zeigt nur noch Nebel an ;)

Gruß,
Axel

edico
12-09-2007, 15:03
s. posting#4

\documentclass{book}
\usepackage{graphicx}
\usepackage[wide]{sidecap}
\begin{document}
\frontmatter
\tableofcontents
\listoffigures
\mainmatter
\chapter{Test}
\hrulefill~Textbreite\marginpar{Randnotiz}~\hrulef ill
\begin{SCfigure}
\begin{minipage}{\textwidth}
\centering
\framebox[250pt]{\rule{0mm}{100pt}}
\end{minipage}%\hspace{\marginparsep}
\caption{Das ist eine margin-Bildunterschrift}
\end{SCfigure}
\end{document}

edico

akki
12-09-2007, 19:02
Vielen Dank für alle eure Vorschläge - das Verfassen eines kleinen Besipieldokumentes (was ich hier mal auslasse - jetzt ist's sowieso trivial) hat mich dann selbst zur Lösung geführt.

Mein Verständnisfehler war, das ich angenommen habe, dass \ref{#1} im folgenden Code die gesamte Bezeichnung der Abbildung beinhalten würde:

\usepackage{prettyref}
\newrefformat{fig}{Abbildung \oldstylenums{\ref{#1}} auf Seite \oldstylenums{\pageref{#1}}}

Tut's aber nicht. Stattdessen bringt mich folgende Beschreibung des fig-Formats zum Ziel:

\usepackage{prettyref}
\newrefformat{fig}{Abbildung
\oldstylenums{\thechapter}.\oldstylenums{\arabic{f igure}}}

Und schon habe ich mit einem prettyref-Verweis meine gewünschte Referenz.
Meine Vermutung, dass caption die Bezeichnung der Abbildung falsch liefern würde, ist wohl eher auf meinen akuten schlafmangel zurückzuführen.

Ich gelobe für die Zukunft besserung: früher Beispielcode posten und vorher ausschlafen

Vielen Dank und einen schönen Tag

Akki

thomas_1980
08-10-2007, 14:28
\usepackage{prettyref}
\newrefformat{fig}{Abbildung
\oldstylenums{\thechapter}.\oldstylenums{\arabic{f igure}}}

Geht das bei Dir im Zusammenhang mit mcaption? Ich hab das so nicht zum laufen gebracht. Bei Referenzen ist der Wert für figure stets 0.

Mein Minimal-Beispiel:
\documentclass{scrbook}

\usepackage[font=scriptsize,justification=raggedright]{caption}
\usepackage[top]{mcaption}

\usepackage{graphicx}
\usepackage{prettyref}
\newrefformat{fig}{Abbildung
\oldstylenums{\thechapter}.\oldstylenums{\arabic{f igure}}}

\begin{document}

\chapter{Sample}
Figure1: Wie in \prettyref{fig:test} zu sehen\dots

\noindent Figure2: Wie in \prettyref{fig:test2} zu sehen\dots

\begin{figure}[h]
\begin{margincap}[short caption]{margin caption}
\centering
\fbox{%
\parbox[b][5\baselineskip][c]{.25\textwidth}{%
\hspace*{\fill}\KOMAScript\hspace*{\fill}%
\par}
}
\end{margincap}
\label{fig:test}
\end{figure}


\begin{figure}[h]
\begin{margincap}[short caption]{margin caption}
\centering
\fbox{%
\parbox[b][5\baselineskip][c]{.25\textwidth}{%
\hspace*{\fill}\KOMAScript\hspace*{\fill}%
\par}
}
\end{margincap}
\label{fig:test2}
\end{figure}

\end{document}

Folgendes erscheint bei mir:
Figure1: Wie in Abbildung 1.0 zu sehen. . .
Figure2: Wie in Abbildung 1.0 zu sehen. . .

sommerfee
08-10-2007, 15:35
Mein Minimal-Beispiel:

Das geht noch ein wenig minimaler:


\documentclass{scrbook}
\usepackage[top]{mcaption}

\begin{document}
\chapter{Sample}
Figure1: Wie in \ref{fig:test} zu sehen\dots
\begin{figure}[h]
\begin{margincap}[short caption]{margin caption}
\centering
\fbox{%
\parbox[b][5\baselineskip][c]{.25\textwidth}{%
\hspace*{\fill}\KOMAScript\hspace*{\fill}%
\par}
}
\end{margincap}
\label{fig:test}
\end{figure}
\end{document}


zeigt das gleiche Problem. Es geht aber:



\documentclass{scrbook}
\usepackage[top]{mcaption}

\begin{document}
\chapter{Sample}
Figure1: Wie in \ref{fig:test} zu sehen\dots
\begin{figure}[h]
\begin{margincap}[short caption]{margin caption\label{fig:test}}
\centering
\fbox{%
\parbox[b][5\baselineskip][c]{.25\textwidth}{%
\hspace*{\fill}\KOMAScript\hspace*{\fill}%
\par}
}
\end{margincap}
% \label{fig:test}
\end{figure}
\end{document}


Ob das so soll? Keine Ahnung...

Gruß,
Axel

sommerfee
08-10-2007, 15:54
Ob das so soll? Keine Ahnung...

Und die Neugierde hat doch gesiegt und in der Doku des mcaption-Paketes habe ich gefunden:

"The label/reference mechanism doesn't work for margin captions, currently."

Nun ja, mit \label direkt im caption-Text scheint es ja doch zu gehen.

Nett ist auch "The author suggests using the caption package to format captions." Und das 2005, wo noch sowohl der Autor von KOMA-Script als auch der Autor des caption-Paketes (also ich) davon abgeraten haben... :D

Gruß,
Axel

thomas_1980
08-10-2007, 16:29
Ja, so gehts. Aber die Lösung von Akki mit prettyref funktioniert in dem Zusammenhang mit mcaption nicht. Mir reicht das aber so fürs erste. Danke.

Ach ja, wegen dem Minimal-Beispiel: hatte extra 2 Bilder reingesetzt, um den Fehler auszuschließen, dass er vielleicht bei 0 anfängt mit zählen (hätte ja aus irgendwelchen Gründen sein können ;-) ).

sommerfee
08-10-2007, 17:55
Ja, so gehts. Aber die Lösung von Akki mit prettyref funktioniert in dem Zusammenhang mit mcaption nicht.

Upps, das hatte ich mir gar nicht angeschaut. Die Definition


\newrefformat{fig}{Abbildung
\oldstylenums{\thechapter}.\oldstylenums{\arabic{f igure}}}

funktioniert übrigens in (fast) keinem Zusammenhang richtig, es wird einfach nur der aktuelle "chapter" und "figure"-Zähler verwendet, nicht derjenige der Abbildung. So könnte man auch \prettyref{fig:gibts-hier-nich} schreiben, das würde in deinem Beispiel ohne Fehlermeldung ebenfalls "1.0" ausgeben, selbst wenn es das label "fig:gibts-hier-nich" gar nicht gibt.

Eine brauchbarere Definition würde wohl etwa irgendwie so lauten:


\newrefformat{fig}{Abbildung \oldstylenums{\ref{#1}}}


Gruß,
Axel