PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie erzeugt man Panels innerhalb von Tables?



René Geppert
03-12-2008, 23:48
Ich versuch mal zu beschrieben, was ich eigentlich will.
Anstatt zwei separate table-umgebungen zu erstellen, soll es nur eine table sein, die zwei Panels enthält. Ist vermutlich was für subfigure. Jeweils einzelne captions sollten damit hinzubiegen sein.
Meine Frage ist nur, wie ich die Panels innerhalb der table-umgebung auch als Panel bezeichnet bekomme. Muss ich dafür etwas neu definieren? Im Tabellenverzeichnis müsste dann ja entsprechend auch stehen:

LoT:
Table 1...
...Panel A...
...Panel B...
Table 2...

Die Tabelle hat ungefähr solch ein Aussehen:
Table 1 - Caption
-----------------
Panel A: TitleA
...tabular...
Panel B: TitleB
...tabular...
-----------------

paar schlagwörter würden mir evtl. schon reichen, es sei denn das ganze ist jetzt mit massenhaft selbst/umdefinierten commands verbunden

Zu allen Schandtaten bereit! :D

gruß, René

mechanicus
04-12-2008, 01:37
Hallo Rene,

du hast doch schon das Richtige angesprochen. Subfigue. Wenn du in das Paket subfig schaust, dann findest du da auch was zu subtable.

Bin aber nett:D

\documentclass{article}
\usepackage{array,ragged2e}
\usepackage{caption}
\captionsetup[subtable]{labelformat=simple,listofformat=subsimple}

\usepackage{subfig}
\setcounter{lotdepth}{2}
\renewcommand{\thesubtable}{Panel~\alph{subtable}: }
\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\makeatother

\begin{document}
\listoftables
\section{foo}
Text
\begin{table}[ht]\centering
\subfloat[Teil1 \label{pa:teil1}]{%
\begin{tabular}{cc}
hallo & ICH \\
hallo & ICH \\
hallo & ICH \\
\end{tabular}}

\subfloat[Teil2 \label{pa:teil2}]{%
\begin{tabular}{cc}
hallo & DU \\
hallo & DU \\
hallo & DU \\
\end{tabular}}
\caption{Testtabelle}
\label{tab:testtabelle}
\end{table}

Hier der Text mit Referenz auf \ref{pa:teil1} und \ref{pa:teil2}.

\end{document}

Gruß
Marco

René Geppert
04-12-2008, 01:55
man man
was würde ich nur ohne dich machen^^

vielen dank erstmal...ich customize mir das nachher mal nen bisschen :D

René Geppert
04-12-2008, 13:20
okay Marco
habe das soweit jetzt alles eingebunden

durch die subfigure option gabs auch mit tocloft keine probleme

zwei kleinigkeiten blieben noch
wenn dir oder sonst einem da spontan nichts einfällt, ists auch nicht so wild
minimalbeispiel ist bei mir auch nicht mehr praktikabel, da da schon zu viele sachen zusammenspielen... xD

ohne
\setcounter{lotdepth}{2} passt die tabelle und auch die "über-table" steht richtig in der lot (ohne die panels)

mit dem lotdepth-command taucht jeder paneleintrag zweimal in der lot auf und folgender codeabschnitt wird ignoriert (d.h. Panel A: und die zugehörige caption überlappen sich in der lot und sind nicht eingerückt)

\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\makeatother kann ich auskommentieren oder auch nicht, da ändert sich nichts (im gegensatz dazu, wenn ich es in deiner beispieldatei mache)

evtl. nen tocloftkompatibilitätsproblem?

hiermal relevante präambelausschnitte:

\documentclass[11pt,a4paper,oneside]{scrreprt}
...
\usepackage[bf]{caption}
\usepackage{subfig}
\captionsetup[subtable]{labelformat=simple,listofformat=subsimple,positio n=top,singlelinecheck=false,font=normal}
\renewcommand{\thesubtable}{Panel~\Alph{subtable}: }
\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\makeatother
...
\usepackage{remreset}
\renewcommand{\thetable}{\arabic{table}}
\renewcommand{\thefigure}{\arabic{figure}}
\renewcommand{\theequation}{\arabic{equation}}
\makeatletter
\@removefromreset{table}{chapter}
\@removefromreset{figure}{chapter}
\@removefromreset{equation}{chapter}
\@removefromreset{footnote}{chapter}
\makeatother
...
\usepackage[subfigure]{tocloft}
\renewcommand{\cftchapfont}{\normalfont\bfseries}
\renewcommand{\cftsecfont}{\normalfont}
\renewcommand{\cftsubsecfont}{\normalfont}
\renewcommand{\cftdotsep}{\cftnodots}
\renewcommand{\cfttoctitlefont}{\normalfont\huge\b fseries}
\renewcommand{\cftloftitlefont}{\normalfont\huge\b fseries}
\renewcommand{\cftlottitlefont}{\normalfont\huge\b fseries}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\setcounter{lotdepth}{2}


bin mir bewusst, dass es schon grausig aussieht :D

gruß von der front :P

mechanicus
04-12-2008, 13:56
Hallo,

laut Doku von subfig[1]:

The startup sequence for the subfig package is to first load the caption package (with no
options) if it has not already been loaded. Next it sets the following default values on
the “subfloat” variable:
\captionsetup[subfloat]{font=footnotesize,
labelformat=parens,labelsep=space,
listofformat=subparens}


[1] ftp://ftp.tu-chemnitz.de/pub/tex/macros/latex/contrib/subfig/subfig.pdf

Gruß
Marco

René Geppert
04-12-2008, 15:01
okay
captionpaket ist raus, mein fehler
auch das mit den doppelte einträgen lag an mir...hatte tabellen zu häufig geschachtelt

das problem der überlappenden einträge bleibt aber
laut tocloft doku sollte es zu subfigure kompaitel sein
kann es sein, dass das nicht für subfig gilt?

hier marcos bsp. leicht angepasst


\documentclass{article}

\usepackage{array,ragged2e,tabularx}
\usepackage{subfig}
\setcounter{lotdepth}{2}
\renewcommand{\thesubtable}{Panel~\Alph{subtable}: }

\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\makeatother

\usepackage[subfigure]{tocloft}

\begin{document}
\listoftables
Text
\begin{table}[ht]\centering
\subfloat[Teil1 \label{pa:teil1}]{%
\begin{tabular}{cc}
hallo & ICH \\
hallo & ICH \\
hallo & ICH \\
\end{tabular}}

\subfloat[Teil2 \label{pa:teil2}]{%
\begin{tabular}{cc}
hallo & DU \\
hallo & DU \\
hallo & DU \\
\end{tabular}}
\caption{Testtabelle}
\label{tab:testtabelle}
\end{table}

Hier der Text mit Referenz auf \ref{pa:teil1} und \ref{pa:teil2}.


\end{document}

kommentiert man tocloft aus, passt es wieder
auf loctoft kann ich leider nicht verzichten

mechanicus
04-12-2008, 15:28
okay
captionpaket ist raus, mein fehler
Warum raus? Nur ohne Option laden.
Hier das läuft bei mir:


\documentclass{article}

\usepackage{array,ragged2e,tabularx}
\usepackage{caption}
\captionsetup[subtable]{labelformat=simple,listofformat=subsimple}
\usepackage{tocloft}
\usepackage{subfig}
\setcounter{lotdepth}{2}
\renewcommand{\thesubtable}{Panel~\Alph{subtable}: }

\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\makeatother



\begin{document}
\listoftables
\section{foo}
Text
\begin{table}[ht]\centering
\subfloat[Teil1 \label{pa:teil1}]{%
\begin{tabular}{cc}
hallo & ICH \\
hallo & ICH \\
hallo & ICH \\
\end{tabular}}

\subfloat[Teil2 \label{pa:teil2}]{%
\begin{tabular}{cc}
hallo & DU \\
hallo & DU \\
hallo & DU \\
\end{tabular}}
\caption{Testtabelle}
\label{tab:testtabelle}
\end{table}

Hier der Text mit Referenz auf \ref{pa:teil1} und \ref{pa:teil2}.


\end{document}

Gruß
Marco

René Geppert
04-12-2008, 16:23
wow, vielen dank marco...mal wieder :D

also ist hier der stein der weisen, dass subfig NACH tocloft geladen werden muss

eine kurze rückfrage noch:

\renewcommand{\cftdotsep}{\cftnodots}
ist KOMA-spezifisch und wirkt sich deshalb nicht auf die subfloateinträge aus?

mechanicus
04-12-2008, 17:40
\renewcommand{\cftdotsep}{\cftnodots}
ist KOMA-spezifisch und wirkt sich deshalb nicht auf die subfloateinträge aus?
Ist das eine Frage oder eine Feststellung?:rolleyes:
Na wenn du keine Punkte haben willst:


\documentclass{article}

\usepackage{array,ragged2e,tabularx}
\usepackage{caption}
\captionsetup[subtable]{labelformat=simple,listofformat=subsimple}
\usepackage{tocloft}
\usepackage{subfig}
\setcounter{lotdepth}{2}
\renewcommand{\thesubtable}{Panel~\Alph{subtable}: }

\makeatletter
\renewcommand{\l@subtable}{\@dottedtocline{2}{5em} {5em}}
\renewcommand{\@dotsep}{2000}
\makeatother
\renewcommand{\cftdotsep}{\cftnodots}

\begin{document}
\listoftables
\section{foo}
Text
\begin{table}[ht]\centering
\subfloat[Teil1 \label{pa:teil1}]{%
\begin{tabular}{cc}
hallo & ICH \\
hallo & ICH \\
hallo & ICH \\
\end{tabular}}

\subfloat[Teil2 \label{pa:teil2}]{%
\begin{tabular}{cc}
hallo & DU \\
hallo & DU \\
hallo & DU \\
\end{tabular}}
\caption{Testtabelle}
\label{tab:testtabelle}
\end{table}

Hier der Text mit Referenz auf \ref{pa:teil1} und \ref{pa:teil2}.


\end{document}
machen wir sie weg.

Gruß
Marco