Anzeige:
Ergebnis 1 bis 6 von 6

Thema: newcommand für threeparttable

  1. #1
    Registrierter Benutzer Avatar von dodothegoof
    Registriert seit
    30.03.2005
    Ort
    Berlin
    Beiträge
    65

    newcommand für threeparttable

    Für das package threeparttable muss ich in rechtsbündigen Tabellen den Befehl für die Fußnote folgendermaßen schreiben:
    \TPTrlap{\tnote{a}}
    Zitat aus sty-Datei. \TPTrlap: A command with one argument, to make notes go out of the column, into the column separation (for right-aligning)

    Das funktioniert auch alles wunderbar, nur habe ich mir gedacht ob es möglich wäre, diese zwei Commands "TPTrlap" und "tnote" in einem Zusammenzufassen, so dass man \trnote{a} schreiben könnte. Das wäre weniger Schreibarbeit und übersichtlicher im Code.
    Mein erster Versuch
    \newcommand{\trnote{a}}{\TPTrlap{\tnote{a}}}
    scheint nicht zu funktionieren, auch hätte ich gern, dass man statt dem "a" jeden beliebigen Wert einsetzten kann, oder zumindest a,b,c,d,usw.

    Gibt es eine Lösung für das Problem?

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    \newcommand{\trnote}[1]{\TPTrlap{\tnote{#1}}}

    mit Aufruf: \trnote{bla}

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer Avatar von dodothegoof
    Registriert seit
    30.03.2005
    Ort
    Berlin
    Beiträge
    65
    Danke, hat geklappt

  4. #4
    Registrierter Benutzer
    Registriert seit
    10.02.2009
    Ort
    Bern
    Beiträge
    19

    apa-style mit threeparttable

    Hallo zusammen

    Ich möchte meine Tabellen mit threeparttable auf APA-Norm bringen. Diese umfasst drei verschiedene Fussnoten (siehe Code). Es gelingt mir jedoch nicht, das gewünschte Resultat zu erreichen.

    1. Die Fussnoten sind zu gross, da ich bereits die Tabelle mit \footnotesize ausgebe. Notfalls würde ich das halt so belassen.

    2. Die Fussnoten für einzelne Zellen (im Code a und b) sollten in den Zellen selbst tiefgestellt, in der Fussnote aber hochgestellt sein. Letzteres sollte das Paket eigentlich selbst machen, geschieht aber nicht. Mit dem Befehl: \newcommand{\tbnote}[1]{\textsubscript{\tnote{#1}}}, habe ich ersteres versucht zu beheben. Das Ergebnis sieht aber schrecklich aus.

    3. Das Plus in der Fussnote sollte hochgestellt sein, beim Mal sieht es gut aus, da es halt so ausgegeben wird.

    4. Zu guter Letzt bricht der Text in der Fusszeile nicht um. Manuell scheint das eine elende Flickerei zu geben.

    Hier mein Minimalbeispiel.

    Code:
    \documentclass[a4paper,fontsize=12pt,captions=nooneline]{scrreprt}
    %Deutsche Sprache wird verwendet
    \usepackage[ngerman]{babel}
    %inputenc für die Erkennung von Umlauten
    \usepackage[latin1]{inputenc} %Option evtl. auf ansinew ändern
    %Von 128 Zeichen auf 256 Zeichen
    \usepackage[T1]{fontenc}
    %Definieren der deutschen Anführungszeichen
    \usepackage[babel,german=quotes]{csquotes}
    
    
    %Für mathematische Formeln
    \usepackage{amsmath}
    
    %Für Tabellen
    \usepackage{booktabs}
    \usepackage{threeparttable}
    \newcommand{\tbnote}[1]{\textsubscript{\tnote{#1}}}
    
    %----------------------------------------------------------------------------------------------------------
    \begin{document}
    
    \begin{table}
    	\centering
    	\begin{threeparttable}
    	\caption{Vererbbarkeit motorischer Eigenschaften ; $h^{2}$ ist ein Populations-Mittelwert)}
    	\label{tbl:Vererbbarkeit motorischer Eigenschaften}
    	\footnotesize\sffamily
    		\begin{tabular}{@{}lp{4cm}p{4cm}@{}}
    			\addlinespace
    			\toprule
    			\textbf{Merkmal}& \textbf{Allgemeine genetische Kontrolle} & \textbf{Annäherung an den Mittelwert von $h^{2}$ } \\
    			\midrule[1\heavyrulewidth]
    			Alaktazide anaerobe Kapazität & Stark & 70-80\,Prozent \\
    			\midrule
    			Laktazide anaerobe Kapazität & Mittel & \verb=~=\,50\,Prozent \\
    			\midrule
    			Maximales Blutlaktat & Hoch & \verb=~=\,70\,Prozent \\
    			\midrule
    			Aerobe Kapazität ($VO_2$max) & Niedrig-mittel & \verb=~=\,30\,Prozent \\
    			\midrule
    			Maximale isometrische Kraft & Niedrig & 20-20\,Prozent \\
    			\midrule
    			Kraftausdauer & Mittel & 40-50\,Prozent \\
    			\midrule
    			Reaktionszeit & Niedrig & 20-30\,Prozent \\
    			\midrule
    			Koordination d. Armbewegung & Mittel & \verb=~=\,40\,Prozent \\
    			\midrule
    			Räumliche Orientierung & Hoch & \verb=~=\,60\,Prozent \\
    			\midrule
    			Gleichgewicht & Mittel & \verb=~=\,40\,Prozent \\
    			\midrule
    			Bewegungsfrequenz\tbnote{a} & Mittel\tnote{b} & 40-50\,Prozent \\
    			\midrule
    			Beweglichkeit\tnote{*} & Mittel\tnote{**} & \verb=~=\,40\,Prozent\tnote{+} \\
    			\bottomrule
    		\end{tabular}
    		
    		%Fussnoten für allg. Bemerkungen oder um Abkürzungen zu erklären
    		\begin{tablenotes}[flushleft,online]
    		\item[\textit{Note:} Ist so richtig. Normalgross und kursiv. Was wäre wenn hier wohl ganz viel stehen würde, wie erscheint der Umbruch?!? Ja, da kommt leider kein Umbruch!] 
    		
    		%Fussnoten für Bemerkungen zu einzelnen Zellen
    		\end{tablenotes}
    		\begin{tablenotes}[normal,flushleft]
    			\item{a} Dieses a sollte hochgestellt sein.
    		\end{tablenotes}
    		
    		%Fussnoten betreffend Signifikanzniveau. Das Pluszeichen verwendet man bei zweiseitigen Tests, das *-Zeichen bei einseitigen
    		\begin{tablenotes}[flushleft,para]
    			\item{*}\textit{p}\,<\,0.05,\item{**}\textit{p}\,<\,0.01,\item{+} (Dieses Plus sollte auch hochgestellt sein)\textit{p}\,<\,0.01
    		\end{tablenotes}
    		
    		\end{threeparttable}
    \end{table}
    
    \end{document}
    Ich habe die threeparttable Beschreibung gelesen (http://mirror.switch.ch/ftp/mirror/t...eparttable.sty), aber das Neubefehlen ist mir noch etwas befremdend. Mit \makelabel sollten sich doch zumindest die Fussnoten untehalb der Tabelle machen lassen. Aber wie verwendet man den Befehl.

    Um Ünterstützung bin ich sehr dankbar.

    Freundliche Grüsse

    Florian

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.02.2009
    Ort
    Bern
    Beiträge
    19
    Hallo zusammen

    Ich konnte folgende Probleme lösen.

    1. Mit \scriptsize lässt sich die Grösse der Fussnoten einfach anpassen.

    Code:
    %Fussnoten für allg. Bemerkungen oder um Abkürzungen zu erklären
    		\begin{tablenotes}[flushleft,online]
    		\item[\scriptsize{\textit{Note:}}] \scriptsize{Monat 1 entspricht gemäss dem Betrachteten Intervall dem 05.2001.}
    		\end{tablenotes}
    3. Ich habe bei \item[] geschweifte Klammern gebraucht, dann funktionierts natürlich nicht mit den hochgestellten Fussnoten. Falls wie bei mir die online-Option nicht funktionieren sollte, kann man einfach \item{} gebrauchen.

    Für 2. und 4. Problem habe ich noch keine Lösung gefunden. Habe versucht einen neuen Befehl zu definieren im threeparttble.sty. Naja, da fehlen wohl grundlegende Kenntnisse.

    Gibst da jemand, der solche Sachen in threeparttable schon mal angepasst?

    Gruss Florian
    Geändert von Sportflo (30-07-2009 um 17:39 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.02.2009
    Ort
    Bern
    Beiträge
    19

    Tabellen Fussnoten nach APA

    Hallo zusammen

    Ich habe fast alle Probleme gelöst. Ich habe dafür in der threeparttable.sty herumgebastelt (ob das wohl legal ist?).

    1. Ich habe eine neue Option für die allgemeine Fussnote (Note.) [apaonline] definiert. Man muss dazu folgende Ergänzung im threeparttable.sty vornehmen.

    Code:
    \def\TPT@opt@online{%
     \def\TPTnoteSettings{\leftmargin1.5em \labelwidth1em \labelsep.5em\relax}%
     \def\TPTnoteLabel##1{\TPTtagStyle{##1}\hfil}%
    }
    \DeclareOption{online}{\g@addto@macro\TPT@defaults{\TPT@opt@online}}\def\TPT@opt@apaonline{%
     \def\TPTnoteSettings{\labelsep.2em \leftmargin\z@ \labelwidth\z@}%
     \def\TPTnoteLabel##1{\TPTtagStyle{##1}\hfil}%
    \rightskip\z@skip \leftskip\z@skip}
    \DeclareOption{apaonline}{\g@addto@macro\TPT@defaults{\TPT@opt@apaonline}} \def\TPT@opt@flushleft{%
     \def\TPTnoteSettings
    Also zwischen online und flushleft den roten Code einfügen.

    2. Für die tiefgestellten Fussnoten in der Tabelle selbst (specific notes) habe ich einen neuen Befehl
    Code:
    \tsubnote{a}
    definiert. Man muss dazu folgende Ergänzung im threeparttable.sty vornehmen.

    Code:
    \let\TPTrlap\rlap
    \def\tnote#1{\protect\TPToverlap{\textsuperscript{\TPTtagStyle{#1}}}}% 
    
    \let\TPTrlap\rlap
    \def\tsubnote#1{\protect\TPToverlap{\textsubscript{\TPTtagStyle{#1}}}}% 
    
    \def\TPTtagStyle#1{#1}
    
    \def\TPTnoteSettings{%
     \setlength\leftmargin{1.5em}%
     \setlength\labelwidth{.5em}%
    Also nach der tnote-Definierung den roten Code für die Definition von tsubnote einfügen.

    3. Das so abgeänderte threeparttable.sty abspeichern (bei mir ist dies unter C:\Program Files (x86)\MiKTeX 2.7\tex\latex\ltxmisc gespeichert). Danach muss man MiKTeX refreshen. Also im Startmenü unter MiKTeX --> Settings. Refresh FNDB und Update Formats drücken.

    4. Nun noch ein lauffähiges Minimalbeispiel. Die Tabelle ist ein bisschen gebastelt. Aber das ist nicht gerade einfach in Latex, finde ich. Die verschiedenen Fussnoten (\tsubnote{a} und \tnote{*}) können auch gemeinsam verwendet werden. Für * kann man auch $\star$ gebrauchen.

    Code:
    \documentclass[a4paper,fontsize=12pt,captions=nooneline]{scrreprt}
    
    %Hier werden alle benötigten Package's aufgeführt
    
    
    %Deutsche Sprache wird verwendet
    \usepackage[ngerman]{babel}
    %inputenc für die Erkennung von Umlauten
    \usepackage[latin1]{inputenc} %Option evtl. auf ansinew ändern
    %Von 128 Zeichen auf 256 Zeichen
    \usepackage[T1]{fontenc}
    %Definieren der deutschen Anführungszeichen
    \usepackage[babel,german=quotes]{csquotes}
    
    
    %Für mathematische Formeln
    \usepackage{amsmath}
    
    %Für Tabellen
    \usepackage{booktabs}
    \usepackage[flushleft]{threeparttable}
    
    
    
    
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    \begin{document}
    
    %Formatierung der Tabellenüberschrift und Unterschrift
    \setkomafont{caption}{\sffamily}
    \addtokomafont{caption}{\footnotesize}
    \setkomafont{captionlabel}{\sffamily\bfseries\itshape}
    \addtokomafont{captionlabel}{\footnotesize}
    
    \begin{table}
    	\centering
    	\begin{threeparttable}
    	\caption{Geburtsmonatsverteilung Fall3}
    	\label{tbl:GeburtsmonatsverteilungBernFall3}
    	\footnotesize\sffamily
    		 \begin{tabular}{@{}lccccc@{}}
    	  %\addlinespace
    		\toprule
    		            & \multicolumn{4}{c}{Geburtsmonat} &  \\
    		\cline{2-5}\addlinespace 
    		Selektion 	& 1\hspace{0.8cm}2\hspace{0.8cm}3\hspace{0.3cm} & 4\hspace{0.8cm}5\hspace{0.8cm}6\hspace{0.3cm} & 7\hspace{0.8cm}8\hspace{0.8cm}9\hspace{0.3cm} & 10\hspace{0.6cm}11\hspace{0.6cm}12 & $\chi^2$\\
    		\midrule[1\heavyrulewidth]
    		Selektionierte\tsubnote{a} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{6\hspace{0.8cm}3\hspace{0.8cm}2}_{\text{\scriptsize{\textit{N}\,=\,11 (20.00\%)}}}$\hspace{0.3cm} & $\underbrace{4\hspace{0.8cm}7\hspace{0.8cm}1}_{\text{\scriptsize{\textit{N}\,=\,12 (21.82\%)}}}$\hspace{0.3cm} & $\underbrace{3\hspace{0.8cm}6\hspace{0.8cm}3}_{\text{\scriptsize{\textit{N}\,=\,12 (21.82\%)}}}$ & \textit{p}\,<\,0.01 \\
    		\midrule
    		Vorselektionierte\tsubnote{b} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$ & \textit{p}\,<\,0.01\tsubnote{a}\tnote{*} \\
    		\midrule
    		Nicht-Selektionierte & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$\hspace{0.3cm} & $\underbrace{5\hspace{0.8cm}6\hspace{0.8cm}9}_{\text{\scriptsize{\textit{N}\,=\,20 (36.36\%)}}}$ & \textit{p}\,<\,0.01 \\
    		\bottomrule
    	\end{tabular}
    		
    		%Fussnoten für allg. Bemerkungen oder um Abkürzungen zu erklären
    		\begin{tablenotes}[apaonline]
    		\item[\scriptsize{\textit{Note.}}] \scriptsize{Monat 1 entspricht gemäss dem betrachteten Intervall dem 05.2001. Das schöne ist, dass jetzt plötzlich der Umbruch automatisch funktioniert. Also kann man hier so viel schreiben wie man will.} 
    		\end{tablenotes}
    		\begin{tablenotes}[para]
    			\item[a] \scriptsize{Dieses a sollte in der Tabelle tiefgestellt sein. Dazu müsste man wohl ein eigenen tnote command generieren. Z.B. tsubnote in Anspielung an.}\item[b] \scriptsize{Diese specific notes müssen auch nacheinander aufgeführt sein.}
    		\end{tablenotes}
    		\begin{tablenotes}[para]
    			\item[*]\scriptsize{\textit{p}\,<\,0.05} \item[**]\scriptsize{\textit{p}\,<\,0.01} \item[+] \scriptsize{\textit{p}\,<\,0.05} \item[++]\scriptsize{\textit{p}\,<\,0.01}
    		\end{tablenotes}
    		
    		\end{threeparttable}
    \end{table}
    
    \end{document}
    Ein letzter Hinweis. Im threeparttable.sty weist der Autor darauf hin, dass solche Flickereien nicht ganz toll sind.

    Note that mixing options with redefinitions is unlikely
    % to work smoothly. Please submit your redefinitions to be used as
    % options in future versions!
    Ich hoffe, meine Beschreibung ist einigermassen verständlich. Es empfiehlt sich vielleicht, eine Sicherheitskopie von threeparttable.sty anzulegen, oder dem abgeänderten Dokument einen anderen Namen zu gegeben (muss dann beim Aufruf des Package auch so angegeben werden). [Letztere Variante erscheint nach einem allgemeinen Update von MikTeX (am 28.8.2009) sinnvoller. Beim Update wird die threeparttable.sty ebenfalls upgedatet, d.h. alle manuellen Änderungen gehen verloren. Es lohnt sich also die abgeänderete threepartable.sty umzubenennen, Z.B. threeparttableapa.sty, dann wird sie beim update vielleicht nicht überschrieben. Den Versuch unterlasse ich lieber bis ich meine Arbeit abgegeben habe. Zudem kann so beliebig zwischen den beiden Varianten gewechselt werden. Für Anfänger wie ich einer war bis vor kurzem: entweder das original package laden \usepackage{threeparttable} oder das abgeänderte \usepackage{threeparttableapa}.]

    Puhhh! Gruess und danke APA-Style

    P.S.: Sehr wahrscheinlich gäbe es einen viel eleganteren Weg mittels newcommand.
    Geändert von Sportflo (02-09-2009 um 21:37 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •