PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit captionof+Tabellen und wrapfig



W2K
30-05-2007, 14:45
Hallo,

ich habe zwei Fragen:

1. Ich benutze captionof, um alle meine Abbildungen und Tabellen zu beschriften. Meine Abbildungen - Zeichnungen mit PSTricks, etc. liegen of in minipages.


Hier steht Text.\\[8pt]
\begin{minipage}
...
\end{minipage}
\captionof{figure}{....Text....}

Aus welchen Gründen sind die Abstände zwischen den Tabellen under Beschriftung so viel größer als bei meinen Abbildungen? Und wie gleich ich das an?


%------------------------------------------------------------------------------
% Label unter Abbildungen/Tabellen, etc.
%------------------------------------------------------------------------------
\renewcommand{\captionlabelfont}{
\small\bfseries} % Formatierung des Labels
\renewcommand{\captionfont}{\small} % Formatierung des Bezeichnungs-Textes
\setlength{\captionmargin}{0pt} %
\setlength{\abovecaptionskip}{5pt} % Abstand zur Abbildung
\setlength{\belowcaptionskip}{-5pt} % Abstand zum Text


2. wrapfig erzeugt unterhalb der Bildbeschriftung und oberhalb der Abbildung einen zu großen Leerraum - bevor der Text wieder über die gesamte Seite fließt. Was tun?



\begin{wrapfigure}{L}{8.5cm}
\psset{unit=1.0cm}
\psframebox[linewidth=0.3pt]{
\centering
\begin{pspicture}(-4,0)(4,10.5)
\uput[0](-4.0,5.3){\includegraphics[width=7.5cm]{Kapitel4/eps/xxxx.eps}}
\end{pspicture}}
\captionof{figure}{xxxxx}
\label{fig:StatPerBnd}
\end{wrapfigure}


In der l2picfaq.pdf habe ich nichts passendes gefunden.

W2K
30-05-2007, 14:52
Ok, das Problem mit wrapfigure ist gelöst. Es lag an meiner Textverteilung.

sommerfee
30-05-2007, 15:16
Zu 1. hätte ich gerne ein Minimalbeispiel. Ansonsten hilft sicherlich auch ein Blick in die Dokumentation zum caption-Paket, welches du (wenn ich mich recht erinnere) einsetzt.

Liebe Grüße,
Axel

countbela666
30-05-2007, 15:46
Wenn du statt des caption-Pakets capt-of benutzt, funktioniert das von KOMA-Script definierte Umschalten des caption-Befehls von Tabellenüber- auf Bildunterschrift nicht, da du dich dann ja nicht in einer table- oder figure-Umgebung aufhältst.

Entweder du nutzt nun also das caption-Paket, oder du schmeißt capt-of raus und ersetzt es durch folgenden Code:

\usepackage{ifthen}
\makeatletter
\newcommand\captionof[2]{%
\def\@captype{#1}%
\ifthenelse{\equal{#1}{table}}
{\if@tablecaptionabove\captionabove{#2}\else\capti onbelow{#2}\fi}
{\caption{#2}}
}
\makeatotherDamit sollte folgendes korrekt funktionieren:

\documentclass[tablecaptionabove]{scrartcl}
\usepackage{ifthen}
\makeatletter
\newcommand\captionof[2]{%
\def\@captype{#1}%
\ifthenelse{\equal{#1}{table}}
{\if@tablecaptionabove\captionabove{#2}\else\capti onbelow{#2}\fi}
{\caption{#2}}
}
\makeatother
\setcapindent{0pt}
\begin{document}
\fbox{\begin{minipage}{3cm}
\centering
\rule{2cm}{2cm}
\captionof{figure}{Richtig: Bild mit Unterschrift}
\end{minipage}}
\fbox{\begin{minipage}{3cm}
\centering
\captionof{figure}{Falsch: Bild mit Ueberschrift}
\rule{2cm}{2cm}
\end{minipage}}
\fbox{\begin{minipage}{3cm}
\centering
\captionof{table}{Richtig: Tabelle mit Ueberschrift}
\rule{2cm}{2cm}
\end{minipage}}
\fbox{\begin{minipage}{3cm}
\centering
\rule{2cm}{2cm}
\captionof{table}{Falsch: Tabelle mit Unterschrift}
\end{minipage}}
\end{document}@ Axel: welche Variante würdest du in diesem Fall empfehlen?

Grüße
Marcel

W2K
30-05-2007, 18:15
Hi,

ich stehe gerade etwas neben mir...

Ich habe die Erweiterung von countbela666 in mein Dokument aufgenommen und caption durch capt-of ersetzt. Er meckert aber weiter, das captionof bereits definiert wurde.

Was ich brauche ist:
1. Text zentrieren, wenn die Beschriftung nicht die ganze Seite ausfüllt.
Ansonsten links, ausgerichtet und hängend.
2. Die 8pt, die ich über meinen Abbildungen vorgesehen habe, sind wohl zu wenig - für bessere Vorschläge bin ich jeder Zeit offen.


Vielen Dank.



\documentclass[a4paper, % DINA4-Papier
12pt, % Schriftgröße
oneside, % Einseitiger Druck
halfparskip, % Absatzabstand 1.5
liststotoc, % Listen --> Inhaltsverzeichnis
bibtotoc] % Literaturverz. -> Inhaltsverzeichnis
{scrbook} % Dokumentenklasse
\usepackage[headsep = 06mm, % Abstand - Trennline und dem Text
footskip = 2\baselineskip,% Abstand - Text (u.) zur Fußzeile
footnotesep = 05mm, % Abstand - Text zur 1. Trennlinie (unten)
top = 26mm, % Rand, oben
bottom = 17mm, % Rand, unten
left = 20mm, % Rand, links
right = 20mm, % Rand, rechts
bindingoffset= 05mm, % Offset für Bindungs (links)
includefoot, %
]{geometry}
% %------------------------------------------------------------------------------
% Zusätzliche Pakete einbinden
%------------------------------------------------------------------------------
\usepackage[ngerman]{babel} % Neue dt. Rechtschreibung
\usepackage[T1]{fontenc} %
\usepackage[latin1]{inputenc} % Dateicodierung
\usepackage[automark]{scrpage2} % Seitenstil
\usepackage{color} % Farben
\usepackage{graphicx} % Einbindung von Grafiken
\usepackage{wrapfig} % Textumflossene Grafiken
\usepackage{pdflscape} % Einzelne Seiten auf Landscape-Format
%------------------------------------------------------------------------------
\usepackage{pstricks} % PSTricks
\usepackage{pstricks-add} %
\usepackage{pst-3dplot} % PSTricks-3DPlot
\usepackage{pst-gr3d} % PSTricks
\usepackage{pst-grad} % PSTricks
\usepackage{pst-vue3d} % PSTricks-3D-Umgebungen
\usepackage{pst-plot} % PSTricks-Plot-Umgebungen
%------------------------------------------------------------------------------
\usepackage{array} %
\usepackage{amsmath} % Erweiterungen mathematischer Umgebungen
\usepackage{amsfonts} %
\usepackage{amssymb} %
\usepackage{accents} % Akzente auf Variablen setzen
\usepackage{fancyvrb} %
\usepackage{listliketab} %
\usepackage{enumitem} % Listen
\usepackage{bigdelim} %
\usepackage{rotating} %
\usepackage{multicol} % Mehrspaltiger Text
\usepackage{cancel} % Durchstreichen mathematischer Ausdrücke
\usepackage{colortbl} % Tabellen mit Farben
\usepackage{listings} % Darstellung von Quellcode
\usepackage{ifthen} % Fallunterscheidungen
\usepackage{ltxtable} %
\usepackage{ragged2e} %
\usepackage{natbib} % Paket, um BibTex einzubinden
\usepackage{setspace} %
\usepackage{capt-of} %
\usepackage{nofloat} %
\usepackage{floatrow} %
\usepackage{lmodern} % Latin Modern Schriften verwenden
%\usepackage{bookman} % Bookman Schriften verwenden
%\usepackage{times} % Times Schriften verwenden
\usepackage[colorlinks=true, %
citecolor=red, %
linkcolor=blue, %
pdfpagelabels=true, %
breaklinks=true] %
{hyperref} % Hyperlinks, Verweise farbig abheben
\usepackage{chngcntr} %
\usepackage{varwidth} %
\usepackage{paralist} % Kompakte Listen
\usepackage{subfig} %
%
%
%------------------------------------------------------------------------------
% Seitenstile
%------------------------------------------------------------------------------
\defpagestyle{chpDiplomarbeit}{%
{}{}{}(\textwidth,0.0pt)
}{%
(\textwidth,0.5pt){}{}{
\begin{tabular}{@{}>{\centering}p{\linewidth}@{}}%
\\[1ex]%<--Abstand Fußtrennlinie zur Seitenzahl
$-$\hspace{1.25mm}\pagemark \hspace{1.25mm}$-$
\end{tabular}}%
}
%------------------------------------------------------------------------------
\defpagestyle{secDiplomarbeit}{%
{}{}{\llap{}\hfill\rightmark\hfill\rlap{}}(\textwi dth,0.5pt)
}{%
(\textwidth,0.5pt){}{}{%
\begin{tabular}{@{}>{\centering}p{\linewidth}@{}}%
\\[1ex]%<--Abstand Fußtrennlinie zur Seitenzahl
$-$\hspace{1.25mm}\pagemark \hspace{1.25mm}$-$
\end{tabular}}%
}
%------------------------------------------------------------------------------
\pagestyle{secDiplomarbeit}
\onehalfspacing
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\renewcommand{\sectionmark}[1]{\markright{\thesection{} #1}}
\renewcommand*{\chapterpagestyle}{chpDiplomarbeit}
%------------------------------------------------------------------------------
\renewcommand{\chapterheadstartvskip}{\vspace{+1cm }}% Abstand Chapter zu Rand
\renewcommand{\chapterheadstartvskip}{\vspace{-1,5cm}}%Abstand der Überschrift
%\flushbottom % Fülle die Seite komplett
\raggedbottom %
%------------------------------------------------------------------------------
%
%
%------------------------------------------------------------------------------
% Label unter Abbildungen/Tabellen, etc.
%------------------------------------------------------------------------------
\renewcommand{\captionlabelfont}{
\small\bfseries} % Formatierung des Labels
\renewcommand{\captionfont}{\small} % Formatierung des Bezeichnungs-Textes
\setlength{\captionmargin}{0pt} %
\setlength{\abovecaptionskip}{5pt} % Abstand zur Abbildung
\setlength{\belowcaptionskip}{-5pt} % Abstand zum Text
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\makeatletter
%-----------------------------------------------------------------------------
\renewcommand*\footnoterule{%
\kern-3\p@
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
\hrule\@width\textwidth
\kern 2.6\p@}
%-----------------------------------------------------------------------------
\newcommand\captionof[2]{%
\def\@captype{#1}%
\ifthenelse{\equal{#1}{table}}
{\if@tablecaptionabove\captionabove{#2}\else\capti onbelow{#2}\fi}
{\caption{#2}}
}
%-----------------------------------------------------------------------------
\def\pscube(#1,#2)(#3,#4)(#5,#6)(#7,#8)(#9){%
\psset{unit=1cm}
\psset{linewidth=0.4pt}
%
\psline(#1,#2)(!#1 #3 add #2 #4 add)
\psline(#1,#2)(!#1 #5 add #2 #6 add)
%
\psline(!#1 #5 add #2 #6 add)(!#1 #7 add #2 #8 add)
\psline(!#1 #3 add #2 #4 add)(!#1 #7 add #2 #8 add)
%
\ifnum #9>1
\psdots[dotscale=1.5,dotstyle=x,
linecolor=black,linewidth=0.7pt](!%
#1 #7 add
#2 #8 add)
\else
\psdots[dotscale=1.5,dotstyle=x,
linecolor=black,linewidth=0.7pt](!%
#1 #2 #6 add)
\fi
\uput[90](!#7 2 div #1 add
#8 2 div #2 add){
%\tiny{$i,j$}
}
\psdots[dotscale=1.0,dotstyle=*,linecolor=black,
linewidth=0.7pt](!%
#7 2 div #1 add
#8 2 div #2 add)
}%
%-----------------------------------------------------------------------------
\makeatother
%------------------------------------------------------------------------------
%
%
%------------------------------------------------------------------------------
% Hauptdokument
%------------------------------------------------------------------------------
%
\begin{document}
.....
\end{document}


Beispiel einer Tabelle:


{\scriptsize
\begin{longtable}{|>{\RaggedRight}p{1.0cm}|p{4.8cm}|p{10.0cm}|c|l|l|}\ hline
\rowcolor[gray]{0.8}
\color{black}
{} & \textbf{Bezeichnung} & \textbf{Beschreibung}\\ \hline
\TCircle{L} & \textbf{lokale, zeitliche Änderungsrate}
\\ \hline
\end{longtable}}


Beispiel einer Abbildung:


Text davor\\[8pt]
\psframebox[linewidth=0.3pt]{
\begin{minipage}{\textwidth-0.6pt-2\fboxsep-4pt}
\begin{pspicture}(0,-4.1)(\textwidth,5.0)

\end{pspicture}
\end{minipage}}
\captionof{figure}{XXXXX}
\label{fig:XXXX}

W2K
30-05-2007, 18:17
3. Wie bekomme ich die Nummer auch bei Abbildungen angezeigt, die ich mit subfloat nebeneinander ausgerichtet habe.
Im Moment sehe ich dort nur a), b), c) ... stehen.

4. Nach der Abbildungsnummer folgt meist ein ungewünschtes Leerzeichen....Wie bekomme ich das weg?

sommerfee
31-05-2007, 09:35
Hallo Marcel,


@ Axel: welche Variante würdest du in diesem Fall empfehlen?

Deine Definition von \captionof hat den Nachteil, daß das optionale Argument nicht mehr funktioniert, also z.B. \captionof{figure}[Huba]{Hopp}. Außerdem sind eigene Definitionen, die auf Internata basieren, immer nett, veröffentlicht im Internet haben sie aber den Nachteil, daß sie oftmals von dritten ohne sie verstanden zu haben per Copy+Paste ins eigene Dokument übernommen werden. In Verbindung mit anderen Paketen können dann unerwünschte Nebenwirkungen auftreten etc. Als Supporter eines Paketes bin ich daher immer froh, wenn nach Möglichkeit wohldefinierte Pakete als Problemlösung eingesetzt werden und ich mich bei zugesandten Dokumenten nicht erst durch einen Wust an scheinbar unverstandenen und unglücklich angewandten Definitionen wühlen muß. Sehr viele Support-Fälle kann ich bereinigen, indem ich solche Definitionen entferne und stattdessen Pakete einsetze.

Ich persönlich würde in diesem Falle daher einfach beim caption-Paket bleiben. Die KOMA-Option "tablecaptionabove" wird ja vom caption-Paket beachtet, auch von dessen \captionof. (Hoffe/Denke ich zumindest, ansonsten Bugreport an mich. Habe leider gerade kein LaTeX zur Hand zum ausprobieren.)

Aber im Endeffekt muß jeder selber für sich herausfinden, womit er am besten klar kommt. Dinge durch eigene Definitionen selber im Griff haben kann ja auch Vorteile bedeuten.

Liebe Grüße,
Axel

W2K
31-05-2007, 17:18
Hallo Axel,

wenn Du Dich bezüglich Beschriftung so gut auskennst, dann würde ich Dir als Laie gerne drei Frage stellen:

1. Wie kann ich mit caption eigene Objekte = Tabellen, Figure-Umgebungen, MINIPAGES beschriften, so dass alle den gleichen vertikalen Abstand/Freiraum nach oben/unten zum Text besitzen
Eine Vielzahl meiner Abbildungen (Zeichnungen mit PSTricks) liegen in MINIPAGES.

2. Welche Abstände würdest Du für ein homogenes Schriftbild (12pt) empfehlen?

Ich wäre Dir sehr, sehr zu Dank verpflichtet, wenn Du mir direkt helfen könntest, da mir die Zeit davon rennt.

VG, W2K

sommerfee
01-06-2007, 09:06
Hallo W2K,



1. Wie kann ich mit caption eigene Objekte = Tabellen, Figure-Umgebungen, MINIPAGES beschriften, so dass alle den gleichen vertikalen Abstand/Freiraum nach oben/unten zum Text besitzen
Eine Vielzahl meiner Abbildungen (Zeichnungen mit PSTricks) liegen in MINIPAGES.

Eigentlich sollte das mehr oder weniger automatisch so sein, wenn man die Tabellenbeschriftungen allerdings über der Tabelle hat, ist die Angabe der passenden Option bei der KOMA-Script-Klasse bzw. beim caption-Paket vonnöten. (Siehe auch KOMA-Doku bzw. caption-Doku)

Sollte das im Einzelfall nicht der Fall sein, so bitte ich um ein lauffähiges Minimalbeispiel, so daß ich das Problem hier nachstellen und analysieren kann.



2. Welche Abstände würdest Du für ein homogenes Schriftbild (12pt) empfehlen?

Schwierige Frage, ich tendiere dazu die voreingestellten 10pt einen Tick zu groß zu finden, ich nehme daher 9pt. Das ist aber lediglich meine eigene Wahrnehmung, nicht mehr, und schon gar nicht die Befolgung typographischer Regeln. Damit kennen sich andere viel besser aus als ich.

Liebe Grüße,
Axel

sommerfee
07-06-2007, 10:36
Hallo W2K,



Sollte das im Einzelfall nicht der Fall sein, so bitte ich um ein lauffähiges Minimalbeispiel, so daß ich das Problem hier nachstellen und analysieren kann.

Diese Bitte möchte ich gerne erneuern. Du hast jetzt schon (in verschiedenen Themen) insgesamt drei Probleme gemeldet, die das caption(2)-Paket betreffen könnten, ohne ein lauffähiges Beispiel zu liefern, welches das Problem aufzeigt.

Ich finde es schade, daß du mir keine Chance gibst, diese eventuellen Fehler zu finden und zu beseitigen, so daß auch andere User davon profitieren können.

:(

Liebe Grüße,
Axel