Longtable, Spaltenbreite und Seitenbreite

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Longtable, Spaltenbreite und Seitenbreite

Re: Longtable, Spaltenbreite und Seitenbreite

von Gute*r Gȧst*in » Fr 11. Jun 2021, 07:56

Oh! Entschuldigung! Da hatte ich wohl noch den Original-Code im Copy&Paste-Puffer. Ich meinte natürlich:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}
\usepackage{blindtext}
\newcolumntype{F}{>{\RaggedRight\hspace{0pt}}X}
\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}lFF@{}}
\textbf{Text 1} & \textbf{Frage (Text 2)} & \textbf{Text 3} \\\midrule
\endhead
\midrule
\endfoot
Text 1 & Das ist ein langer Text & Das ist ein langer Text \\
Text 2 & \blindtext & \blindtext \\
\end{xltabular}

\end{document}

Dessen ungeachtet, empfehle ich, \newcolumntype und >{…} für die Spaltendeklaration in der array-Anleitung nachzulesen, \RaggedRight in der ragged2e-Anleitung, die Spaltendeklaration mit X in der tabularx-Anleitung (und prinzipiell die Verwendung von xltabular natürlich auch noch in der kurzen xltabular-Anleitung). Es ist bekanntlich immer von Vorteil, den verwendeten Code auch zu verstehen. In Abschnitt 2.5 der xltabular-Anleitung gibt es übrigens ein Beispiel, das obigem Code nicht unähnlich ist und somit direkt auf deinen Fall anwendbar wäre. :wink:

Re: Longtable, Spaltenbreite und Seitenbreite

von Bartman » Do 10. Jun 2021, 20:04

\newcolumntype{F}[1]{>{\RaggedRight\hspace{0pt}}X}

Man kann zwar in der Spaltendefinition der Tabellenumgebung F{} verwenden, aber da die Angabe der Spaltenbreite wegen des Spaltentyps X nicht benötigt wird, ist [1] verzichtbar.

% !TEX xelatex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}

\newcolumntype{F}{>{\RaggedRight\hspace{0pt}}X}% ohne Argument nutzbar

\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}>{\ttfamily}lFcccc@{}}
\toprule
\normalfont\textbf{Prefix} & \textbf{Entity} & \textbf{Cont} & 
\textbf{ITU} & \textbf{CQ} & \textbf{Entity Code} \\
\midrule
\endhead
\normalfont\textit{9S4} & Saarland (08.11.1947 bis 31.03.1957) & EU & 28 & 14 & 210 \\
DL & Federal Republic of Germany (ab 17.09.1973) & EU & 28 & 14 & 230 \\
I1 & Trieste (bis 31.03.1957) & EU & 28 & 15 & 271 \\
OK & Czechoslovakia (bis 31.12.1992) & EU & 28 & 15 & 218 \\
R1MV & Malyj Vysotskij I. (bis 17.02.2012) & EU & 29 & 16 & 151 \\
UA1N & Karelia (ab 01.07.1960 bis 31.12.1991) & EU & (E) & 16 & 054 \\
UN & Karelo-Finnish Republic (bis 30.06.1960) & EU & 19 & 16 & 128 \\
Y2 & German Democratic Republic (ab 17.09.1973 bis 02.10.1990) & EU & 28 & 14 & 229 \\
\end{xltabular} 
\end{document}

Re: Longtable, Spaltenbreite und Seitenbreite

von AaronK » Do 10. Jun 2021, 19:03

Ich möchte in Bezug auf den Blocksatz und den Warnungen, die ausgegeben werden einige Fragen stellen. Mit dem Parameter F{30mm} wird kein Blocksatz verwendet. Die Warnungen sind verschwunden. Der Nachteil ist, dass ich die Weite für jede Tabelle von Hand korregieren muß.

Wird der Parameter X verwendet, dann wird Blocksatz gesetzt. Zitat aus dem vorherigen Post: natürlich kann auch auf den Blocksatz verzichtet und die angedeuteten F-Spalten auf Basis von X-Spalten genutzt werden.

Wie löse ich das Problem, ohne das ich den F Parameter für jede Tabelle von Hand setzen muß?

Tabelle mit dem Parameter X

% !TEX xelatex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}
\usepackage{blindtext}
\newcolumntype{F}[1]{>{\RaggedRight\hspace{0pt}}X}

\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}lXcccc@{}}\toprule
\textbf{Prefix} & \textbf{Entity} & \textbf{Cont} & \textbf{ITU} & \textbf{CQ} & \textbf{Entity Code} \\\midrule
\endhead
\textit{9S4} & Saarland (08.11.1947 bis 31.03.1957) & EU & 28 & 14 & 210 \\
\texttt{DL} & Federal Republic of Germany (ab 17.09.1973) & EU & 28 & 14 & 230 \\
\texttt{I1} & Trieste (bis 31.03.1957) & EU & 28 & 15 & 271 \\
\texttt{OK} & Czechoslovakia (bis 31.12.1992) & EU & 28 & 15 & 218 \\
\texttt{R1MV} & Malyj Vysotskij I. (bis  \\ & 17.02.2012) & EU & 29 & 16 & 151 \\
\texttt{UA1N} & Karelia (ab 01.07.1960 bis 31.12.1991) & EU & (E) & 16 & 054 \\
\texttt{UN} & Karelo-Finnish Republic (bis 30.06.1960) & EU & 19 & 16 & 128 \\
\texttt{Y2} & German Democratic Republic (ab 17.09.1973 bis 02.10.1990) & EU & 28 & 14 & 229 \\
\end{xltabular} 
\end{document}

Tabelle mit dem Parameter F

% !TEX xelatex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}
\usepackage{blindtext}
\newcolumntype{F}[1]{>{\RaggedRight\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}

\begin{document}

\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}lF{30mm}cccc@{}}\toprule
\textbf{Prefix} & \textbf{Entity} & \textbf{Cont} & \textbf{ITU} & \textbf{CQ} & \textbf{Entity Code} \\\midrule
\endhead
\textit{9S4} & Saarland (08.11.1947 bis 31.03.1957) & EU & 28 & 14 & 210 \\
\texttt{DL} & Federal Republic of Germany (ab 17.09.1973) & EU & 28 & 14 & 230 \\
\texttt{I1} & Trieste (bis 31.03.1957) & EU & 28 & 15 & 271 \\
\texttt{OK} & Czechoslovakia (bis 31.12.1992) & EU & 28 & 15 & 218 \\
\texttt{R1MV} & Malyj Vysotskij I. (bis  \\ & 17.02.2012) & EU & 29 & 16 & 151 \\
\texttt{UA1N} & Karelia (ab 01.07.1960 bis 31.12.1991) & EU & (E) & 16 & 054 \\
\texttt{UN} & Karelo-Finnish Republic (bis 30.06.1960) & EU & 19 & 16 & 128 \\
\texttt{Y2} & German Democratic Republic (ab 17.09.1973 bis 02.10.1990) & EU & 28 & 14 & 229 \\
\end{xltabular} 
\end{document}

Re: Longtable, Spaltenbreite und Seitenbreite

von Gute*r Gȧst*in » Sa 5. Jun 2021, 17:03

Schmale Spalten zu umbrechen ist immer problematisch. Da müssen Kompromisse eingegangen werden. Fehlermeldungen sind das übrigens nicht. Das sind Hinweise oder allenfalls Warnungen. Aber natürlich kann auch auf den Blocksatz verzichtet und die angedeuteten F-Spalten auf Basis von X-Spalten genutzt werden:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}
\usepackage{blindtext}
\newcolumntype{F}[1]{>{\RaggedRight\hspace{0pt}}X}
\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}lXX@{}}
\textbf{Text 1} & \textbf{Frage (Text 2)} & \textbf{Text 3} \\\midrule
\endhead
\midrule
\endfoot
Text 1 & Das ist ein langer Text & Das ist ein langer Text \\
Text 2 & \blindtext & \blindtext \\
\end{xltabular}

\end{document}

Dann sind die Warnungen weg, der Blocksatz aber natürlich auch.

Re: Longtable, Spaltenbreite und Seitenbreite

von AaronK » Sa 5. Jun 2021, 16:37

Das ist genau die Löung, nach der ich gesucht habe. Leider bekomme ich folgende Fehlermeldungen:

Underfull \hbox (badness 1377) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 1270) in paragraph at lines 310--310 
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 1838) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 1609) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 1062) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 3396) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 1442) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 3364) in paragraph at lines 310--310 
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 3568) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 6445) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 4181) in paragraph at lines 310--310
‪content/chapter-02.tex, 310‬

Underfull \hbox (badness 2961) in paragraph at lines 310--310

Re: Longtable, Spaltenbreite und Seitenbreite

von hmhmhm » Sa 5. Jun 2021, 14:40

Ich bin nicht sicher, dass ich genau verstehe, was du suchst. Aber eventuell sind ja X-Spalten mit Paket xltabular, also eine Verbindung von tabularx mit longtable (Beispiel auf das Wesentliche gekürzt):

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xltabular}
\usepackage{ragged2e}
\usepackage{booktabs}
\usepackage{blindtext}
\newcolumntype{F}[1]{>{\RaggedRight\hspace{0pt}}X}
\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{xltabular}{.9\textwidth}{@{}lXX@{}}
\textbf{Text 1} & \textbf{Frage (Text 2)} & \textbf{Text 3} \\\midrule
\endhead
\midrule
\endfoot
Text 1 & Das ist ein langer Text & Das ist ein langer Text \\
Text 2 & \blindtext & \blindtext \\
\end{xltabular}

\end{document}

Longtable, Spaltenbreite und Seitenbreite

von AaronK » Sa 5. Jun 2021, 11:25

Wie kann ich in einer Longtable Umgebung die Tabelle in ihren äußeren Maßen so anpassen, dass die Tabelle mittig und ein wenig kleiner als der Satzspiegel ist. In dem folgenden Beispiel möchte ich, dass die Maße für die Spalte 2 und 3 automatisch die gleiche Breite haben. Die Maße für F{38mm}F{38mm} sind gemeint. Läßt die die Tabelle so gestalten, das die Breite für die Spalten 2, 3 und wenn vorhanden auch eine Spaltenbreite 4 und 5 automatisch berechnet werden? Spalte 1 hat die Breite automatisch, weil es keinen Zeilenumbruch gibt.

\documentclass[8pt,openright,twoside]{extbook}
\usepackage[no-math]{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Packages
%\usepackage{amsmath,amsfonts,amsthm,bm}
\usepackage{booktabs}
\usepackage{titlesec,color}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{footnote}
\usepackage{forloop}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{siunitx}
\usepackage{supertabular}
\usepackage{paralist}
\usepackage{ragged2e}
\usepackage{subcaption}
\usepackage{xurl}

%% Set paper size
% DIN B6
\usepackage[
  b6paper,
  left=10mm,
  right=10mm,
  top=10mm,
  bottom=10mm,
%  includeheadfoot,
  headsep=0mm,
  footskip=5mm,
%  nomarginpar,     % kein Platz für Randnotizen
  showframe,       % Anzeige des Satzspiegels
]{geometry}

%% Chapter formating
\newcommand{\hsp}{\hspace{10pt}}
\titleformat{\chapter}[hang]{\large\bfseries}{\thechapter\hsp{|}\hsp}{0pt}{\large\bfseries}
\titlespacing*{\chapter}{0pt}{0pt}{0pt}

%% Section formating
\titleformat{\section}{\normalsize\bfseries}
\titleformat{\subsection}{\small\bfseries}
\titleformat{\subsubsection}{\small\bfseries}
\titleformat{\paragraph}{\footnotesize\bfseries}

%% Don’t add extra space after sentences
\frenchspacing

%% Set parindent
%\setlength{\parindent}{0pt}
\setlength{\parskip}{.5em}

\setlength{\LTpre}{6pt}
\setlength{\LTpost}{6pt}

%% Sorgt beim Dokumenttyp book dafür, daß kein Ausgleich des unteren Seitenrandes durch Dehnung der Absatzabstände durchgeführt wird.
\raggedbottom

%% Ausrichtung und Silbentrennung in einer Tabelle
\newcolumntype{F}[1]{>{\RaggedRight\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
\newcolumntype{T}[1]{>{\Centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
\newcolumntype{K}[1]{>{\RaggedLeft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}


\begin{document}
\renewcommand{\arraystretch}{1.1}
\begin{longtable}{@{\extracolsep{\fill}}lF{38mm}F{38mm}@{}}
\textbf{Text 1} & \textbf{Frage (Text 2)} & \textbf{Text 3} \\\midrule
\endhead
Text 1 & Das ist ein langer Text & Das ist ein langer Text \\\midrule
\end{longtable}

\end{document}

Nach oben