Tabelle: nur eine Spalte vertikal nach unten ausrichten

Tabellen und Grafiken erstellen und anordnen


anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Tabelle: nur eine Spalte vertikal nach unten ausrichten

Beitrag von anouky »

Hallihallo,
ich habe nun bereits mir massig Zeit um die Ohren geschlagen und in diesem und diversen anderen Foren nach einer Lösung gesucht. Einer Lösung für mein Problem, dass ich eig "mal eben schnell" beheben wollte -.-
Naja, nun muss ich also doch meinen aller ersten Forenpost zum Thema LaTeX verfassen :)

Es geht um folgendes:
Ich schreibe an meiner Masterarbeit und bin in den letzten Zügen. Sprich, ich suche nach einer praktikablen, wenn vllt auch nicht 100% sauberen Lösung. Hauptsache ich muss nicht meine ganze Arbeit umstrukturieren.
Ich sage das, denn es geht um mein Variablenverzeichnis. Bin eigentlich ganz glücklich damit, auch wenn - bitte habt Nachsicht - ich es manuell erstellt habe. Ich habe das damals in der Bachlorarbeit schon so gemacht und hatte ja auch nie Probleme, bis jetzt.^^ Mein Problem ist nun, dass ich meine letzte Spalte gerne am unteren Rand der Zellen ausrichten möchte.
Zum Verständnis:
1. Zeile: Variable
2. Zeile: Definition
3. Zeile: Einheit
Die Einheit soll aber auf gleicher Höhe mit der letzten Zeile der Definition stehen! Ich habe nirgendwo das richtige gefunden. Alle wollen immer nur vertikal zentrieren :D
Und die Version mit b{..} funktioniert nicht. Es steht trotzdem in der oberen Zeile. Ich vermute das hat was mit den anderen Spalten als p{..} zu tun und das viele Lesen in Foren lässt mich immer an das Wort "Grundlinie" denken, aber ich versteh es einfach nicht :/
Dazu sei erwähnt, dass ich in einer longtable-Umgebung schreibe.

Fazit: Der Test der rechten Spalte soll immer in der untersten Zeile der Zelle stehen.
\documentclass [a4paper,pdftex,12pt]{scrreprt}
\usepackage {ngerman} 
%\usepackage [applemac]{inputenc} 
\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    &   \unit{N}\\
$T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    &   \unit{N}\\
$\beta$       &    horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus  &   \unit{°}\\
\end{longtable} 
\end {document}
Für Hilfe wäre ich sehr dankbar! :)
Zuletzt geändert von anouky am Mo 23. Jun 2014, 19:28, insgesamt 1-mal geändert.

prankenandi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Di 8. Apr 2014, 13:59

Beitrag von prankenandi »

Versuch mal das:
\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   & \vspace{-\baselineskip}
 \unit{N}\\ 
$T_{dx}$         &     Tangentialkraft auf Höhe der Sohlfläche in x-Richtung, Bemessungswert    & \vspace{-\baselineskip} \unit{N}\\ 
$T_{dy}$         &     Tangentialkraft auf Höhe der Sohlfläche in y-Richtung, Bemessungswert    & \vspace{-\baselineskip} \unit{N}\\ 
$\beta$       &    horizontaler Neigungswinkel der Windangriffsrichtung aus der Hauptachse heraus  & \vspace{-\baselineskip} \unit{°}\\ 
\end{longtable} 
\end {document}
Diese Möglichkeit schließt bei mir aber nicht ganz mit der Grundlinie ab.
Durch bspw. ein \vspace{-1.25\baselineskip} läßt sich das aber richten.

Ich weiß nun nicht ob das 100% sauber ist, erfüllt aber den Zweck!

MfG
Debian 7 (Wheezy) mit Texlive 2013 und Texmaker

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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} 

prankenandi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Di 8. Apr 2014, 13:59

Beitrag von prankenandi »

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
Debian 7 (Wheezy) mit Texlive 2013 und Texmaker

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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:

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

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.

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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.

anouky
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 23. Jun 2014, 15:36
Wohnort: Lübeck

Beitrag von anouky »

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:

Antworten