Die X-Spalte scheint nach Blocksatz auszurichten, das führt zu großen Abständen zwischen den Wörtern.

alt text

Ich habe einen Code für die Zentrierung von X-Spalten gefunden, indem ein neues Spaltenformat erstellt wird. Leider wird eine zusätzlich Zeile eingefügt, wenn \centering gegen \flushleft austausche.

alt text

Code

\documentclass[oneside]{scrbook}
\usepackage[utf8]{inputenc}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{array}
\newcolumntype{Z}{>{\flushleft\let\newline\\\arraybackslash\hspace{0pt}}X}

\begin{document}

\begin{table}
  \caption{Eine Tabelle}
   \begin{tabularx}{\textwidth}{p{0.05\textwidth}Zp{0.13\textwidth}p{0.13\textwidth}} \toprule
    AA      & Succinat-Dehydrogenase, Flavoprotein-Untereinheit      & CC      & DD            \\
    AA      & BB      & CC      & DD
    \\ \bottomrule
  \end{tabularx}
\end{table}
\end{document}

gefragt 16 Sep '13, 12:45

Bettina's gravatar image

Bettina
65541923
Akzeptiert: 83%

bearbeitet 23 Sep '13, 07:06

esdd's gravatar image

esdd
14.2k53251


Nimm \raggedright anstatt \flushleft. Letzteren Befehl gibt es nur indirekt: er wird aufgerufen, wenn man die Umgebung \begin{flushleft} aufruft. Du siehst denselben vertikalen Weißraum, den die Umgebung auch einfügt.

Mit \raggedright erfolgt übrigens keine Worttrennung mehr. Wenn man die im Flattersatz dennoch möchte, kann man das Paket ragged2e laden und statt dessen \RaggedRight verwenden (Dank an @Mico für die Erinnerung). Es hätte außerdem den Vorteil, dass man sich \arraybackslash sparen könnte (Danke an @Herbert für den Hinweis), dazu gleich mehr.

Eine Bemerkung zur Definition des Spaltentyps Z (und Dank an @saputello für die Erinnerung):

\newcolumntype{Z}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X}

Da die Anweisungen \raggedright, \raggedleft und \centering den Befehl \\ umdefinieren, funktioniert er nicht mehr als Ende einer Tabellenzeile, wenn man z.B.

\newcolumntype{Z}{>{\raggedright}X}

verwenden würde und man müsste dann eine Tabellenzeile mit \tabularnewline einleiten. Da das unbequem ist, verwendet man oft

\newcolumntype{Z}{>{\raggedright\arraybackslash}X}

\arraybackslash stellt die Tabellenfunktion von \\ wieder bereit. In der vorliegenden Definition wird außerdem die von \raggedright, \raggedleft bzw. \centering vorgenommene Definition in \newline gespeichert, bevor es durch \arraybackslash wieder die Tabellenbedeutung erhält, damit man in der entsprechenden Tabellenzelle immer noch eine neue Zeile beginnen kann:

\newcolumntype{Z}{>{\raggedright\let\newline\\\arraybackslash}X}

Das \hspace{0pt} soll wohl Trennung des ersten Worts in der Tabelle ermöglichen, siehe Warum passiert in dieser Tabellen-Zelle keine Silbentrennung?

Permanenter link

beantwortet 16 Sep '13, 12:49

Clemens's gravatar image

Clemens
19.0k112960

bearbeitet 24 Sep '13, 04:26

3

Kleine Zusatzbemerkung: Falls Wortumbruch in der linksbündigen Spaltenumgebung erwünscht/erlaubt sein soll, ist es am besten wenn man das ragged2e Paket lädt und dann \RaggedRight anstatt \raggedright verwendet.

(17 Sep '13, 01:07) Mico

@Mico @saputello Danke für die Anregungen. Ich hab sie in die Antwort übernommen.

(18 Sep '13, 05:38) Clemens
2

außerdem kann man sich bei \RAggedRight das \arraybackslash sparen.

(24 Sep '13, 03:21) Herbert

Und mit \usepackage[raggedrightboxes] werden automagisch alle p-Spalte, \parboxen, minipages und \marginpars mit \RaggedRight gesetzt.

(24 Okt '13, 16:28) Martin Schröder
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×23

Frage gestellt: 16 Sep '13, 12:45

Frage wurde angeschaut: 7,043 Mal

Zuletzt aktualisiert: 24 Okt '13, 16:28