我想知道如何使用多行而不将单元格条目垂直居中。由于我没有找到任何与此相关的问题,您能帮忙吗?
在此过程中,我发现了多个进一步的问题,如我的 MWE 所示:
为什么多行命令在我的 MWE 中根本不起作用?我错过了什么?
如何管理表格单元格中第一个单词内的换行符?p 列和 P 列(带有数组反斜杠)似乎在这里都不起作用。
第一个大写字母放错了怎么办?如何避免这种情况?
\documentclass[a4paper]{article}
% Based on the class scrreprt by "KOMA-Script", whatever that means. If that doesn't help, please try \documentclass{scrreprt} or one of the usual.
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash\hspace{0pt}}p{#1}}
\newcolumntype{x}{>{\raggedright\arraybackslash\hspace{0pt}}X}
\begin{document}
\begin{table}[htb]
\centering
\setlength{\tabcolsep}{4mm}
\renewcommand{\arraystretch}{1.5}
\begin{tabularx}{\textwidth}{|P{6em}|x|P{6em}|}
\hline
\multirow{3}{*} Kommunizierbarkeit & Verständlichkeit und Vermittelbarkeit des Programms für Mitarbeiter und Fahrgäste & \multirow{3}{*} Mitarbeiterbefragung, Fahrgastbefragung, Anzahl der Geschäftsvorfälle in XYZ bzw. an der Schnittstelle ABCD / XYZ \\
& Möglichkeit der Komplexitätsreduktion hinsichtlich der Anweisungen und Informationen für Mitarbeiter und Fahrgäste & \\
& Kommunizierbarkeit der Lösungen & \\\hline
\end{tabularx}
\end{table}
\end{document}
答案1
- multirow 的最新版本有一个可选的第一个参数,用于指定垂直对齐。
- 必须将单元格的文本括
\multirow
在括号中{}
。 - TeX 不会对段落的第一个单词进行连字符处理。在它前面添加 \hspace{0pt}(中间不加空格)即可对单词进行连字符处理,或者添加手动连字符点。在我的 LaTeX 中,“Kommunizierbarkeit” 无论如何都不会被连字符连接。此外,使用 {*} 时根本不会出现换行。在新的多行版本中使用 {=}。
- 大写字母:见2。
表格代码:
\begin{tabularx}{\textwidth}{|P{6em}|x|P{6em}|}
\hline
\multirow[t]{3}{=}{\hspace{0pt}Kommuni\-zier\-bar\-keit}
& Verständlichkeit und Vermittelbarkeit des Programms
für Mitarbeiter und Fahrgäste
& \multirow[t]{3}{=}{\hspace{0pt}Mitarbeiterbefragung,
Fahrgastbefragung, Anzahl der Geschäftsvorfälle in XYZ
bzw. an der Schnittstelle ABCD / XYZ} \\
& Möglichkeit der Komplexitätsreduktion hinsichtlich
der Anweisungen und Informationen
für Mitarbeiter und Fahrgäste & \\
& Kommunizierbarkeit der Lösungen & \\
\hline
\end{tabularx}
如您所见,第三列溢出。将其加宽一点(例如 7em)或在表格末尾添加一个空行。
答案2
的最后一个参数缺少一对括号\multirow
。倒数第二个参数应设置为\linewidth
(即当前列的宽度)。最后,您可以获得正确的布局,放大左列和右列,并让其\tabcolsep
具有默认值(6pt),然后仅对多行内容的位置进行少量调整。
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc} % Based on the class scrreprt by "KOMA-Script", whatever that means. If that doesn't help, please try \documentclass{scrreprt} or one of the usual.
\usepackage[T1]{fontenc}
\usepackage{lmodern}%
\usepackage[showframe]{geometry} %
\usepackage[ngerman]{babel}
\usepackage{ragged2e}%
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash\leavevmode}p{#1}}
\newcolumntype{x}{>{\RaggedRight\arraybackslash\leavevmode}X}
\begin{document}
\begin{table}[htb]
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabularx}{\textwidth}{|P{9.6em}|x|P{9.6em}|}
\hline
Kommunizierbarkeit & Verständlichkeit und Vermittelbarkeit des Programms für Mitarbeiter und Fahrgäste & \multirow{5}{\linewidth}[-1.2pt]{Mitarbeiterbefragung, Fahrgastbefragung, Anzahl der Geschäftsvorfälle in XYZ bzw. an der Schnittstelle ABCD / XYZ} \\
& Möglichkeit der Komplexitätsreduktion hinsichtlich der Anweisungen und Informationen für Mitarbeiter und Fahrgäste & \\
& Kommunizierbarkeit der Lösungen & \\\hline
\end{tabularx}
\end{table}
\end{document}