PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Minipage-Caption vertikal "verrückt"



nanobot
06-05-2008, 10:09
Hallo,

da mir die SuFu und Google nach mehreren Stunden nicht helfen konnten, frage ich mal in die Runde:

Ich habe mittels minipage zwei Bilder nebeneinander gesetzt und ihnen captions verliehen. Die Bilder sind gleichgroß und werden auch gleich skaliert dargestellt. Ist die caption von Bild 1 gleichzeilig mit der von Bild 2, dann gibt es keine Probleme. Wenn die caption 1 aber anderszeilig ist, dann wird caption 2 versetzt (siehe test.jpg). WHY? :confused:

Zum Quellcode:


\documentclass[12pt,a4paper,twoside]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage{amsmath,amssymb,array,booktabs,fancyhd r,graphicx,picins}
\usepackage[ngerman]{babel}
\usepackage[inner=3.5cm,outer=2cm,top=2.5cm,bottom=2.5cm,inclu deheadfoot]{geometry}
\usepackage[margin=10pt,font=small,labelfont=bf,font=sl,format =plain,singlelinecheck=0]{caption}
\usepackage{rotating}
\usepackage{setspace}\onehalfspacing
...
\begin{figure}[h]
\begin{minipage}[t]{.5\linewidth}
\centering\includegraphics[width=.9\linewidth]{Bilder/00.jpg}
\caption[litho00]{litho00 heißt das Bild in meinen eigenen Notizen, aber dies ist natürlich veränderbar und muss nicht zwingend verwendet werden}
\label{l00}
\end{minipage}
\begin{minipage}[t]{.5\linewidth}
\centering\includegraphics[width=.9\linewidth]{Bilder/01.jpg}
\caption[litho01]{litho01}
\label{l01}
\end{minipage}
\end{figure}


Jemand eine Idee?

nanobot
06-05-2008, 14:30
Habe jetzt mal eine \fbox{} um die Bilder gelegt, um hundertprozentig ausschliessen zu können, dass die Bilder unterschiedlich skaliert werden. ERGEBNIS: Die Bilder sind erwartungsmässig gleich groß. Doch mittels der \fbox{} werden die captions auf einmal vertikal richtig angeordnet.

Woran könnte das liegen?

PS: Habe nur den Befehl \includegraphics[...]{...} in die \fbox{} gesteckt

localghost
06-05-2008, 15:04
[...] Woran könnte das liegen? [...]
Schwer zu sagen, wenn die Dateien nicht vorliegen. Für diesen Fall solltest Du dir mal floatrow (http://dante.ctan.org/CTAN/help/Catalogue/entries/floatrow.html) oder subfig (http://dante.ctan.org/CTAN/help/Catalogue/entries/subfig.html) anschauen.


MfG
Thorsten¹

sommerfee
06-05-2008, 17:40
Willkommen in der TeX-Hölle :D

Die Wurzel allen Übels ist, daß TeX immer nur eine Basislinie als Bezugspunkt für die vertikale Ausrichtung hat, was die vertikalen Abstände angeht. Hat man z.B. ganz normalen Text, dann eine \parbox bzw. minipage (mit Basislinie "b" oder "t"), und dann wieder ganz normalen Text, dann stimmen die Abstände immer irgendwo nicht. Und je nach dem Material vor bzw. nach der \parbox oder minipage schlagen dann auch noch TeXs Regeln zu, was die minimalen und maximalen vertikalen Abstände angeht. (Die sind im TeX-Book akribisch aufgeführt.) Man kann zwar versuchen, das notdürftig mit \strut's zu korrigieren (was das caption-Paket auch intern macht), aber auch das klappt nicht immer...

Dieses Problem schlägt sowohl bei KOMA-Script als auch dem caption-Paket zu. Hier muß die \caption intern in eine \parbox (bzw. \vbox/\vtop) gesetzt werden, und zwar wird in beiden Fällen eine \parbox[b] genommen, weil die sich in den meisten Fällen günstiger verhält als eine \parbox[t].

(Siehe z.B. auch http://groups.google.de/group/de.comp.text.tex/browse_frm/thread/a13a483df5e8336f/57efa649e48c1a19 )

Für diesen speziellen Fall wäre aber eine \parbox[t] günstiger, wie man hier sehen kann:

(Das Beispiel benötigt caption.sty v3.1f oder neuer!)



\documentclass[12pt,a4paper,twoside]{scrreprt}
\usepackage[demo]{graphicx}
\usepackage[ngerman]{babel}
\usepackage[margin=10pt,font=small,labelfont=bf,font=sl,format =plain,singlelinecheck=0]{caption}
\begin{document}
\begin{figure}[h]
\makeatletter
\renewcommand\caption@parbox{\parbox[t]}
\makeatother
\begin{minipage}[t]{.5\linewidth}
\centering\includegraphics[width=.9\linewidth]{Bilder/00.jpg}
\caption[litho00]{litho00 heißt das Bild in meinen eigenen Notizen, aber dies ist natürlich veränderbar und muss nicht zwingend verwendet werden}
\label{l00}
\end{minipage}
\begin{minipage}[t]{.5\linewidth}
\centering\includegraphics[width=.9\linewidth]{Bilder/01.jpg}
\caption[litho01]{litho01}
\label{l01}
\end{minipage}
\end{figure}
\end{document}


Ich hatte schon einmal für das caption-Paket v3.0 versucht, eine intelligentere Lösung zu implementieren, die in (fast) allen Fällen konsistentere Abstände liefern sollte, was aber nicht sehr erfolgreich war. caption v3.1 ist intern viel konsistenter und geradliniger implementiert, damit könnte ich es mal wieder versuchen. Ich spiele mal am kommenden Wochenende ein wenig herum und werde berichten...

Liebe Grüße,
Axel

nanobot
06-05-2008, 20:57
Erst einmal vielen Dank für die Antworten. Die caption intern in eine parbox zu setzen werde ich morgen mal probieren. Manchmal ist Latex echt Mist. Solche Kleinigkeiten kosten Stunden an Zeit und wären in Word in Null,Nichts gelöst. So ist das eben -> Wer schön schreiben will, muss leiden! :D

Melde mich morgen, wie es gelaufen ist, ansonsten werde ich mal probieren die fbox einzufärben.

Gute Nacht

sommerfee
06-05-2008, 21:21
Was spricht gegen obrigen Workaround? Funktioniert der bei dir nicht? :confused:

nanobot
07-05-2008, 12:37
Doch, funktioniert wunderbar. VIELEN DANK! Konnte nur, wie bereits erwähnt, das ganze heute erst ausprobieren.

Jetzt kann ich ja erst einmal beruhigt weitertexen.

DANKE NOCHMAL