创建具有多行自动连字功能的表格

创建具有多行自动连字功能的表格

我尝试了一些组合包来达到我的组合的需求。但我没有成功。

  1. 多行:单元格跨越多行
  2. 连字:应该自动工作
  3. 对齐:单元格内容左上角对齐
  4. 空间:单元格中文本行之间的垂直间距

即使那个东西能用,我也可以自由选择一个包。它应该能够与 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(默认情况下不会将长行分成多行文本)有什么好处?multirowX
  • 表格第一行的用途是什么(它是否作为表格标题)?
  • 我会在文中引用该表格吗?
  • 是否存在其他更简单且更有效的解决方案?

我确实问过自己。总结我的答案的利弊,我得出结论,对我来说,最好设计以下不使用tabumakecell包装的替代解决方案,以满足您对解决方案的所有要求:

\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}

在此处输入图片描述

相关内容