I need the text in the second two columns to be center-aligned.
I also need someone to please help me clean up this table. It looks ugly.
Notice it is inside a multicols
(2-column) environment, because the context is a scientific report.
It is complex because it involves the interaction of several packages like tabularx
, multicol
and multirow
.
I tried to put it inside a table environment but this introduces float issues. I want to to be floated exactly at the location in which it takes place in the document. If need be, it should continue spill over into the next column or over the page.
\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}
Edit: In the following example, notice how the right hand margin of the table isn't being respected. How do I fix this?
Best Answer
The centering is easy -- just specify a "c" column, rather than an "X". In the solution below, I've left this as a
tabularx
table -- though I think it could as easily be a simpletabular
. (Personally, I think a left aligned column would be better in fact: that way the column edges line up nicely and eliminate the need for vertical rules; so I think you are making a design error, but I've done it how you asked for it.)For the rest, it's largely a matter of just cleaning up chartjunk -- the crud that is not really communicating information, but is taking up space. There's a lot of that in the original table.
Some of these decisions of course are a bit personal (like using all lower case) -- but space saving. Others (like eliminating vertical rules) are pretty fundamental.