\newcolumntype 命令如何工作?

\newcolumntype 命令如何工作?

我是一名 StackExchange 和 LaTeX 新手,正在尝试弄明白表格和tabularx。有时我会复制代码,但实际上不知道自己在做什么,也不知道它为什么有效或失败。

有人能向我解释一下这个\newcolumntype命令是如何工作的以及这个命令的作用吗?我从官方文档中找到了答案tabularx。特别是“ >”这个东西,我不明白。

例子:\newcolumntype{Y}{>{\small\raggedright\arraybackslash}X}

答案1

array包文档的第 2 页和第 3 页有解释:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

其他说明

回答您的具体问题:

\newcolumntype{Y}{>{\small\raggedright\arraybackslash}X}

定义一种称为Y基于X列的新类型的列(此列类型由包定义tabularx,它基本上是一个p{ <width>}列,由包计算),但使用字体大小和右边不规则文本来<width>排版内容。\small

总之,Y现在p{<width>}有一列内容将以\small字体大小排版,并且排版在右边。现在,不再需要繁琐的

\begin{tabularx}{0.5\linewidth}{c>{\small\raggedright\arraybackslash}Xl>{\small\raggedright\arraybackslash}X}
 ...
\end{tabularx}

你可以简单地说

\begin{tabularx}{0.5\linewidth}{cYlY}
 ...
\end{tabularx}

\newcolumntype带有参数

举例来说,假设我们需要一个具有三种p{}类型列的表,其规格如下:

  • 第一列:宽度 = 4 厘米,颜色 = 蓝色(阴影);内容左侧不齐。
  • 第二列:宽度 = 3 厘米,颜色 = 红色(阴影);内容左侧不齐。
  • 第一列:宽度 = 5 厘米,颜色 = 绿色(阴影);内容左侧不齐。

这里最好的办法是定义一个新的列类型;\newcolumntype还接收参数(如\newcommand),所以在这种情况下,我们需要一个具有两个参数的新类型:颜色和宽度:

\newcolumntype{C}[2]{>{\columncolor{#1}\raggedleft\arraybackslash}p{#2}}

表格格式如下

\begin{tabular}{C{red!30}{4cm}C{blue!20}{3cm}C{green!20}{5cm}}
...
\end{tabular}

完整示例:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array}

\newcolumntype{C}[2]{>{\columncolor{#1}\raggedleft}p{#2}}

\begin{document}

\noindent
\begin{tabular}{C{red!30}{4cm}C{blue!20}{3cm}C{green!20}{5cm}}
Some test text to illustrate the new column type 
  & Some test text to illustrate the new column type 
  & Some test text to illustrate the new column type 
\end{tabular}

\end{document}

结果:

在此处输入图片描述

\arraybackslash

至于\arraybackslash\raggedright\raggedleft\centering声明以与在或环境\\中的使用相冲突的方式重新定义。命令(在和 中实现)恢复了在和中使用的含义(您只需要在最后一列中使用)。tabulararray\arraybackslasharraytabularx\\arraytabular\arraybackslash

相关内容