我创建了下表:
使用以下代码:
\begin{table}[h]
\begin{tabular}
{|M{0.16\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.24\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.18\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.44\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|}
\hline
Zeitpunkt
& Variable
& Datentyp
& Beschreibung
\\
\hline
t0, t1, t2 &
Alter &
Numerisch &
Alter eines Studenten in \newline Jahren
\\
\hline
t0, t1, t2 &
Geschlecht &
Nominal &
Geschlecht eine Studenten
\\
\hline
t0, t1, t2 &
HzbArt &
Nominal &
Art der HZB
\\
\hline
t0, t1, t2 &
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
\hline
t0, t1, t2 &
Ang\textunderscore Abschluss &
Nominal &
Bachelor oder Master
\\
\hline
t0, t1, t2 &
Studiengang &
Nominal &
Studiengang eines Studenten
\\
\hline
t0, t1, t2 &
Bildungsland &
Nominal &
Bildungsinländer oder \newline Bildungsausländer
\\
\hline
t1, t2 &
DN \textunderscore Sem\textunderscore1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
\hline
t1, t2 &
NB\textunderscore Pruef\textunderscore \newline Sem\textunderscore1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\hline
t2 &
DN \textunderscore Sem\textunderscore2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
\hline
t2 &
NB\textunderscore Pruef\textunderscore \newline Sem\textunderscore2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
\hline
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder \newline Nicht-Studienabbrecher
\\
\hline
\end{tabular}
\caption{Variablen der finalen Datensätze}
\label{Variablen der finalen Datensätze}
\end{table}
但是,我想创建一个如下所示的表:
换句话说,我想聚合第一列共享相同信息的单元格,并垂直和水平对齐相应的文本。
我读到过,我必须使用多列表格来实现这一点。但是,一旦我使用以下代码创建多列元素
\begin{table}[h]
\begin{tabular}
{|M{0.16\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.24\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.18\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|
M{0.44\textwidth-2\tabcolsep - 1.25\arrayrulewidth}|}
\hline
Zeitpunkt &
Variable &
Datentyp & Beschreibung \\ \hline
\multirow{7}{*}{t0, t1, t2}
&
Alter &
Numerisch &
Alter eines Studenten in Jahren
\\
\cline{2-4}
&
Geschlecht &
Nominal &
Geschlecht eines Studenten
\\
\cline{2-4}
&
HzbArt &
Nominal &
Art der HZB
\\
\cline{2-4}
&
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
\cline{2-4}
&
Ang\_Abschluss &
Nominal &
Bachelor oder Master
\\
\cline{2-4}
&
Studiengang &
Nominal &
Studiengang eines Studenten
\\
\cline{2-4}
& Bildungsland
& Nominal
& Bildungsinländer oder Bildungsausländer
\\
\hline
\multirow{2}{*}{t1, t2}
&
DN\_Sem\_1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
\cline{2-4}
&
NB\_Pruef\_ Sem\_1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\hline
\multirow{2}{*}{t2}
&
DN\_Sem\_2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
\cline{2-4}
&
NB\_Pruef\_ Sem\_2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
\hline
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder Nicht-Studienabbrecher
\\
\hline
\end{tabular}%
\end{table}
表格将如下所示(文本垂直和水平对齐,比例错误):
我尝试使用常规列大小的另一个代码如下所示:
\begin{table}[h]
\begin{tabular}{|c|l|l|l|}
\hline
Zeitpunkt &
Variable &
Datentyp & Beschreibung \\ \hline
\multirow{7}{*}{t0, t1, t2}
&
Alter &
Numerisch &
Alter eines Studenten in Jahren
\\
\cline{2-4}
&
Geschlecht &
Nominal &
Geschlecht eines Studenten
\\
\cline{2-4}
&
HzbArt &
Nominal &
Art der HZB
\\
\cline{2-4}
&
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
\cline{2-4}
&
Ang\_Abschluss &
Nominal &
Bachelor oder Master
\\
\cline{2-4}
&
Studiengang &
Nominal &
Studiengang eines Studenten
\\
\cline{2-4}
& Bildungsland
& Nominal
& Bildungsinländer oder Bildungsausländer
\\
\hline
\multirow{2}{*}{t1, t2}
&
DN\_Sem\_1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
\cline{2-4}
&
NB\_Pruef\_ Sem\_1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\hline
\multirow{2}{*}{t2}
&
DN\_Sem\_2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
\cline{2-4}
&
NB\_Pruef\_ Sem\_2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
\hline
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder Nicht-Studienabbrecher
\\
\hline
\end{tabular}%
\end{table}
在这种情况下,表格不再适合文本宽度并且会扭曲:
我如何才能创建一个表格,将所需的列聚合起来,并以正确的比例(上下和左右之间的空间相同)水平和垂直对齐它们的文本。此外,它也不应大于我的 latex 文档的文本大小(即 \documentclass[11pt,a4paper]{article})。
首先十分感谢!
答案1
以下是使用该tabularray
包解决您问题的方法。SetCell
宏相当于和multicolumn
,multirow
其中可选参数r
表示要包含的行数(c
表示列数)。hlines
和vlines
选项指示在每个单元格周围设置水平线和垂直线,它们会自动处理多行和多列(如果有)。X
列类型相当于tabularx
X
列,其中可选值分别设置列的水平和垂直对齐方式,编号可选值设置列相对于默认宽度的相对宽度。
\documentclass[11pt,a4paper]{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[h]
\begin{tblr}{
hlines, vlines,
colspec={*{3}{X[c,m]} X[2.5,c,m]},
}
Zeitpunkt &
Variable &
Datentyp & Beschreibung
\\
\SetCell[r=7]{c}t0, t1, t2
&
Alter &
Numerisch &
Alter eines Studenten in Jahren
\\
&
Geschlecht &
Nominal &
Geschlecht eines Studenten
\\
&
HzbArt &
Nominal &
Art der HZB
\\
&
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
&
Ang\_Abschluss &
Nominal &
Bachelor oder Master
\\
&
Studiengang &
Nominal &
Studiengang eines Studenten
\\
& Bildungsland
& Nominal
& Bildungsinländer oder Bildungsausländer
\\
\SetCell[r=2]{c} t1, t2
&
DN\_Sem\_1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
&
NB\_Pruef\_ Sem\_1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\SetCell[r=2]{c}t2
&
DN\_Sem\_2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
&
NB\_Pruef\_ Sem\_2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder Nicht-Studienabbrecher
\\
\end{tblr}%
\end{table}
\end{document}
不过,我建议您删除所有垂直线和大部分水平线,以使表格看起来更专业。
附录:
这是表格的一个更好看的版本(对我来说)。我认为第 2、3 和 4 列(带有居中标题)的左对齐看起来更好。
\documentclass[11pt,a4paper]{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs} %allows to use the booktabs rules in the tblr environment.
\begin{document}
\begin{table}[h]
\begin{tblr}{
stretch=1.5, %adds extra vertical space (1.5 times of default) around the row
colspec={X[c,m] *{2}{X[l,m]} X[2.5,l,m]},
row{1} = {halign=c} %aligns the content of the first row horizontally
}
\toprule
Zeitpunkt &
Variable &
Datentyp & Beschreibung
\\
\midrule
\SetCell[r=7]{c}t0, t1, t2
&
Alter &
Numerisch &
Alter eines Studenten in Jahren
\\
&
Geschlecht &
Nominal &
Geschlecht eines Studenten
\\
&
HzbArt &
Nominal &
Art der HZB
\\
&
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
&
Ang\_Abschluss &
Nominal &
Bachelor oder Master
\\
&
Studiengang &
Nominal &
Studiengang eines Studenten
\\
& Bildungsland
& Nominal
& Bildungsinländer oder Bildungsausländer
\\
\midrule
\SetCell[r=2]{c} t1, t2
&
DN\_Sem\_1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
&
NB\_Pruef\_ Sem\_1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\midrule
\SetCell[r=2]{c}t2
&
DN\_Sem\_2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
&
NB\_Pruef\_ Sem\_2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
\midrule
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder Nicht-Studienabbrecher
\\
\bottomrule
\end{tblr}%
\end{table}
\end{document}
附录2:即使不使用tabularray
,也可以将多行单元格居中。正如我所说,要垂直居中,您需要手动调整行数(第一个)参数。要将多行内容水平居中,您可以将其插入命令中multicolumn
。
\documentclass[11pt,a4paper]{article}
\usepackage{array}
\usepackage{multirow}
\usepackage{ragged2e}
\usepackage{calc}
\usepackage{booktabs}
\newcolumntype{M}[1]{>{\RaggedRight}m{#1}}
\begin{document}
\begin{table}[h]
\renewcommand{\arraystretch}{1.5}
\begin{tabular}
{M{0.16\textwidth-2\tabcolsep - 1.25\arrayrulewidth}
M{0.24\textwidth-2\tabcolsep - 1.25\arrayrulewidth}
M{0.18\textwidth-2\tabcolsep - 1.25\arrayrulewidth}
M{0.44\textwidth-2\tabcolsep - 1.25\arrayrulewidth}}
\toprule
\multicolumn{1}{c}{Zeitpunkt} &
\multicolumn{1}{c}{Variable} &
\multicolumn{1}{c}{Datentyp} &
\multicolumn{1}{c}{Beschreibung}
\\\midrule
\multicolumn{1}{c}{\multirow{8}{*}{t0, t1, t2}}
&
Alter &
Numerisch &
Alter eines Studenten in Jahren
\\
&
Geschlecht &
Nominal &
Geschlecht eines Studenten
\\
&
HzbArt &
Nominal &
Art der HZB
\\
&
HzbNote &
Numerisch &
Notendurchschnitt der HZB
\\
&
Ang\_Abschluss &
Nominal &
Bachelor oder Master
\\
&
Studiengang &
Nominal &
Studiengang eines Studenten
\\
& Bildungsland
& Nominal
& Bildungsinländer oder Bildungsausländer
\\
\midrule
\multicolumn{1}{c}{\multirow{3.3}{*}{t1, t2}}
&
DN\_Sem\_1 &
Numerisch &
Notendurchschnitt nach dem ersten Semester
\\
&
NB\_Pruef\_ Sem\_1 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem ersten Semester
\\
\midrule
\multicolumn{1}{c}{\multirow{3.3}{*}{t2}}
&
DN\_Sem\_2 &
Numerisch &
Notendurchschnitt nach dem zweiten Semester
\\
&
NB\_Pruef\_ Sem\_2 &
Numerisch &
Anzahl der nicht bestandenen Prüfungen nach dem zweiten Semester
\\
\midrule
t0, t1, t2 &
Abbrecher &
Nominal &
Studienabbrecher oder Nicht-Studienabbrecher
\\
\bottomrule
\end{tabular}%
\end{table}
\end{document}