在多列环境中的表格环境中的列中居中对齐文本

在多列环境中的表格环境中的列中居中对齐文本

我需要后两列的文本居中对齐。

我还需要有人帮我清理这张桌子。它看起来很丑。

请注意,它位于multicols(2 列)环境内,因为上下文是一份科学报告。

它很复杂,因为它涉及到几个包的交互,如tabularxmulticolmultirow

我尝试将其放在表格环境中,但这会引入浮动问题。我希望它准确地浮动在文档中的位置。如果需要,它应该继续溢出到下一列或整个页面。

\documentclass[a4paper,12pt]{article}

\author{Peter Cao}
\date{}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption} %apparently needs to come first or options clash with other packages will occur

\usepackage[x11names,dvipsnames]{xcolor} %for use in color links

\usepackage[hyphens]{url}
\usepackage[colorlinks=true,linkcolor=Blue4,citecolor=blue]{hyperref}
\usepackage[hyphenbreaks]{breakurl}
\usepackage{a4wide}
\usepackage{graphicx}

\usepackage[version=3]{mhchem}

\usepackage[T1]{fontenc} %for > and < in text mode
\usepackage{tikz}
\mhchemoptions{arrows=pgf-filled}

\usepackage{booktabs} %for top, middle and bottomline

\usepackage{multirow} %multi column and row spanning

\usepackage{amsmath}


\usepackage{cite}

\usepackage{multirow}
\usepackage{tabularx}

\usepackage{siunitx}

\usepackage{fancyhdr}
%\usepackage{fancyheadings} seems to be obsoleted by fancyhdr

\usepackage{comment}
\usepackage{multicol}

\usepackage{lastpage}

\newcommand{\ignore}[1]{} %a null macro which gobbles up comments, and thus acts as a tool for in-line commenting.


\begin{document}

\begin{multicols}{2}

\subsection*{Results}

{\small
\begin{tabularx}{\columnwidth}{X | X | X}
\toprule
Characteristic & \multicolumn{2}{c}{Result}\\
\cmidrule(l){2-3}
& Seaweed isolate & Coral isolate \\
\cmidrule(r){1-1} \cmidrule(l){2-3}
Cell shape & Rod & Rod\\
Gram stain & - & -\\
Oxidase & + & -\\
Catalase & + & -\\
MSA & Growth & No growth\\
Anaerobic & Growth (weak) & No growth\\
Motility & & \\
Indole production & & \\
Hugh \& Leifsons & & \\
\bottomrule
\end{tabularx}
}

\end{multicols}

\end{document}

编辑:在下面的示例中,请注意表格的右侧边距没有得到尊重。我该如何修复此问题?

在此处输入图片描述

答案1

居中很简单 - 只需指定“c”列,而不是“X”。在下面的解决方案中,我将其保留为表格tabularx- 尽管我认为它可以很容易地成为一个简单的tabular。(就我个人而言,我认为左对齐的列实际上会更好:这样列边缘可以很好地对齐,并且不需要垂直规则;所以我认为你犯了一个设计错误,但我已经按照你的要求做了。)

其余部分主要就是清理图表垃圾 —— 那些实际上无法传达信息,却占用空间的垃圾。原始表格中有很多这样的垃圾。

  • 你不需要“结果”或者“特征”这样的标签,所以就这样吧。
  • “隔离”标签可以放在每一列之前(因为它与“珊瑚”和“海藻”都相关),这样可以节省一些空间。
  • 删除所有垂直线,并删除尽可能多的水平线。这很关键。
  • 消除大写字母(由于这些不是完整的句子,因此几乎没有必要)。
  • 使用减号而不是连字符作为“加号”的反义词。这只是一个印刷正确的问题!
  • 将“增长(弱)”改为“弱增长”,节省一些积分......
  • 修剪左右两侧的 cmidrule

当然,其中一些决定有点个人化(例如全部使用小写字母)——但是为了节省空间。其他决定(例如取消垂直规则)则相当基本。

\documentclass[a4paper,12pt]{article}
\usepackage{a4wide}
\usepackage[T1]{fontenc} %for > and < in text mode
\usepackage{booktabs} %for top, middle and bottomline
\usepackage{tabularx}
\usepackage{multicol}

\begin{document}

\begin{multicols}{2}

\subsection*{Results}

{\small
\begin{tabularx}{\columnwidth}{lcc}
\toprule
& \multicolumn{2}{c}{isolate} \\
& seaweed & coral \\
\cmidrule(lr){2-3}
cell shape & rod & rod\\
gram stain & $-$ & $-$\\
oxidase & + & $-$\\
catalase & + & $-$\\
\textsc{msa} & growth & no growth\\
anaerobic & weak growth & no growth\\
motility & & \\
indole production & & \\
Hugh \& Leifsons & & \\
\bottomrule
\end{tabularx}
}

\end{multicols}
\end{document}

答案2

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage[lmargin=2cm,rmargin=1cm]{geometry}
\usepackage{booktabs} %for top, middle and bottomline
\usepackage{graphicx}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}

\subsection*{Results}

\medskip\noindent
\resizebox{\columnwidth}{!}{%
\begin{tabular}{@{} l c c @{}}\toprule
  & \multicolumn{2}{c}{\emph{isolate}} \\[-\smallskipamount]
  & \emph{seaweed} & \emph{coral} \\\cmidrule(lr){2-3}
cell shape   & rod      & rod\\
gram stain   & $-$      & $-$\\
oxidase      & $+$      & $-$\\
catalase     & $+$      & $-$\\
\textsc{msa} & growth   & no growth\\
anaerobic    & weak growth & no growth\\
motility     & & \\
indole production & & \\
Hugh \& Leifsons  & & \\
\bottomrule
\end{tabular}%
}

\blindtext
\end{multicols}
\end{document}

在此处输入图片描述

答案3

你的代码没有tabularx:

\documentclass[a4paper,12pt]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{graphicx}

\usepackage[T1]{fontenc} %for > and < in text mode
\usepackage{booktabs}
\usepackage{multicol}    
\begin{document}

\begin{multicols}{2}
\subsection*{Results}

\noindent
\resizebox{\linewidth}{!}{%
 \begin{tabular}{@{}l | c | c @{}}\toprule
   Characteristic & \multicolumn{2}{c}{Result}      \\\cmidrule(l){2-3}
                  & Seaweed isolate & Coral isolate \\
                                    \cmidrule(r){1-1} \cmidrule(l){2-3}
   Cell shape     & Rod              & Rod      \\
   Gram stain     & $-$              & -        \\
   Oxidase        & $+$              & $-$      \\
   Catalase       & $+$              & $-$      \\
   MSA            & Growth           & No growth\\
   Anaerobic      & Growth (weak)    & No growth\\
   Motility       &                  &          \\
   Indole production &               &          \\
   Hugh \& Leifsons  &               &          \\\bottomrule
 \end{tabular}%
}
\end{multicols}

\end{document}

在此处输入图片描述

相关内容