使用边框将表格内容居中

使用边框将表格内容居中

我在表格环境中使用时遇到了问题\centering。以下代码

\documentclass{article}

\begin{document}

\begin{tabular}{|r|r|} \hline
\centering{Lolcats}  & \centering{.com} \\ \hline
\end{tabular}

\end{document}

生成错误“ LaTeX Error: Something's wrong--perhaps a missing \item.”删除“”后错误消失\\ \hline,但这也会删除表格的最后一行。有什么想法知道哪里出了问题吗?谢谢!

答案1

您可能还想将单元格垂直居中。LaTeXtabular的间距模型与 HTML 不同。不可见的支柱有助于保持均匀的行距。通过支柱,空间\baselineskip被划分为基线上方 70% 和下方 30%。由于您的文本不包含带降部的字形,因此与文本上方的空间相比,基线下方的空间看起来太大。

以下示例显示了一些解决方法。为简单起见,垂直边距将使用与水平边距相同的值:\tabcolsep

通过重新定义

\renewcommand*{\arraystretch}{0}

支柱的效果将失效。下方的边距可以通过可选参数添加\\。上方的边距可以通过增加行高来创建。\raisebox{\tabcolsep}{\vphantom{L}}应用于最高字母L会创建这种不可见的人工高度。

下一个示例使用附加行来代替边距高度。

示例文件以一个示例结束,说明如何使用 来实现这一点\fbox\kern\fboxrule可防止接触 es 的双倍线宽\fbox

array将垂直线移到单元格外。与示例相比,效果很明显\fbox。使用包时array宽度相同。否则,tabular示例的宽度较小。

\documentclass{article}
\usepackage{array}

\begin{document}

\begin{tabular}{|c|c|} \hline
  Lolcats & .com \\ \hline
\end{tabular}

\begingroup
  \renewcommand*{\arraystretch}{0}%
  \begin{tabular}{|c|c|} \hline
    \raisebox{\tabcolsep}{\vphantom{L}}%
    Lolcats  & .com \\[\tabcolsep]
    \hline
  \end{tabular}
\endgroup

\begingroup
  \renewcommand*{\arraystretch}{0}%
  \begin{tabular}{|c|c|} \hline
    \rule{0pt}{\tabcolsep} & \\
    Lolcats  & .com \\[\tabcolsep]
    \hline
  \end{tabular}
\endgroup

\setlength{\fboxsep}{\tabcolsep}
\fbox{Lolcats}\kern-\fboxrule\fbox{\vphantom{L}.com}

\end{document}

在此处输入图片描述

相关内容