我有一个longtable
节省空间的设置,我必须使列标题多行并且其内容居中,同时应用自定义宽度。
在这三种方式中,我只成功应用了自定义宽度,因为在列标题中添加\\
或插入另一个标题table
无法实现多行,也c{Xcm}
不允许将列的内容居中。
% centering column values
\begin{longtable}{c l l ... }
% tried to use but does not work
... { c{1cm} l l ... }
% long title needs to multi-line, both do not work
\multicolumn{1}{|p{3cm}|}{\textbf{Long Title\\Long Title}}
\multicolumn{1}{|p{3cm}|}{
\begin{table}
\textbf{Long Title}\\
\textbf{Long Title}
\end{table}
}
左侧的表格演示了上述情况,但我想要的是右侧的表格 - 多行标题,居中且紧凑的行值。
我有示例文档写LaTeX。
答案1
您可以加载array
包并定义一个新列:
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
并像 一样使用它。根据需要C{2cm}
调整尺寸。2cm
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{longtable}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\title{Your Paper}
\author{You}
\begin{document}
\begin{center}
\begin{longtable}{|C{2cm}|l|l|}
\caption[Feasible triples for a highly variable Grid]{Feasible triples for
highly variable Grid, MLMMH.} \label{grid_mlmmh} \\
\hline
\textbf{Long Time Title} &
\multicolumn{1}{c|}{\textbf{Triple chosen}} &
\multicolumn{1}{c|}{\textbf{Other feasible triples}} \\ \hline
\endfirsthead
\multicolumn{3}{c}%
{{\bfseries \tablename\ \thetable{} -- continued from previous page}} \\
\hline
\textbf{Long Time Title} &
\multicolumn{1}{c|}{\textbf{Triple chosen}} &
\multicolumn{1}{c|}{\textbf{Other feasible triples}} \\ \hline
\endhead
\hline \multicolumn{3}{|r|}{{Continued on next page}} \\ \hline
\endfoot
\hline \hline
\endlastfoot
Your data & again and again \\
\end{longtable}
\end{center}
\end{document}
如果需要垂直对齐,请使用
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
注意,m{#1}
而不是p{#1}
。
这将使
此外,如果需要底部对齐,请使用b{#1}
: