Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Tabelleneinträge ausrichten; dcolunm :(

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62

    Tabelleneinträge ausrichten; dcolunm :(

    Hallo

    Ich bin noch eher ein Latex Anfänger und schaffe es einfach nicht die Zahlen in meiner Tabelle richtig auszurichten .
    Mit dem column package sollte ich Zahlen ja z.B. am Komma problemlos ausrichten könne. Ich verstehe leider die
    column documentation nicht... Probleme machen mir so Zeilen wie:

    "\newcolumntype{d}[1]{D{.}{\cdot}{#1}}" oder
    "\newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}"

    mir ist schon klar, dass ich damit einen neuen Spaltentyp d definiere, allerdings hört es dann auch schon auf.

    Ich würde gern die erste Spalte meiner Tabelle an der "einer Dezimalen" und die anderen Spalten am Komma ausrichten.

    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage[small, hang, nooneline]{caption}
    \usepackage{colortbl}
    \usepackage{array}
    \usepackage{multirow}
    \usepackage{units}
    \usepackage{dcolumn}
    
    \begin{document}
    
    \newcolumntype{d}[1]{D{.}{\cdot}{#1}}
    
    \begin{table}[h]
    \caption{Messtabelle 705er Modul mit Schweißkraft \unit[50]{N}}
    \label{tab: TLM 50N}
    \extrarowheight10pt 
    \begin{tabular}{p{0.24\textwidth}p{0.15\textwidth}p{0.15\textwidth}p{0.15\textwidth}p{0.15\textwidth}} \hline
    \multirow{2}{*}{\textbf{Abstand}}&\multicolumn{4}{c}{\textbf{Spannungspotential [mV]}}\\ \cline{2-5}
    &\textcolor{red}{o}ben&\textcolor{red}{u}nten&\textcolor{red}{o}ben&\textcolor{red}{u}nten\\ \hline
    \unit[3]{mm}&3,98&3,96&3,38&3,39\\ \hline
    \unit[8]{mm}&6,36&6,34&6,33&6,35\\ \hline
    \unit[13]{mm}&10,97&10,87&9,19&9,21\\ \hline
    \unit[18]{mm}&13,77&13,68&12,76&12,81\\ \hline
    \unit[23]{mm}&14,74&14,75&15,41&15,42\\ \hline
    \end{tabular}
    \end{table}
    
    \end{document}
    wäre super wenn mir da jemand helfen könnte.

    Danke JoSch

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    schau dir mal das siunitx packet an. es beinhaltet einen neuen spaltentyp 'S' der praktisch dinge macht die auch dcolumn macht.
    für meinen geschmackt geht es aber mit siunitx viel einfacher. die dcolumn doku fand ich auch immer etwas kryptisch

    gruss
    Mein Ball ist umgefallen

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62
    moin,

    Danke für den Tipp mit siunitx. Also jetzt bekomme ich die Einträge gut ausgerichtet,
    aber ich kann meine Spaltenbreite nicht mehr beeinflussen. Gibt es eine Möglichkeit für
    die S Spalte eine Breite festzulegen? Kann ich die S spalte irgendwie in eine tabularx Tabelle einbauen?

    meine aktueller code:

    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage[small, hang, nooneline]{caption}
    \usepackage{colortbl}
    \usepackage{array}
    \usepackage{multirow}
    \usepackage[emulate=units]{siunitx}
    \usepackage{tabularx}
    \usepackage{booktabs}
    
    
    \begin{document}
    
    \begin{table}[h]
    \caption{Messtabelle 705er Modul mit Schweißkraft \unit[50]{N}}
    \label{tab: TLM 50N}
    \extrarowheight10pt 
    \begin{tabular}{
    	S[tabnumalign=centre,tabformat=2.0]
    	S[tabnumalign=right,tabformat=2.2,decimalsymbol=comma]
    	S[tabnumalign=right,tabformat=2.2,decimalsymbol=comma]
    	S[tabnumalign=right,tabformat=2.2,decimalsymbol=comma]
    	S[tabnumalign=right,tabformat=2.2,decimalsymbol=comma]}
    \toprule
    \textbf{Abstand}&\multicolumn{4}{c}{\textbf{Spannungspotential [mV]}}\\
    \unit[]{mm}&\textcolor{red}{o}ben&\textcolor{red}{u}nten&\textcolor{red}{o}ben&\textcolor{red}{u}nten\\ 
    \midrule
    3&3,98&3,96&3,38&3,39\\ 
    8&6,36&6,34&6,33&6,35\\ 
    13&10,97&10,87&9,19&9,21\\ 
    18&13,77&13,68&12,76&12,81\\ 
    23&14,74&14,75&15,41&15,42\\ 
    \bottomrule
    \end{tabular}
    \end{table}
    
    \end{document}
    Viele Grüße,
    Josch

  4. #4
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    ich würde sagen die spalten werden eben so breit wie die nummer es benötigt. aber du kannst tabularx und den X-spaltentyp ja z.b. in der multicolumn die du für die erste zeile verwendest einbauen. aber z.b. in deinem beispiel würde das kein sinn machen da die tabelle recht klein und kompakt ist. in dieser multicolumn umgebung könntest du natürlich auch eine p{}-spalte verwenden. das hat auch mal der autor von siunitx vorgeschlagen.

    gruss
    Mein Ball ist umgefallen

  5. #5
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62
    n abend,

    leider beist sich das siunitx package mit dem unit package... und da ich in meinem kompletten Dokument
    Einheiten mit dem unit package gemacht habe ist mir das jetzt etwas zu aufwändig alles zu änder

    kann mir vielleicht jemand eine Lösung mit dcolunm anbieten? Oder gibt es ein gutes Beispiel für eine
    dcolumn Tabelle (am besten mit Erklärung)

    Danke Josch

  6. #6
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    vielleicht ist das das was du suchst?

    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage[small, hang, nooneline]{caption}
    \usepackage{colortbl}
    \usepackage{array}
    \usepackage{multirow}
    \usepackage{units}
    \usepackage{dcolumn}
    
    \begin{document}
    \newcolumntype{Z}{D{,}{,}{2}}
    \newcolumntype{Y}{D{,}{,}{-1}}
    
    
    \begin{table}[h]
    \caption{Messtabelle 705er Modul mit Schweißkraft \unit[50]{N}}
    \label{tab: TLM 50N}
    \extrarowheight10pt 
    \begin{tabular}{Y Z Z Z Z} \hline
    \multirow{2}{*}{\textbf{Abstand}}&\multicolumn{4}{c}{\textbf{Spannungspotential [mV]}}\\ \cline{2-5}
    &\multicolumn{1}{c}{\textcolor{red}{o}ben}&\multicolumn{1}{c}{\textcolor{red}{u}nten}&\multicolumn{1}{c}{\textcolor{red}{o}ben}&\multicolumn{1}{c}{\textcolor{red}{u}nten}\\ \hline
    \unit[3]{mm}&3,98&3,96&3,38&3,39\\ \hline
    \unit[8]{mm}&6,36&6,34&6,33&6,35\\ \hline
    \unit[13]{mm}&10,97&10,87&9,19&9,21\\ \hline
    \unit[18]{mm}&13,77&13,68&12,76&12,81\\ \hline
    \unit[23]{mm}&14,74&14,75&15,41&15,42\\ \hline
    \end{tabular}
    \end{table}
    
    \end{document}
    kleine erklärung

    Code:
    \newcolumntype{Z}{D{,}{,}{2}}
    • Z= name des neuen spaltentyps
    • D ist der von dcolumn bereitgestellte spaltentyp
    • , nr 1: gibt an was für ein dezimaltrenner in der tex datei verwendet wird
    • , nr 2: gibt an als was für ein zeichen der dezimaltrenner dargestellt wird
    • 2: gibt die anzahl der dezimalstellen an
    Mein Ball ist umgefallen

  7. #7
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von J0Sch Beitrag anzeigen
    leider beist sich das siunitx package mit dem unit package...
    selbstverständlich `beißen' sich diese Pakete, wollen sich beide doch um `ihre' Einheiten kümmern ...
    BTW: warum läßt Du nicht einfach das units-Paket weg? In Deinem hiesigen Beitrag (#3) läßt Du bereits das siunitx-Paket `units' emulieren ...

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  8. #8
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62
    moin,

    danke bobmalaria genau so eine Erklärung hab ich gebraucht!
    @rais ich habe halt in meiner ganzen Arbeit das unit package genutzt, und wenn ich das jetzt weglasse muss ich alle Einheiten ändern oder kann das siunitx auch mit \unit[50]{${kg}over{m^3}$} was anfangen? Das würde doch eher was in die Richtung \SI{50}{\kilogram\per\quibicmeter} benötigen...

    Jetzt habe ich nur noch ein kleines Problem mit der Spaltenbreite... ich versteh nicht wirklich wie ich mit \multicolum etwas an der Spaltenart ädern kann.
    Also mit \multicolum{2}{c}{text} sage ich ja nur, dass 2 Spalten zu einer gemacht werden, dass diese Zentriert sein soll und den Inhalt "text" besitzt. Ich ändere doch nichts an der Art meiner Spalten wenn es vorher zwei d Spalten waren, sind sie es immer noch!? Oder habe ich das was nicht verstanden?


    Grüße Josch

  9. #9
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    also das was du hier angibst ist dein spaltentyp

    Code:
    \begin{tabular}{lcr}
    z.b. erste spalte l, zweite c, dritte r

    möchte ich jetzt aber in meiner ersten zeile alles zentriert haben müsste ich schreiben.

    Code:
    \begin{tabular}{lcr}
    \multicolumn{1}{c}{Inhalt} & Ich bin schon c & \multicolumn{1}{c}{Inhalt}
    damit wird in EINER zeile die globale spaltendefinition überschrieben, gilt aber weiter in allen folgenden zeilen
    Mein Ball ist umgefallen

  10. #10
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62
    moin,

    natürlich c steht ja nicht für zentriert sonder ist ein Spaltentyp...
    dann könnte ich theoretisch über \multicolumn{1}{p{3cm}}{Inhalt} meine d Spalte in der breite varieren. Leider ist die p-Spalte nicht zentriert und mein "oben" hängt dann am linken Rand während die Zahlen zentriert am Komma ausgerichtet sind
    Gibt es einen Spaltentyp der zentriert ist und bei dem ich die breite variabel wählen kann?

    Idel wäre, wenn ich die Spalten in eine tabularx tabelle einbauen könnte. Ich habe ein bisschen im Forum gesucht und ein Beispiel gefunden:
    http://www.mrunix.de/forums/showthre...hlight=dcolumn

    Leider verstehe ich die Spaltendefinition nicht

    \newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}

    Grüße und vielen Dank für die bisherige Hilfe
    Josch

Lesezeichen

Berechtigungen

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