长桌上的中心单元格 - 全部集中在一起

长桌上的中心单元格 - 全部集中在一起

我想找到一种简单的方法来调整我的单元longtable居中,同时仍然使用p{}列的定义。

我使用的代码是:

\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{longtable}
\usepackage{colortbl}
\usepackage{xcolor}

\newlength\mylength

\begin{document}

\lipsum

\setlength\mylength{\dimexpr\textwidth-5\arrayrulewidth-8\tabcolsep}
\begin{longtable}{|p{.25\mylength}|p{.25\mylength}|p{.25\mylength}|p{.25\mylength}|}
\rowcolor{white}\caption{Test table\label{tab:test1}}
                \hline
                \rowcolor{blue}\textcolor[rgb]{1,1,1}{Term 1} & \textcolor[rgb]{1,1,1}{Term 2} & \textcolor[rgb]{1,1,1}{Term 3} & \textcolor[rgb]{1,1,1}{Term 4}\\
                \hline
                Test 1 & Test 2 & Test 3 & Test 4\\
                \hline
\end{longtable}

\end{document}

输出结果如下:

在此处输入图片描述

如何使表格单元格居中?我希望能够执行这两个选项:

  1. 将表格中的所有单元格居中
  2. 单独将一些单元格居中,其他单元格保持原样

答案1

对于第一个问题,您可以定义一个新的列类型

\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

并使用C代替p

\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{longtable,array}
\usepackage{colortbl}
\usepackage{xcolor}

\newlength\mylength
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\lipsum

\setlength\mylength{\dimexpr\textwidth-5\arrayrulewidth-8\tabcolsep}
\begin{longtable}{|C{.25\mylength}|C{.25\mylength}|C{.25\mylength}|C{.25\mylength}|}
\rowcolor{white}\caption{Test table\label{tab:test1}}\\
                \hline
                \rowcolor{blue}\textcolor[rgb]{1,1,1}{Term 1} & \textcolor[rgb]{1,1,1}{Term 2} & \textcolor[rgb]{1,1,1}{Term 3} & \textcolor[rgb]{1,1,1}{Term 4}\\
                \hline
                Test 1 & Test 2 & Test 3 & Test 4\\
                \hline
\end{longtable}

\end{document}

在此处输入图片描述

要使单个单元格居中,您可以\centering在单元格内部使用,如下所示:

\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{longtable,array}
\usepackage{colortbl}
\usepackage{xcolor}

\newlength\mylength
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\lipsum

\setlength\mylength{\dimexpr\textwidth-5\arrayrulewidth-8\tabcolsep}
\begin{longtable}{|p{.25\mylength}|C{.25\mylength}|C{.25\mylength}|p{.25\mylength}|}
\rowcolor{white}\caption{Test table\label{tab:test1}}\\
                \hline
                \rowcolor{blue}\centering\textcolor[rgb]{1,1,1}{Term 1} & \textcolor[rgb]{1,1,1}{Term 2} & \textcolor[rgb]{1,1,1}{Term 3} & \textcolor[rgb]{1,1,1}{Term 4}\\
                \hline
                Test 1 & Test 2 & Test 3 & \centering\arraybackslash Test 4\\
                \hline
\end{longtable}

\end{document}

在此处输入图片描述

\arraybackslash如果您使用的话,请记得\centering在最后一列中添加。

相关内容