Longtable: Manueller Zeilenumbruch

Tabellen und Grafiken erstellen und anordnen


likelihood
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Fr 22. Feb 2013, 00:10

Longtable: Manueller Zeilenumbruch

Beitrag von likelihood »

Hi zusammen,

ich möchte gerne einen manuellen Zeilenumbruch in einer Longtable einfügen, und zwar in einer Zelle, die keine feste Breite vorgibt (also in einer l- oder c-Zelle, aber nicht in einer p-Zelle).

Mein Minimal-Beispiel lautet wie folgt:
\documentclass[preview,authoryear,12pt]{elsarticle}

\usepackage{geometry}

\usepackage{amsmath}
\usepackage{scrextend}

\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{booktabs}
\usepackage{natbib}
\usepackage[utf8]{inputenc}
\usepackage{inputenc}

\usepackage{lscape}

\usepackage{booktabs}
\usepackage{longtable}
\usepackage[singlelinecheck=off,justification=centering]{caption}

\numberwithin{table}{section}

\newcommand{
	\superscript}[1]{\ensuremath{^{\textrm{#1}}}
}

\newcommand{
	\subscript}[1]{\ensuremath{_{\textrm{#1}}}
}

\newcommand*{\who}[1]{
	\widehat{\rule{0pt}{1.6ex}#1}
}

\usepackage[none]{hyphenat}
\sloppy

\begin{document}

\begin{longtable}{lcccc}

\caption{Results - Final Sample, All Models, \textit{Distances}}										\\
\hline
										&	\multicolumn{4}{c}{Happiness}					\\
Regressors								&	OLS			&	OLS			&	FE			&	FE			\\
\hline
\endfirsthead
\multicolumn{5}{c}{\textit{Continued from previous page}}												\\
\hline
										&	\multicolumn{4}{c}{Happiness}					\\
Regressors								&	OLS			&	OLS			&	FE			&	FE			\\
\hline
\endhead
\multicolumn{5}{c}{\textit{Continued on next page}}														\\
\endfoot
\endlastfoot
Constant								&	7.2520***	&	4.6331***	&	6.5241***	&	6.9023***	\\
										&	(0.0452)	&	(0.2103)	&	(0.2712)	&	(0.4662)	\\
\hline
Number of Observations					&	42,256		&	33,782		&	42,256		&	33,782		\\
Number of Individuals					&	8,014		&	6,959		&	8,014		&	6,959		\\
R\superscript{2}						&	0.0108		&	0.2024		&	0.0029		&	0.0575		\\
Adjusted R\superscript{2}				&	0.0105		&	0.2015		&	0.0018		&	0.0556		\\
\hline
\hline
\multicolumn{5}{l}{}																					\\
\multicolumn{5}{c}{\textit{Robust standard errors in parentheses}}										\\
\multicolumn{5}{c}{\textit{*** p\textless0.01, ** p\textless0.05, * p\textless0.1}}						\\
\multicolumn{5}{l}{}																					\\
\multicolumn{5}{l}{\textit{Note:} The respective distance is measured as the Euclidean distance in metres between households and the centroid of the nearest area of interest.}
																										\\
\multicolumn{5}{l}{All figures are rounded to four decimal places.}										\\
\multicolumn{5}{l}{}																					\\

\end{longtable}

\end{document}

Insbesondere würde ich gerne einen manuellen Zeilenumbruch in der l-Zelle Note einfügen, da die Zelle sonst die Longtable verzerrt.

Ich habe es geschafft, einen manuellen Zeilenumbruch einzufügen, wenn ich diese l-Zelle in eine p-Zelle umwandle. Dies geht mittels des array-Pakets und der Eigenschaft >{\raggedright \arraybackslash}p{5.0cm}. Leider funktioniert der manuelle Zeilenumbruch aber nicht mehr, wenn ich die p-Zelle p{5.0cm} in eine l- oder c-Zelle umwandle.

Siehe:
\documentclass[preview,authoryear,12pt]{elsarticle}

\usepackage{array}

\usepackage{geometry}

\usepackage{amsmath}
\usepackage{scrextend}

\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{booktabs}
\usepackage{natbib}
\usepackage[utf8]{inputenc}
\usepackage{inputenc}

\usepackage{lscape}

\usepackage{booktabs}
\usepackage{longtable}
\usepackage[singlelinecheck=off,justification=centering]{caption}

\numberwithin{table}{section}

\newcommand{
	\superscript}[1]{\ensuremath{^{\textrm{#1}}}
}

\newcommand{
	\subscript}[1]{\ensuremath{_{\textrm{#1}}}
}

\newcommand*{\who}[1]{
	\widehat{\rule{0pt}{1.6ex}#1}
}

\usepackage[none]{hyphenat}
\sloppy

\begin{document}

\begin{longtable}{lcccc}

\caption{Results - Final Sample, All Models, \textit{Distances}}										\\
\hline
										&	\multicolumn{4}{c}{Happiness}					\\
Regressors								&	OLS			&	OLS			&	FE			&	FE			\\
\hline
\endfirsthead
\multicolumn{5}{c}{\textit{Continued from previous page}}												\\
\hline
										&	\multicolumn{4}{c}{Happiness}					\\
Regressors								&	OLS			&	OLS			&	FE			&	FE			\\
\hline
\endhead
\multicolumn{5}{c}{\textit{Continued on next page}}														\\
\endfoot
\endlastfoot
Constant								&	7.2520***	&	4.6331***	&	6.5241***	&	6.9023***	\\
										&	(0.0452)	&	(0.2103)	&	(0.2712)	&	(0.4662)	\\
\hline
Number of Observations					&	42,256		&	33,782		&	42,256		&	33,782		\\
Number of Individuals					&	8,014		&	6,959		&	8,014		&	6,959		\\
R\superscript{2}						&	0.0108		&	0.2024		&	0.0029		&	0.0575		\\
Adjusted R\superscript{2}				&	0.0105		&	0.2015		&	0.0018		&	0.0556		\\
\hline
\hline
\multicolumn{5}{l}{}																					\\
\multicolumn{5}{c}{\textit{Robust standard errors in parentheses}}										\\
\multicolumn{5}{c}{\textit{*** p\textless0.01, ** p\textless0.05, * p\textless0.1}}						\\
\multicolumn{5}{l}{}																					\\
\multicolumn{5}{>{\raggedright \arraybackslash}p{5.0cm}}{\textit{Note:} The respective distance is measured as the Euclidean distance in metres between households \linebreak \linebreak and the centroid of the nearest area of interest.}
																										\\
\multicolumn{5}{l}{All figures are rounded to four decimal places.}										\\
\multicolumn{5}{l}{}																					\\

\end{longtable}

\end{document}

Ich möchte mit einer l- oder c-Zelle arbeiten, da ich sonst das Problem habe, dass ich die gesamte Breite der Longtable vorgeben muss, und das möchte ich nicht. Stattdessen möchte ich es dem Inhalt der Longtable überlassen, die Breite vorzugeben.

Ich wäre euch für eure Hilfe sehr dankbar!

Viele Grüße,

Chris

PS:

Was mich auch interessieren würde, und was mit der Frage verwandt wäre, ist, wie man einen automatischen Zeilenumbruch in einer l- oder c-Zelle einer Longtable erstellt.

Noch so einer

Beitrag von Noch so einer »

Du musst Dich schon entscheiden: Entweder Umbruch oder automatische Anpassung an die Breite des Textes. Wenn der Text einer Spalte zu breit ist, so dass er umbrochen werden sollte, dann muss man irgendwie angeben, wie breit er umbrochen werden soll. Hellsehen kann LaTeX nicht.

Natürlich könnte man ltablex oder ltxtable verwenden, um mit X-Spalten arbeiten zu können. Allerdings sieht mir das ganze eigentlich sehr danach aus, dass hier eine Tabelle zwanghaft für etwas verwendet wird, wofür man gar keine mehr braucht:
\documentclass[preview,authoryear,12pt]{elsarticle}

\usepackage{array}

\usepackage{geometry}

\usepackage{amsmath}
\usepackage{scrextend}

\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{booktabs}% Einmal laden genügt!
\usepackage{natbib}
\usepackage[utf8]{inputenc}% Einmal laden genügt!

\usepackage{lscape}

\usepackage{longtable}
\usepackage[singlelinecheck=off,justification=centering]{caption}

\numberwithin{table}{section}

\newcommand{\superscript}{\textsuperscript}% So etwas kennt LaTeX bereits!
\newcommand{\subscript}{\textsubscript}% So etwas kennt LaTeX bereits!


\newcommand*{\who}[1]{% <-- unerwünschtes Leerzeichen beseitigt
   \widehat{\rule{0pt}{1.6ex}#1}% <-- unerwünschtes Leerzeichen beseitigt
}

\usepackage[none]{hyphenat}
%\sloppy% wenn man guten Satz will, sollte man unbedingt darauf verzichten

\usepackage{varwidth}

\begin{document}

\begin{longtable}{lcccc}

\caption{Results - Final Sample, All Models, \textit{Distances}}                              \\
\toprule% Wenn man booktabs geladen hat, sollte man es auch verwenden!
                              &   \multicolumn{4}{c}{Happiness}               \\
Regressors                        &   OLS         &   OLS         &   FE         &   FE         \\
\midrule% Wenn man booktabs geladen hat, sollte man es auch verwenden!
\endfirsthead
\caption[]{\textit{Continued from previous page}}                                    \\
\toprule
                              &   \multicolumn{4}{c}{Happiness}               \\
Regressors                        &   OLS         &   OLS         &   FE         &   FE         \\
\midrule
\endhead
\multicolumn{5}{c}{\textit{Continued on next page}}                                          \\
\endfoot
\endlastfoot
Constant                        &   7.2520***   &   4.6331***   &   6.5241***   &   6.9023***   \\
                              &   (0.0452)   &   (0.2103)   &   (0.2712)   &   (0.4662)   \\
\midrule
Number of Observations               &   42,256      &   33,782      &   42,256      &   33,782      \\
Number of Individuals               &   8,014      &   6,959      &   8,014      &   6,959      \\
R\superscript{2}                  &   0.0108      &   0.2024      &   0.0029      &   0.0575      \\
Adjusted R\superscript{2}            &   0.0105      &   0.2015      &   0.0018      &   0.0556      \\
\bottomrule
\end{longtable}
\begin{center}
\itshape Robust standard errors in parentheses\\
*** p\textless0.01, ** p\textless0.05, * p\textless0.1\\
\end{center}
\begin{labeling}{\textit{Note:}}
\item[\textit{Note:}] The respective distance is measured as the Euclidean
  distance in metres between households and the centroid of the nearest area
  of interest.
  
  All figures are rounded to four decimal places.
\end{labeling}
\end{document}
Bitte beachte auch, dass es nicht zweckmäßig ist, Pakete mehrfach und teilweise sogar mal mit und mal ohne Optionen oder mit unterschiedlichen Optionen zu laden. Darüber hinaus kennt LaTeX bereits Pakete, um im Textmodus hoch oder tief zu stellen. Und natürlich nützt das Laden von booktabs nur etwas, wenn man es auch verwendet. Ich vermute daher fast, dass Du eine Vorlage verwendest, die Du nicht verstanden hast. Daher: »Minimale Vorlage vs. maximale Probleme«.

likelihood
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Fr 22. Feb 2013, 00:10

Beitrag von likelihood »

Lieber Gast,

bezüglich der Entscheidung Umbruch vs. automatische Anpassung an den Text:

Ich möchte einen manuellen Umbruch in einer l- oder c-Zelle einer Longtable.

Vielen Dank für deine zusätzlichen Bemerkungen, die ich mir für zukünftige Posts zu Herzen nehmen werde.

Viele Grüße,

Chris

Besserwisser

Beitrag von Besserwisser »

Manueller Umbruch in einer l-, r- oder c-Spalte geht nur mit einer zusätzlichen Box oder Umgebung darin, beispielsweise einer tabular.

likelihood
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Fr 22. Feb 2013, 00:10

Beitrag von likelihood »

So einfach kann das sein!

Vielen Dank!

Antworten