Tabelle: nur eine Spalte vertikal nach unten ausrichten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tabelle: nur eine Spalte vertikal nach unten ausrichten

von anouky » Mo 23. Jun 2014, 23:01

Ah okay, ich hatte es aber eh an meinem Verzeichnis getestet. Aber da lag es an dem nicht eingebundenen Package. Jetzt sieht es super aus.

Zusammenfassung:
1. eine Zeile tiefer schieben über
- \vspace{}
- \raisebox{}{}
- \newline <- Favorit
2. Tabellenbreite über Subtraktion von \tabcolsep in entsprechender Anzahl korrigieren
3. Ausrichten einer Parbox über Package ragged2e

Danke an alle, jetzt bin ich sehr zu frieden und habe es sich gleich noch in andere Tabellen eingearbeitet!

Schönen Abend noch!
LG

von esdd » Mo 23. Jun 2014, 22:47

In deinem Beispiel oben hast du ein \begin{longtable} zu viel. Das verursacht die Fehler.

Du kannst mit @{} den nicht benötigten Abstand links von der ersten Spalte und rechts von der letzten Spalte verhindern. Dann musst du nur noch insgesamt 4 \tabcolsep abziehen, damit die Tabelle die Textbreite hat.

Für das linksbündig Ausrichten würde ich ragged2e laden und dann \RaggedRight verwenden:
\documentclass [a4paper,12pt]{report} 
\usepackage {ngerman} 
\usepackage [T1]{fontenc} 
\usepackage{array} 
\usepackage{longtable} 
\usepackage{units} 

\usepackage[utf8]{inputenc}
\usepackage{ragged2e}

\begin{document} 
\begin{longtable}{
  @{}p{\dimexpr0.15\textwidth-2\tabcolsep\relax}
  >{\RaggedRight}p{0.7\textwidth}
  p{\dimexpr0.15\textwidth-2\tabcolsep\relax}@{}
} 
   Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead 
   $T_d$ 
     &Tangentialkraft auf Höhe 
     &\unit{N}\\ 
   $T_{dx}$ 
     &Tangentialkraft auf Höhe der Sohlfläche 
     & \unit{N}\\ 
   $T_{dy}$ 
     &Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert 
     &\newline\unit{N}\\ 
   $\beta$ 
     &horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus 
     &\newline\unit{N}\\ 
\end{longtable} 
\end {document}
Gruß
Elke

von anouky » Mo 23. Jun 2014, 22:25

Ich hab mir grad mal die Tabellenbreite über eine \hline sichtbargemacht und die ist ja tatsächlich deutlich breiter :)
Habe jetzt einfach die rechte Spalte so angepasst, dass die \hline mit der Kopfzeilen-Linie endet. Denn die mittlere würde ich ungern noch schmaler machen, damit nicht noch mehr Einträge zweizeilig werden. Und die rechte Spalte war breit genug, um da das Überschüssige abschneiden zu können.

Danke für den Hinweis!
LG

PS: Ich fiel grad aus allen Wolken. Durch das ganze Gelese in Forenbeiträgen vorher hab ich das einfachste übersehen. Ein \newline in den einzelnen Zellen hätte wirklich von Anfang an alle Probleme gelöst, wie es aussieht. Manno mann :oops:

von anouky » Mo 23. Jun 2014, 22:18

Wüsstest du denn eine Möglichkeit bei der ich nicht von Hand an die Zellen ranmüsste?
Ja, das mit den Leerzeichen hab ich beim Einfügen der Klammern für den \raisebox-Befehl auch schon entdeckt. Da ging glatt ein Lämpchen auf :idea:
Außerdem ist deine Tabelle zu breit, da links und rechts von jeder Spalte noch \tabcolsep eingefügt wird.
Okay, von der Sache her verstehe ich das mit tabcolsep. Aber wieso sind liegt die Tabelle dann noch komplett unter der Linie der Kopfzeile? Die entspricht doch der Textbreite, oder nicht?
Vermutlich wäre es auch sinnvoll die mittlere Spalte nicht im Blocksatz zu setzen, sondern linksbündig.
Da bräuchte ich dann noch mal einen Hinweis, wie ich das bei der parbox (dafür steht doch das p, oder?) mache. Ist das die Geschichte mit
 >{\raggedright}
vor der Spaltendefinition als Parbox?

Insgesamt dann also so (ohne die Breitenabpassung).
\documentclass [a4paper,12pt]{report} 
\usepackage {ngerman} 
\usepackage [T1]{fontenc} 
\usepackage{array} 
\usepackage{longtable} 
\usepackage{units} 

\usepackage[utf8]{inputenc} 

\begin{document} 
\begin{longtable}
\begin{longtable}{p{0.15\textwidth} >{\raggedright}p{0.70\textwidth} p{0.15\textwidth}} 
 Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead 
      $T_d$         &     Tangentialkraft auf Höhe der Sohlfläche, Bemessungswert   &  \unit{N}\\
      $T_{dx}$         &     Tangentialkraft auf Höhe der Sohlfläche in x-Richtung, Bemessungswert    &  \raisebox{-1\baselineskip}{\unit{N}}\\
      $T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    & \raisebox{-1\baselineskip}{\unit{N}}\\
\end{longtable} 
\end {document} 
 
Da schmeißt er mir aber ganz viele Fehler aus, auch wenn ich die mittlere Spalte mal auf Verdacht auf 0.65\textwidth verkleinere.

von esdd » Mo 23. Jun 2014, 21:46

Wenn du in den Zellen schon von Hand eingreifst, dann kannst du doch auch gleich für alles p-Spalten nehmen und wo nötig eine Leerzeile mit \newline einfügen. Außerdem ist deine Tabelle zu breit, da links und rechts von jeder Spalte noch \tabcolsep eingefügt wird.
\documentclass [a4paper,12pt]{report} 
\usepackage {ngerman} 
\usepackage [T1]{fontenc}
\usepackage{array}
\usepackage{longtable} 
\usepackage{units}

\usepackage[utf8]{inputenc}

\begin{document} 
\begin{longtable}{
  p{\dimexpr0.15\textwidth-2\tabcolsep\relax}
  p{\dimexpr0.7\textwidth-2\tabcolsep\relax}
  p{\dimexpr0.15\textwidth-2\tabcolsep\relax}
} 
  Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead 
  $T_d$
    &Tangentialkraft auf Höhe
    &\unit{N}\\ 
  $T_{dx}$
    &Tangentialkraft auf Höhe der Sohlfläche
    & \unit{N}\\ 
  $T_{dy}$
    &Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert
    &\newline\unit{N}\\ 
  $\beta$
    &horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus
    &\newline\unit{N}\\ 
\end{longtable} 
\end {document}
Vermutlich wäre es auch sinnvoll die mittlere Spalte nicht im Blocksatz zu setzen, sondern linksbündig.

Gruß
Elke

PS: Die Einrückungen im Code von prankenandy kommen von den Leerzeichen.

von anouky » Mo 23. Jun 2014, 21:34

Es wäre auch zu schön gewesen :(
Ich habe dein Beispiel unter mein Verzeichnis gepackt und einmal gesetzt. Und es ging, die Einheit steht neben der untere Zeile.
Nun habe ich in meinem Verzeichnis auch einfach \vspace durch \raisebox ersetzt und da tut sich aber gar nichts. Ich kann aber in deinem Minimalbeispiel auch nicht erkennen, dass du noch was anderes geändert hast. Oder täusche ich mich?

Wie kommt es, dass hier 1.0 reicht und bei \vspace 1,3 benötigt wird? Beide werden ja auf baselinskip bezogen.

LG

Edit: Erst denken, dann schreiben -.- Ich habe den Fehler selbst gefunden, ich sag nur Klammern :wink:

von anouky » Mo 23. Jun 2014, 21:17

Das sieht zumindest genauso aus, wie es sein soll!
Vielen Dank!
Obwohl ich sehr gerne mit LaTeX arbeite fehlt mir in Situationen wie diesen einfach der Überblick, was so an Befehlen zur Verfügung steht. Kommt wohl auch daher, dass ich mir alles so stückweise nebenbei selbst angelesen habe, was ich weiß :wink:

Also, ich werde das erst mal so machen.
Wenn jemand noch ne richtig professionelle Lösung hat, die das ganze über einen Befehl in der Spaltendefinition löst, immer her damit :P

von prankenandi » Mo 23. Jun 2014, 20:58

Hallo,

ich sehe was du meinst.
Die Einheit selbst steht nicht direkt unter dem Wort "Einheit".
Ich bin nun auch kein Latex-Pro, sondern probiere einfach viel rum. Daher, probier mal das hier:

Als Alternative anstatt \vspace mit \raisebox. Hierbei wird es nicht nach rechts gerückt.
Beide Möglichkeiten einmal untereinander, das man es besser sieht:
\documentclass [a4paper,pdftex,12pt]{report}
\usepackage {ngerman}
\usepackage [T1]{fontenc}
\usepackage {array}
\usepackage{longtable}
\usepackage{units}  

\begin{document}
\begin{longtable}{p{0.15\textwidth} p{0.70\textwidth} b{0.15\textwidth}}
 Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead
$T_d$         &     Tangentialkraft auf Höhe  & \unit{N}\\
$T_{dx}$         &     Tangentialkraft auf Höhe der Sohlfläche  & \vspace{-1.3\baselineskip} \unit{N}\\
$T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    & \vspace{-1.3\baselineskip} \unit{N}\\
$\beta$       &    horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus  & \vspace{-1.3\baselineskip} \unit{N}\\
\end{longtable}
\hrule
\begin{longtable}{p{0.15\textwidth} p{0.70\textwidth} b{0.15\textwidth}}
 Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead
$T_d$         &     Tangentialkraft auf Höhe  & \unit{N}\\
$T_{dx}$         &     Tangentialkraft auf Höhe der Sohlfläche  & \raisebox{-0\baselineskip}{\unit{N}}\\
$T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    & \raisebox{-1\baselineskip}{\unit{N}}\\
$\beta$       &    horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus  & \raisebox{-1\baselineskip}{\unit{N}}\\
\end{longtable}
\end {document} 
MfG

von anouky » Mo 23. Jun 2014, 19:37

So, habs jetzt noch mal mit verschiedenen Faktoren vor \baselineskip probiert. Also mit
\vspace{-1.3\baselineskip}
hat es die richtige Höhe, aber es spring halt son kleines Stück nach rechts raus aus. Da mehrfach die gleichen Einheiten untereinander stehen, sieht es halt blöd aus, wenn es in den mehrzeiligen Einträgen son Stück raushüpft.
\documentclass [a4paper,pdftex,12pt]{report} 
\usepackage {ngerman} 
\usepackage [T1]{fontenc} 
\usepackage {array} 
\usepackage{longtable} 
\usepackage{units}   

\begin{document} 
\chapter*{Variablenverzeichnis} 
\markboth{Variablenverzeichnis}{Variablenverzeichnis} 
\begin{longtable}{p{0.15\textwidth} p{0.70\textwidth} b{0.15\textwidth}} 
 Variable  &  Bedeutung  & Einheit\\ \vspace{0,3cm} \endhead 
$T_d$         &     Tangentialkraft auf Höhe der Sohlfläche, Bemessungswert    
 \unit{N}\\ 
$T_{dx}$         &     Tangentialkraft auf Höhe der Sohlfläche in x-Richtung, Bemessungswert    & \vspace{-1.3\baselineskip} \unit{N}\\ 
$T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    & \vspace{-1.3\baselineskip} \unit{N}\\ 
$\beta$       &    horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus  & \vspace{-1.3\baselineskip} \unit{°}\\ 
\end{longtable} 
\end {document} 

von anouky » Mo 23. Jun 2014, 16:45

Danke, aber das passt leider nicht.
Dann sitzt es noch zu weit oben und wird komischer Weise auch ganz leicht nach rechts rausgeschoben.
Außerdem ist mein Variablenverzeichnis 3 Seiten lang, auch wenn nicht jeder Eintrag mehr als eine Zeile benötigt.

Und es sieht halt irgendwie ungleichmäßig aus :(

PS: Entschuldigung fürs mehrfache editieren. Ich bin ganz durch den Wind :D

Nach oben