PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tabularx: Spalte mit definierter Breite und linksbündigem Text



mic
31-05-2013, 13:00
Ich habe in einem Paper eine tabularx Tabelle. Die erste Spalte dieser Tabelle soll (i) eine definierte Breite haben und (ii) der Text soll zudem linksbündig sein (kein Blocksatz) (siehe Beispiel weiter unten). Wahrscheinlich gibt es dafür eine einfache Lösung; komme jedoch im Moment nicht weiter. Mir sind nur Lösungen bekannt, die entweder (i) oder (ii) erreichen. Würde mich über Hinweise sehr freuen.

\begin{table}[htbp]
\begin{tabularx}{9cm}{@{}p{6.7cm} p{1.59cm}@{}}
\toprule
\bf{A} & \bf{B} \\
\midrule
Diese Spalte soll eine definierte Breite haben und der Text soll linksbündig stehen. &\cellcolor{light-gray} 0.847 \\
\bottomrule
\end{tabularx}
\end{table}

mechanicus
31-05-2013, 13:14
Ich habe in einem Paper eine tabularx Tabelle. Die erste Spalte dieser Tabelle soll (i) eine definierte Breite haben und (ii) der Text soll zudem linksbündig sein (kein Blocksatz) (siehe Beispiel weiter unten). Wahrscheinlich gibt es dafür eine einfache Lösung; komme jedoch im Moment nicht weiter. Mir sind nur Lösungen bekannt, die entweder (i) oder (ii) erreichen. Würde mich über Hinweise sehr freuen.

\begin{table}[htbp]
\begin{tabularx}{9cm}{@{}>{\raggedright}p{6.7cm} p{1.59cm}@{}}
\toprule
\bf{A} & \bf{B} \\
\midrule
Diese Spalte soll eine definierte Breite haben und der Text soll linksbündig stehen. &\cellcolor{light-gray} 0.847 \\
\bottomrule
\end{tabularx}
\end{table}

Viel Spaß und lese bitte nach, was ein Beispiel ist!

bobmalaria
31-05-2013, 13:22
hi,

bitte mache in zukunft vollständige beispiele in der code umgebung (das ist der # button wenn du eine nachricht hier im forum verfasst).

ich habe das ragged2e paket geladen und dann in deine erste p-spalte einen weiteren befehl mit eingeschleust :)


\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{ragged2e}

\begin{document}

\begin{table}[htbp]
\begin{tabularx}{9cm}{@{}>{\RaggedRight\hspace{0pt}}p{6.7cm}p{1.59cm}@{}}
\toprule
\bf{A} & \bf{B} \\
\midrule
Diese Spalte soll eine definierte Breite haben und der Text soll linksbündig stehen. & 0.847 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

das \hspace{0pt} ist nicht zwingend nötig. allerdings hilft es latex für den fall das das erste wort sehr lange sein sollte, denn im normalfall wird das erste wort nicht umgebrochen. mit dem \hspace jedoch gibt es einen unsichtbares erstes wort mit der breite 0 und das eigentlich este wort kann umgebrochen werden.

gruss

mic
31-05-2013, 13:51
Vielen Dank. Das mit dem Minimalbeispiel werde ich mir merken.

glg

mic
31-05-2013, 14:27
Ich habe jetzt noch ein wenig herumprobiert. Bei einigen Tabellen hat es einwandfrei funktioniert. Bei anderen leider nicht. Obwohl diese (soweit mir bewusst) gleich aufgebaut sind. Hier ein Minimalbeispiel wo es nicht funktioniert hat (ich habe alle Packages, die ich derzeit verwende, in dem Beispiel belassen, da ich absolut keine Ahnung habe, wo der Fehler liegen könnte).


\documentclass[11pt,bibtotoc,abstracton,headinclude,BCOR=1cm]{scrreprt}

\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{fixltx2e}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[margin=0.05\textwidth,format=plain,justification=R aggedRight,singlelinecheck=false,font={footnotesiz e,singlespacing,it},labelfont=bf,listformat=simple ,figurewithin=none,tablewithin=none,tableposition= top,skip=2pt]{caption}[2008/08/24]
\usepackage{lscape}
\usepackage{rotating}
\usepackage[]{acronym}
\usepackage{array}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ltxtable}
\usepackage{ragged2e}

\usepackage[table]{xcolor}
\definecolor{light-gray}{gray}{0.80}
\usepackage{charter}
\setkomafont{disposition}{\normalcolor\bfseries}

\usepackage{setspace}
%\onehalfspacing
\doublespacing
\typearea[current]{last}



\begin{document}

\begin{table}[htbp]
\caption{Hello}
\label{tab:fa1}
\vspace{0.2cm}
\setlength{\tabcolsep}{13pt}
\renewcommand{\arraystretch}{1.7}
\centering
\begin{tabularx}{8.6cm}{@{}>{\raggedright}p{5.7cm} >{\raggedright}p{1.52cm} @{}}
\toprule
\bf{Item} & \bf{Perceived distance to local facilities} \\
\midrule
Distance to local shops and locallocallocal facilities. & \cellcolor{light-gray}0.915 \\
\bottomrule
\multicolumn{2}{@{}p{8.6cm}@{}}{$^a$Hello} \\
\end{tabularx}
\end{table}

\end{document}

bobmalaria
31-05-2013, 14:51
und was funktioniert nicht?

übrigens, verwende\textbf{} satt \bf{}, das ist der korrekte latex2e befehl.

klops
31-05-2013, 15:01
@bobmalaria: Wenn man das Beispiel ausprobiert, merkt man sofort, was nicht funktioniert:

\documentclass[11pt,bibtotoc,abstracton,headinclude,BCOR=1cm]{scrreprt}

\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{fixltx2e}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[margin=0.05\textwidth,format=plain,justification=R aggedRight,singlelinecheck=false,font={footnotesiz e,singlespacing,it},labelfont=bf,listformat=simple ,figurewithin=none,tablewithin=none,tableposition= top,skip=2pt]{caption}[2008/08/24]
\usepackage{lscape}
\usepackage{rotating}
\usepackage[]{acronym}
\usepackage{array}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ltxtable}
\usepackage{ragged2e}

\usepackage[table]{xcolor}
\definecolor{light-gray}{gray}{0.80}
\usepackage{charter}
\setkomafont{disposition}{\normalcolor\bfseries}

\usepackage{setspace}
%\onehalfspacing
\doublespacing
\typearea[current]{last}



\begin{document}

\begin{table}[htbp]
\caption{Hello}
\label{tab:fa1}
\vspace{0.2cm}
\setlength{\tabcolsep}{13pt}
\renewcommand{\arraystretch}{1.7}
\centering
\begin{tabularx}{8.6cm}{@{}>{\raggedright}p{5.7cm} >{\raggedright}p{1.52cm} @{}}
\toprule
\textbf{Item} & \textbf{Perceived distance to local facilities} \tabularnewline
\midrule
Distance to local shops and locallocallocal facilities. & \cellcolor{light-gray}0.915 \tabularnewline
\bottomrule
\multicolumn{2}{@{}p{8.6cm}@{}}{$^a$Hello} \tabularnewline
\end{tabularx}
\end{table}

\end{document}

Ich habe alle Änderungen rot markiert. Zu der Änderung \bf → \textbf siehe l2tabu (http://www.ctan.org/pkg/l2tabu). Die Änderung \\ → \tabularnewline ist notwendig, weil sich sonst der Zeilenendbefehl \\ von \raggedright mit dem Zeilenendbefehl \\ für Tabellenzeilen in die Quere kommen. Siehe dazu auch die Anleitung zu array (http://www.ctan.org/pkg/array) oder tabularx (http://www.ctan.org/pkg/tabularx).

mic
31-05-2013, 16:51
Vielen Dank. Hat super funktioniert.