我尝试了一些组合包来达到我的组合的需求。但我没有成功。
- 多行:单元格跨越多行
- 连字:应该自动工作
- 对齐:单元格内容左上角对齐
- 空间:单元格中文本行之间的垂直间距
即使那个东西能用,我也可以自由选择一个包。它应该能够与 XeLaTeX 一起运行。
在该示例中,连字符在单元格中不起作用makecell
。但我需要它们来生成multirow
单元multicolumn
格。甚至左上对齐在该单元格中也有效。但我不确定这是否是找到满足我所有需求的解决方案的正确方法。
\documentclass{scrartcl}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage{tabu}
%\usepackage{multirow}
\usepackage{makecell}
\usepackage{lipsum}
% multirow
% hyphenation automatic
% cell content aligned top left
% sometimes vertical space (or similar) between lines of text in one cell
\begin{document}
\newcommand{\mycline}[1]{%
\noalign{\vspace{-\arrayrulewidth}}\tabucline{#1}%
}
\noindent
\begin{tabu} to \textwidth {|X|X|X|}
\tabucline{-}
\multicolumn{3}{|l|}{Headline}\\\tabucline{-}
\multirowcell{3}[*][lt]{%
%\lipsum[10]
Mr Doe erreicht bis zur Überleitung drei Zeilen more much more super more%
}
&\makecell[lt]{line with\\
\phantom{0.5 baselineskip}\\
another line}&
word\\\mycline{2-}
&y&Mr Doe erreicht bis zur Überleitung drei
Zeilen more much more super more\\\mycline{-}
\end{tabu}
\end{document}
答案1
这更像是一个扩展的评论,而不是答案(坦率地说,我不知道如何解决您所说的问题......)。我想知道您是否问过自己(当表格出现问题时):
- 使用
tabu
表格环境有什么好处(尽管众所周知它存在缺陷并且无人维护)? - 使用类型列内的单元格
makecell
(默认情况下不会将长行分成多行文本)有什么好处?multirow
X
- 表格第一行的用途是什么(它是否作为表格标题)?
- 我会在文中引用该表格吗?
- 是否存在其他更简单且更有效的解决方案?
我确实问过自己。总结我的答案的利弊,我得出结论,对我来说,最好设计以下不使用tabu
和makecell
包装的替代解决方案,以满足您对解决方案的所有要求:
\documentclass{scrartcl}
\usepackage[showframe, %<-- in real application this option had to be deleted
margin=25mm]{geometry} %<-- added to set up and show page layout
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\usepackage{multirow}
\usepackage{tabularx} %<-- used instead of "tabu"
\usepackage{calc} %<-- added for calculation of column width
\newlength{\mrwidth} %<-- added for definition of multirow cell width
\usepackage{microtype} %<-- added for better inter word spacing
\begin{document}
\begin{table}
\setlength{\mrwidth}{0.333\textwidth-2\tabcolsep}
\renewcommand\arraystretch{1.1}
\caption{Headline \dots}
\label{my special table}
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
\multirow{3}*{\parbox{\mrwidth}{% number of own lines,
% should be equal or smaller
% than number of lines in other columns
Mr Doe erreicht bis zur Überleitung drei Zeilen more much more super more%
}}
& line with\vspace{0.5\baselineskip}\newline
another line
& word \\ \cline{2-3}
& y & Mr Doe erreicht bis zur Überleitung drei
Zeilen more much more super more \\ \hline
\end{tabularx}
\end{table}
\end{document}