PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenbeschriftung mit Umbruch



Sweeny
05-06-2006, 18:06
Hallo!

Ich versuche die Tabellenüberschrift über ein \renewcommand{\tableformat}{\tablename\thetable \\} nach meinen Wünschen umzuändern, damit bei einem \caption{...NAME...} folgendes gesetzt wird:

Tabelle 1:
...NAME...

Wichtig ist also der Umbruch nach : Soll aber nur für die Tabellen, nicht für Abbildungen gelten. Ich arbeite mit dem Koma-Script scrpage2.

Mir gelingt es aber nicht den Umbruch dort einzufügen.

Würde mich über eine Idee freuen!

Sweeny

countbela666
05-06-2006, 19:05
Hallo Sweeny,

erstmal herzlich Willkommen an Board.

Vergiss am besten den Ansatz, den Spaß umständlich per Hand anpassen zu wollen, wie so oft gibt es für eine derartige Umformatierung ein Paket, mit dem du das viel eleganter lösen kannst:

\usepackage{caption}
\captionsetup[table]{labelsep=newline}oder, wenn du auch auf den Doppelpunkt nicht verzichten willst:

\usepackage{caption}
\DeclareCaptionLabelSeparator{mysep}{:\newline}
\captionsetup[table]{labelsep=mysep}Grüße,
Marcel

rais
05-06-2006, 19:06
Hallo und
Herzlich Willkommen an Board :)

Du könntest es einmal mit \setcapindent*{1em} innerhalb Deiner table-Umgebung versuchen. Dies wirkt sich allerdings nur dann aus, wenn Deine caption von sich aus einen Zeilenumbruch verursachen würde (kann sein, daß das bei der noonelinecaption anders aussieht).
Was für Dich vielleicht angenehmer wäre...


\usepackage{caption} %v3x
\captionsetup[table]{labelsep=newline}
das hätte den Vorteil, daß die Definition automatisch alle Tabellen betrifft - allerdings fehlt dann der Doppelpunkt, und mischen kann man hier die labelsep-Optionen leider nicht.
Schau's Dir erstmal an,


und wieder mal zu langsam :D

MfG,

Sweeny
06-06-2006, 10:04
Danke, Euch beiden. Es hat funktioniert...



\usepackage[justification=raggedright,singlelinecheck=false]{caption}
\DeclareCaptionLabelSeparator{mysep}{:\newline}
\captionsetup[table]{labelsep=mysep}

Sweeny
06-10-2007, 13:05
Hi!

Ich habe das jetzt lange Zeit genutzt... nur spinnt caption jetzt.
Bei Abbildungen ist es korrekt, d.h. linksbündig und hängend. Bei Tabellen möchte ich nach der Tabellennummer direkt umbrechen und dann den Namen eintragen. Alles linksbündig.

Das habe ich:


\usepackage[justification=RaggedRight,scriptsize=normalsize,si nglelinecheck=false,position=bottom,aboveskip=10pt ,belowskip=0pt]{caption}
\DeclareCaptionLabelSeparator{mysep}{\newline}
\captionsetup[table]{labelsep=mysep,indent=0pt,parindent=0pt,hanginden t=0pt,position=top,justification=RaggedRight,textf ont=it,aboveskip=0pt,belowskip=0pt}
\setlength{\abovecaptionskip}{0.0cm}
\setlength{\belowcaptionskip}{0.0cm}


Dabei schreibt caption alles in eine Zeile. Wenn ich singlelinecheck auf true setze, bricht caption zwar um, dafür ist jetzt alles zentriert.

Weiß da jemand Rat?

Viele Grüße

Sweeny

sommerfee
06-10-2007, 13:26
Moin!



Bei Tabellen möchte ich nach der Tabellennummer direkt umbrechen und dann den Namen eintragen. Alles linksbündig.

Sieht bei mir genauso aus:



\documentclass[a4paper]{article}
\usepackage[justification=RaggedRight,scriptsize=normalsize,si nglelinecheck=false,position=bottom,aboveskip=10pt ,belowskip=0pt]{caption}
\DeclareCaptionLabelSeparator{mysep}{\newline}
\captionsetup[table]{labelsep=mysep,indent=0pt,parindent=0pt,hanginden t=0pt,position=top,justification=RaggedRight,textf ont=it,aboveskip=0pt,belowskip=0pt}
\begin{document}
\begin{table}
\caption{Eine Tabellenbeschriftung}
\begin{tabular}{cc}
A & B \\
\end{tabular}
\end{table}
\end{document}


(mit caption.sty v3.1b vom 2007/09/22)

Ansonsten noch ein paar Anmerkungen:



scriptsize=normalsize


Lustig, daß dies keine Fehlermeldung gibt... Das werde ich gleich mal ändern, wenn das ohne viel Aufwand geht...


aboveskip=10pt,belowskip=0pt
...
\setlength{\abovecaptionskip}{0.0cm}
\setlength{\belowcaptionskip}{0.0cm}


Warum setzt du zuerst above+belowcaptionskip auf 10 bzw. 0pt, und dann doch auf 0cm?



\DeclareCaptionLabelSeparator{mysep}{\newline}


\newline arbeitet nicht sehr gut mit \centering, \raggedleft & \raggedright zusammen, ich würde daher immer \\ stattdessen nehmen. Außerdem ist die Definition von "mysep" redundant, daß caption-Paket definiert bereits einen passenden Trenner namens "newline" (der als \\ definiert ist).

Gruß,
Axel

Sweeny
06-10-2007, 14:35
Habe ich das richtig verstanden, dass bei Dir korrekt umgebrochen und linksbündig dargestellt wird?

Und:



\usepackage[justification=RaggedRight,scriptsize=normalsize,si nglelinecheck=false,position=bottom,aboveskip=0pt, belowskip=0pt]{caption}
\captionsetup[table]{labelsep=newline,indent=0pt,parindent=0pt,hangind ent=0pt,position=top,textfont=it,aboveskip=0pt,bel owskip=0pt}


Habe ich jetzt versucht. Also ohne mysep zu definieren. Dabei kommt dann aber die Fehlermeldung:

The option 'labelsep=newline' does not work with \setcaphanging (which is set by default)

sommerfee
06-10-2007, 17:53
Habe ich das richtig verstanden, dass bei Dir korrekt umgebrochen und linksbündig dargestellt wird?

Bei dir nicht, wenn du mein Beispiel übersetzt?


The option 'labelsep=newline' does not work with \setcaphanging (which is set by default)

caption-Paketdokumentation, 8.4 "Fehlermeldungen"

Gruß,
Axel

Sweeny
07-10-2007, 12:09
Jetzt habe ich es (naja, ich weiß zumindest, woran mein Problem liegt, noch nicht, wie man es beheben kann).

Mit Deinem Beispiel geht es nur, wenn ich es auf "article" stelle, ich habe es aber auf "scrbook". Damit klappt es dann nicht (d.h. trotz newline wird alles in eine Zeile gepackt). In deinem Manual finde ich zwar was zu "scrbook", nicht aber zu diesem Problem...

Viele Grüße

Alex


PS: Das Kapitel 8.4 hatte ich schon vorher gelesen. Naja, verstanden habe ich es ehrlich gesagt nicht... Ich lasse es jetzt erst einmal mit mysep...

sommerfee
07-10-2007, 12:59
Ich muß gestehen, nun völlig verwirrt zu sein. Ich weiß zwar nun endlich, welche Dokumentenklasse du verwendest, wie es aber aussehen soll, weiß ich immer noch nicht... Wie stellst du dir einen Zeilenumbruch nach dem Label, und das mit hängendem Einzug denn vor? Möchtest du vielleicht so etwas:



Tabelle 1:
Beschriftung
(mit "Beschriftung" nach dem ":" hängend)

Sowas kann das caption-Paket nicht mit Bordmitteln, da müsstest du dir wohl ein eigenes Format mit \DeclareCaptionFormat basteln... Wenn der hängende Einzug eine feste Länge haben soll/kann/darf, dann kann man auch einfach \setcapindent*{Einzug} dafür verwenden, das kommt dem, was du haben möchtest, wohl am nächsten... (Siehe Abbildung 3.5 in der KOMA-Script-Anleitung)



PS: Das Kapitel 8.4 hatte ich schon vorher gelesen. Naja, verstanden habe ich es ehrlich gesagt nicht...

Dann versuche ich es für die nächste Version etwas verständlicher zu formulieren. Da steht ja zur Zeit:

"Ein Bezeichnungstrenner, der ein \\ Kommando enthält, kann
nicht mit einem Format kombiniert werden, welches "hängende"
Beschriftungen liefert.
Bitte wählen Sie einen anderen Trenner oder ein anderes
Beschriftungsformat aus."

Hmmm, was genau ist daran nicht verständlich? Sollte ich vielleicht mehr hervorheben, daß es meine Implementation des hängenden Einzuges ist, der sich eben einfach nicht zusammen mit \\ anwenden läßt? Über Verbesserungsvorschläge würde ich mich sehr freuen!

Die Implementation von KOMA-Script unterstützt das übrigens auch nicht, ich habe mal deine Einstellungen auf KOMA-Bordmittel umgesetzt:



\documentclass[tablecaptionabove]{scrbook}
\usepackage{ragged2e}

% justification=RaggedRight,scriptsize,textfont=it
\addtokomafont{caption}{\RaggedRight\scriptsize\it shape}

% singlelinecheck=false
\onelinecaptionsfalse

% labelsep=mysep
\renewcommand\captionformat{\newline}

% position=top
% => globale Option "tablecaptionabove"

\begin{document}
\begin{table}
\caption{Eine Tabellenbeschriftung}
\begin{tabular}{cc}
A & B \\
\end{tabular}
\end{table}
\begin{table}
\caption{%
Eine sehr sehr sehr sehr sehr sehr sehr sehr
sehr sehr sehr sehr sehr sehr sehr sehr
lange Tabellenbeschriftung}
\begin{tabular}{cc}
A & B \\
\end{tabular}
\end{table}
\end{document}


Das sieht für mich genauso aus, wie mein Minimalbeispiel aus Beitrag #6 mit scrbook gesetzt. Wenn die KOMA-Bordmittel das gleiche optische Ergebnis liefern wie die Lösung mit dem caption-Paket, kann die Implementation des caption-Paketes doch soooo falsch gar nicht sein!? :confused:

Liebe Grüße,
Axel

Nachtrag: Ich habe mir jetzt den ganzen Thread nochmal von vorne durchgelesen, suchst du vielleicht einfach \setcapindent{0em} bzw. \captionsetup{format=plain}? :confused:

Sweeny
07-10-2007, 17:42
Danke!

Jetzt funktioniert es: \setcapindent{0em} hat geholfen, auch bei scrbook.

Ich wollte es so haben:

Tabelle x
TITEL

Abbildung y: assfasdfsdf

Das habe ich unter article mit Deinem Code hinbekommen, nicht aber unter scrbook. Aber wie gesagt: \setcapindent{0em} hat geholfen.

Vielen Dank!

Alex

sommerfee
07-10-2007, 19:38
Hallo Alex,


Jetzt funktioniert es:

Prima, dann gibt es ja doch noch ein Happy-End :)



Das habe ich unter article mit Deinem Code hinbekommen, nicht aber unter scrbook.

Das liegt daran, daß die caption-Format-Einstellungen unter article und scrbook unterschiedlich sind. Bei article ist "format=plain" voreingestellt, bei KOMA-Script hingegen "hängende" Beschriftungen (also \setcaphanging).

(Siehe auch caption-Dokumentation, Abschnitt 5.4 über KOMA-Script)

Liebe Grüße,
Axel