Textposition in Tabelle (insbesondere vertikal)
Textposition in Tabelle (insbesondere vertikal)
Hallo zusammen,
ich hab mich schon durch diverse Threads gekämpft, aber nicht wirklich eine Lösung gefunden.
Ich habe (i.A. mehrzeilige) Zelleinträge, die ich hinsichtlich der Ausrichtung beeinflussen möchte. Ich verwende tabularx und kenne die Möglichkeit der Definition von Spaltentypen. Was mir fehlt ist ein Spaltentyp analog zu "X", der vertikal zentriert ist, aber variabel in der Breite. Wenn man m{...} verwendet oder einen Typ davon ableitet, ist ja eine Breite anzugeben.
Gibt es analog zu \raggedleft, \centering, \raggedright denn keine Befehle für die 3 vertikalen Ausrichtungsmöglichkeiten, um damit dann alle 9 Positionen innerhalb einer Zelle ansteuern zu können?
Besten Dank im Voraus
Christian
ich hab mich schon durch diverse Threads gekämpft, aber nicht wirklich eine Lösung gefunden.
Ich habe (i.A. mehrzeilige) Zelleinträge, die ich hinsichtlich der Ausrichtung beeinflussen möchte. Ich verwende tabularx und kenne die Möglichkeit der Definition von Spaltentypen. Was mir fehlt ist ein Spaltentyp analog zu "X", der vertikal zentriert ist, aber variabel in der Breite. Wenn man m{...} verwendet oder einen Typ davon ableitet, ist ja eine Breite anzugeben.
Gibt es analog zu \raggedleft, \centering, \raggedright denn keine Befehle für die 3 vertikalen Ausrichtungsmöglichkeiten, um damit dann alle 9 Positionen innerhalb einer Zelle ansteuern zu können?
Besten Dank im Voraus
Christian
Hallo.
Wenn du schon viele Threads durchgearbeitet hast, hast du sicherlich auch bemerkt, dass immer ein Minimalbeispiel (Link beachten!) gefordert wird...
Wenn du mit der m-Spaltendefinition zufrieden bist, aber nur die Länge nicht einstellen kannst oder möchtest, kannst du die X-Spalten so einstellen, dass sie auf m aufbauen. Das funktioniert an geeigneter Stelle mittels (siehe auch [d]tabularx[/d])Für alles weiterführende: Minimalbeispiel
Wenn du schon viele Threads durchgearbeitet hast, hast du sicherlich auch bemerkt, dass immer ein Minimalbeispiel (Link beachten!) gefordert wird...
Wenn du mit der m-Spaltendefinition zufrieden bist, aber nur die Länge nicht einstellen kannst oder möchtest, kannst du die X-Spalten so einstellen, dass sie auf m aufbauen. Das funktioniert an geeigneter Stelle mittels (siehe auch [d]tabularx[/d])
\renewcommand{\tabularxcolumn}[1]{m{#1}}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.
Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen.
würde es Microsoft Book heißen.
Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen.
Wenn Du die Änderung lokal durchführst, ist sie nach dem Ende der jeweiligen Gruppe wieder aufgehoben. Ansonsten steht die ursprüngliche Definition auch in der [d]tabularx[/d]-Anleitung, so dass sie problemlos wiederhergestellt werden kann. Wenn Dir das als Antwort nicht reicht, musst Du erklären, warum und solltest das an einem Minimalbeispiel, auf das Du nicht ohne Grund hingewiesen wurdest, auch zeigen.
Also gut, Ihr seid aber hartnäckig 
Hier also ein Minimalbeispiel, das hoffentlich auch läuft. Bei mir funktioniert aktuell das Overleaf-Dingens nicht, weshalb ich es nicht online probieren kann.
Der Plan wäre, diverse Spaltentypen global zu definieren:
1. Eine Variante von 'X', die vertikal zentriert ist und Flattersatz hat (im Beispiel oben wäre das 'Y')
2. 'X' wie es standardmäßig definiert ist (oben ausgerichtet)
Problem dabei scheint zu sein, dass dafür \tabularxcolumn gleichzeitig als p{} und m{} definiert sein müsste, da bei abgeleiteten Spaltentypen auch der Ursprungstyp vorhanden sein muss.
Gibt es hierfür eine (einfache) Lösung?
Besten Dank im Voraus
Christian


Hier also ein Minimalbeispiel, das hoffentlich auch läuft. Bei mir funktioniert aktuell das Overleaf-Dingens nicht, weshalb ich es nicht online probieren kann.
\NeedsTeXFormat{LaTeX2e} \documentclass[a4paper, oneside,numbers=noenddot]{scrartcl} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{tabularx} \usepackage{booktabs} \renewcommand{\tabularxcolumn}[1]{m{#1}} % 'X'-Spalte vertikal zentriert \newcolumntype{Y}{>{\raggedright\arraybackslash}X} % 'X' mit linksbündigem Flattersatz \begin{document} \begin{tabularx}{\textwidth}{M{70mm}Y} Hier ist etwas mehr Text als in eine Zeile passt & Hier kann schon mal was Längeres stehen, genau weiß man es aber nicht immer\\ Noch einmal etwas längerer Text & bla blumpfl\\ \end{tabularx} \end{document}
1. Eine Variante von 'X', die vertikal zentriert ist und Flattersatz hat (im Beispiel oben wäre das 'Y')
2. 'X' wie es standardmäßig definiert ist (oben ausgerichtet)
Problem dabei scheint zu sein, dass dafür \tabularxcolumn gleichzeitig als p{} und m{} definiert sein müsste, da bei abgeleiteten Spaltentypen auch der Ursprungstyp vorhanden sein muss.
Gibt es hierfür eine (einfache) Lösung?
Besten Dank im Voraus
Christian



Dir ist hoffentlich klar, wie eine m- und ein p-Spalte nebeneinander ausgerichtet werden? Es ist nämlich keineswegs so, dass dann der Inhalt der m-Spalte mittig zum Inhalt der p-Spalte ausgerichtet wäre. LaTeX richtet immer Grundlinien aneinander aus. Bei einer Zelle in einer p-Spalte ist die Grundlinie der Zelle auf Höhe der Grundlinie der obersten Textzeile des Zelleninhalts. Bei einer m-Spalte in der Mitte des Zelleninhalts und bei einer b-Spalte auf Höhe der Grundlinie der untersten Textzeile des Inhalts. Hier einmal ein paar Beispiel:
Je, nachdem, was Du willst, wirst Du also mjt unterschiedlichen Spaltentypen nebeneinander eher schlecht zum Ziel kommen. Meist ist es besser, nur m-Spalten oder nur p-Spalten zu verwenden. Also beispielsweise:
\documentclass{article} \usepackage{array} \begin{document} \begin{tabular}{p{4cm}m{4cm}b{4cm}} p-Spalte & m-Spalte & b-Spalte \\ \hline p-Spalte mit ein ganz klein wenig mehr Text & m-Spalte mit ein ganz klein wenig mehr Text & b-Spalte mit ein ganz klein wenig mehr Text \\ \hline p-Spalte mit ein ganz klein wenig mehr Text & m-Spalte & b-Spalte \\ \hline p-Spalte & m-Spalte mit ein ganz klein wenig mehr Text & b-Spalte \\ \hline p-Spalte & m-Spalte & b-Spalte mit ein ganz klein wenig mehr Text \\ \end{tabular} \end{document}
\documentclass{article} \usepackage{array} \begin{document} \begin{tabular}{m{4cm}m{4cm}m{4cm}} m-Spalte & m-Spalte & m-Spalte \\ \hline m-Spalte mit ein ganz klein wenig mehr Text & m-Spalte mit ein ganz klein wenig mehr Text & m-Spalte mit ein ganz klein wenig mehr Text \\ \hline m-Spalte mit ein ganz klein wenig mehr Text & m-Spalte & m-Spalte \\ \hline m-Spalte & m-Spalte mit ein ganz klein wenig mehr Text & m-Spalte \\ \hline m-Spalte & m-Spalte & m-Spalte mit ein ganz klein wenig mehr Text \\ \end{tabular} \end{document}
Hallo Gast,
danke für die Erläuterung . Das mit der gleichzeitigen Verwendung vom m- und p-Spalten habe ich auch schon herausgefunden (nach etlichem Herumprobieren und googeln). Ich habe auch nicht vor, diese Typen innerhalb einer Tabelle zu mischen. Innerhalb eines Dokumentes können (je nach Einsatzzweck) jedoch mal p- und mal m-Tabellen nützlich sein.
Nachdem es ja die Möglichkeit gibt, eigene Spaltentypen zu definieren, wollte ich das auch global machen und mir damit die Tabellen-Definition vereinfachen ... ohne immer irgendwelche X-Spalten auf 'm' umzudefinieren und dann wieder auf 'p' zurück.
Aber dies ist anscheinend nicht möglich.
Insgesamt müsste da mal jemand ein neues Tabellenpaket schreiben, mit dem die Markmale
Für den unbedarften Office-User, der gewohnt ist, die Zellausrichtung mit einen Klick einstellen zu können, ist das etwas ungewohnt und unverständlich.
Naja, trotzdem Danke für die Hilfe und die Erläuterung dazu.
Beste Grüße
Christian
danke für die Erläuterung . Das mit der gleichzeitigen Verwendung vom m- und p-Spalten habe ich auch schon herausgefunden (nach etlichem Herumprobieren und googeln). Ich habe auch nicht vor, diese Typen innerhalb einer Tabelle zu mischen. Innerhalb eines Dokumentes können (je nach Einsatzzweck) jedoch mal p- und mal m-Tabellen nützlich sein.
Nachdem es ja die Möglichkeit gibt, eigene Spaltentypen zu definieren, wollte ich das auch global machen und mir damit die Tabellen-Definition vereinfachen ... ohne immer irgendwelche X-Spalten auf 'm' umzudefinieren und dann wieder auf 'p' zurück.
Aber dies ist anscheinend nicht möglich.
Insgesamt müsste da mal jemand ein neues Tabellenpaket schreiben, mit dem die Markmale
- - horizontale Ausrichtung (Blocksatz, linksbündig, rechts, zentriert, an Einheit/Dezimaltrenner, ...)
- vertikale Ausrichtung
- Spaltenbreite (fester Wert, variabel)
- Zeilenhöhe (fester Wert, automatisch)
Für den unbedarften Office-User, der gewohnt ist, die Zellausrichtung mit einen Klick einstellen zu können, ist das etwas ungewohnt und unverständlich.
Naja, trotzdem Danke für die Hilfe und die Erläuterung dazu.
Beste Grüße
Christian
Es ist sinnvoll, ein einheitliches Design innerhalb eines Dokuments durchzuziehen. Und wenn man es doch anders haben will, hindert Dich niemanden daran, Befehle zum Umschalten zwischen unterschiedlichen Ausrichtungen oder auch Tabellenumgebungen, die diese Umschaltungen automatisch vornehmen oder auch Tabellenumgebungen, die über key=value-Optionen konfigurierbar sind zu definieren. LaTeX ist ja kein Office-Programm, bei dem man durch wildes Herumklicken mitten im Dokument Einstellungen beliebig mischt, sondern eine erweiterbare Markup-Sprache. Gerade zum Thema Tabellen existieren bereits eine große Vielfalt an Paketen.
Wobei man eigentlich auch bei Office-Programmen solches Herumgeklicke besser bleiben lässt und stattdessen mit Absatz- und Zeichenvorlagen arbeitet, die man sich vor Beginn der Arbeit wohlüberlegt hat.
Wobei man eigentlich auch bei Office-Programmen solches Herumgeklicke besser bleiben lässt und stattdessen mit Absatz- und Zeichenvorlagen arbeitet, die man sich vor Beginn der Arbeit wohlüberlegt hat.