禁忌:在单元格内容之前和之后添加支柱

禁忌:在单元格内容之前和之后添加支柱

我正在使用tabu包轻松排版我的表格。因此,我解决了一些问题:

  • 垂直间距(从单元格内容到边框)小于行高和行深,因此我\strut在内容之前和之后使用 s;
  • LaTeX 在开头不会换行,因此我\hspace{0pt}在单元格内容的最开始使用,以使 LaTeX 换行并添加连字符;
  • LaTeX 不使用宏来连字符,所以我必须\hspace{0pt}在单元格内容末尾和之间添加\strut

列规范如下:

\begin{tabu} to \linewidth {|>{\strut\hspace{0pt}}X[0.4,L]<{\hspace{0pt}\strut}|%
                             >{\strut\hspace{0pt}}X[0.115,C]<{\hspace{0pt}\strut}|%
                             >{\strut\hspace{0pt}}X[0.115,C]<{\hspace{0pt}\strut}|%
                             >{\strut\hspace{0pt}}X[0.2,C]<{\hspace{0pt}\strut}|%
                             >{\strut\hspace{0pt}}X[0.17,C]<{\hspace{0pt}\strut}|}\hline

我如何使用 X 类型声明具有这些特征的新列类型(例如 Y)?像这样(但这不起作用):

\newcolumntype{Y}{>{\strut\hspace{0pt}}X<{\hspace{0pt}\strut}}
\tabucolumn Y

答案1

您定义新列类型的方式并没错。但我猜您错过了向说明符传递参数的可能性X。这可以通过需要参数的格式按如下方式完成:

示例输出

\documentclass{article}

\usepackage{tabu}
\newcolumntype{Y}[1]{>{\strut\hspace{0pt}}X[#1]<{\hspace{0pt}\strut}}
\tabucolumn Y

\begin{document}
\begin{tabu} to \linewidth{Y{.5,C} Y{.5}}
  Text text and longer words with extra line&  Text text
  and longer words with indisputably elegant hyphenation algorithm\\
\end{tabu}
\end{document}

相关内容