我正在使用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}