我知道這個問題經常被問到,但不知何故,現在它們的方式似乎對我有用。
我有一個來自大學的模板,用於說明我的表格應該是什麼樣子:
\documentclass[%
fontsize=11pt,
twoside=off
]{scrbook}
\usepackage{tabularx}
\usepackage[tablewithout, figurewithout]{caption}
\renewcommand{\arraystretch}{1.8}
\newcolumntype{M}{X<{\vspace{4pt}}}
\begin{document}
\vspace{\parskip}
\section*{Überschrift Tabelle 1}
\begin{table}[!h]
\fontsize{9pt}{13pt}\selectfont
\begin{tabularx}{\textwidth}{ M | M }
\multicolumn{1}{X}{\textbf{Spalte 1}}%
& \multicolumn{1}{X}{\textbf{Spalte 2}} \\
\hline
Nummer 1,\newline\,mehrzeilig in Schriftgröße 9 pt & Nummer 2 \\
\hline
Nummer 1 & Nummer 2 \\
\hline
Nummer 1 & Nummer 2 \\
\hline
\end{tabularx}
\caption{}
\end{table}
\vspace{\parskip}
\section*{Überschrift Tabelle 2}
\begin{table}[!h]
\fontsize{9pt}{13pt}\selectfont
\begin{tabularx}{\textwidth}{| M | M |}
\hline
\textbf{Spalte 1} & \textbf{Spalte 2} \\
\hline
Nummer 1 & Nummer 2 \\
\hline
Nummer 1 & Nummer 2 \\
\hline
Nummer 1 & Nummer 2 \\
\hline
\end{tabularx}
\caption{}
\end{table}
\vspace{\parskip}
\section*{Überschrift Tabelle 3}
\begin{table}[!h]
\fontsize{9pt}{13pt}\selectfont
\begin{tabularx}{\textwidth}{@{} M M @{}}
\textbf{Spalte 1} & \textbf{Spalte 2} \\
Nummer 1 & Nummer 2 \\
Nummer 1 & Nummer 2 \\
Nummer 1 & Nummer 2 \\
\end{tabularx}
\caption{}
\end{table}
\end{document}
現在我有一個可以更好地以橫向格式顯示的表格。我已經讓它與 sidewaystable 一起使用,但這裡的表格只超過一頁。
我試著讓整件事情寫好幾頁,但總是事先就失敗了。
這是我目前的嘗試(具有自訂的列寬度):
\documentclass[%
fontsize=11pt,
twoside=off
]{scrbook}
\usepackage{longtable}
\usepackage{rotating}
\usepackage{pdflscape}
\usepackage{tabularx} % Flexiblere Tabellen
\usepackage[tablewithout, figurewithout]{caption}
\renewcommand{\arraystretch}{1.8}
\newcolumntype{M}[1]{X<{\vspace{4pt}\hsize=#1\hsize}}
\begin{document}
\begin{table}[!h]
\fontsize{9pt}{13pt}\selectfont
\begin{longtable}{\textwidth}{| M{0.5} | M{1} | M{1} | M{0.5} | M{0.5} | M{0.5} | M{1} | M{1} | M{1} | M{3} |}
\hline
\textbf{id} & \textbf{Label} & \textbf{Grund} & \textbf{Offen} & \textbf{Durchfluss} & \textbf{Durchlass} & \textbf{Rückstau} & \textbf{HQ-Marken\footnote{Beachte: \gls{hq}}} & \textbf{Parkplatz} & \textbf{Notizen} \\
\hline
1 & & xy & xy & 0 & 0 & Ja & 0 & & xxxxyyyyyy\\
\hline
*unbelivebale amount of data*
507 & xy & & xy & 0 & 0 & xy & 0 & xy & xxxxyyyyyy\\
\hline
\end{longtable}
\caption{xy \cite{xy}}
\label{xy}
\end{table}
\end{landscape}
\end{document}
現在我收到越來越多的錯誤訊息。首先,\texdwidth 是非法的非法前置標記,\hline 位於表之外。我引用:
額外的對齊選項卡已更改為 \cr。
您在表格中寫入了太多對齊選項卡,導致其中一個選項卡變成了換行符。確保您在表中指定了正確的列數。
儘管我很確定這是不正確的或一定有其他原因,因為正常的側桌不會發生這個錯誤。
抱歉文字太長,謝謝您的幫忙!
答案1
太期待評論了:
- 抱歉,坦白說,你的程式碼很亂。不可能知道你喜歡在桌上放什麼
- 任何類型的長表(
longtable
、xltabuilar
、longtblr
oftabularray
等)= 都不必封裝為 floattable
。 - 列類型僅在, , longtable`
X
中可用。tabularx
xltabular
longtblr, etc. tables and not in
- 根據您的列規格,您的表格相當寬。所以它適合
landscape
頁面是脆弱的 - 從你的 MWE 來看,列的內容是什麼並不明顯。某些列具有自然寬度可能會更好(在 MWE 中,低於 ˙
Q
列而不是X
.
可能的表格範例,可作為起點:
\documentclass[11pt]{scrbook}
\usepackage[margin=25mm]{geometry}% define page layout
\usepackage{pdflscape}
\usepackage{rotating}
\usepackage{tabularray}
\begin{document}
\begin{landscape}
\footnotesize
\begin{longtblr}[
caption = {xy},
label = {xy},
note{a} = {Beachte: {hq}},
]{hlines, vlines,
colspec = {X[0.5,l, font=\bfseries]
*{8}{X[l]}
X[3,l]},
row{1} = {font = \bfseries, m},
rowhead = 1}
% column deaders
i.d & Label & Grund & Offen & Durchfluss
& Durchlass & Rückstau & {HQ-\\Marken}\TblrNote{a}
& Parkplatz
& Notizen \\
1 & 2 & 3 & 4 & 5
& 6 & 7 & 8 & 9
& 10: xxxxyyyyyy \\
%*unbelivebale amount of data*
507 & xy & & xy & 0
& 0 & xy & 0 & xy
& xxxxyyyyyy \\
\end{longtblr}
\end{landscape}
\end{document}
請編輯您的問題,刪除所有上述缺陷,並在表中提供更多模擬真實資料的(虛擬)資料。也要澄清一下,你的問題是什麼,或是你在寫表格時遇到了什麼困難。在此之後,將可以更好地幫助您。