我正在使用 tabularx 包来自定义我的表格。我更改了 的定义以tabularxcolumn
使文本垂直居中。当我使用 时arraystretch
,我的表格的粗体“标题”对齐得相当丑陋。我该如何解决这个问题?
\documentclass[fleqn,10pt,twocolumn]{article} % Document font size and equations
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage{enumitem}
\renewcommand\tabularxcolumn[1]{m{#1}}
\renewcommand\arraystretch{1.5} \setlength\minrowclearance{2.4pt}
\arrayrulecolor{blue}
\newcolumntype{=}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{tabularx}{\linewidth}{|=l^X|@{}}
\multicolumn{2}{>{\columncolor{blue}}c}{\color{white}\textbf{Table: Interfaces}} \\
\hline
\rowcolor{blue}
\rowstyle{\color{white}\bfseries}
\textbf{Interface} &\rowstyle{\color{white}}\textbf{Programming Languages}\\
\texttt{.NET}
& The blablab this is only some text to illustrate my problem:
\begin{itemize}[topsep=-5pt,leftmargin=0.7cm,itemsep=0.8pt,labelsep=.5cm]
\item C\#
\item VB .NET
\end{itemize}\\
\texttt{JNI}
& Some other text \\
\hline
\end{tabularx}
\end{document}
有人能解释一下我什么时候需要插入这个@{}吗?我还是不明白。
答案1
你有过
Overfull \hbox (10.00002pt too wide) in paragraph at lines 34--35
由于您的表格是全宽但按段落缩进(10pt)缩进,我添加了\noindent
。
你不有永远使用@{}
,但如果您使用它(或|
),则需要保持一致。|
添加规则并@{}
删除通常的列间填充,默认情况下,该填充也会出现在第一列之前和最后一列之后。如果您使用这些,您还需要在规范中使用它们,\multicolumn
以便跨越列获得与它们跨越的列相同的列间空间。
(更新注意使用l
单元格来确保标题的基线对齐)
有点不寻常Table:..
在表格而不是单独的标题,但我把它保留成这样:
\documentclass[fleqn,10pt,twocolumn]{article} % Document font size and equations
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage{enumitem}
\renewcommand\tabularxcolumn[1]{m{#1}}
\renewcommand\arraystretch{1.5} \setlength\minrowclearance{2.4pt}
\arrayrulecolor{blue}
\newcolumntype{=}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\noindent X\dotfill X
\noindent
\begin{tabularx}{\linewidth}{@{}|=l^X|@{}}
\multicolumn{2}{@{}|>{\columncolor{blue}}c|@{}}{\color{white}\textbf{Table: Interfaces}} \\
\hline
\rowcolor{blue}
\rowstyle{\color{white}\bfseries}
\textbf{Interface} &\multicolumn{1}{l|@{}}{\textcolor{white}{\textbf{Programming Languages}}}\\
\texttt{.NET}
& The blablab this is only some text to illustrate my problem:
\begin{itemize}[topsep=-5pt,leftmargin=0.7cm,itemsep=0.8pt,labelsep=.5cm]
\item C\#
\item VB .NET
\end{itemize}\\
\texttt{JNI}
& Some other text \\
\hline
\end{tabularx}
\end{document}