5

I have a table with two columns and 12 rows. I require the table to appear on the left hand side of the page (which I can do), however, the caption is centered on the page. I would like to place the caption underneath the table, and have it centered underneath the table. The output is shown below.enter image description here

\documentclass[12pt,english]{article}
\usepackage{caption}
\begin{document}
 \begin{table}[H]
 \begin{tabular}{|c|>{\centering}p{2cm}|}
 \hline 
  Year & Population (millions)\tabularnewline
  \hline 
   $1900$ & $1650$\tabularnewline
   $1910$ & $1750$\tabularnewline
   $1920$ & $1860$\tabularnewline
   $1930$ & $2070$\tabularnewline
   $1940$ & $2300$\tabularnewline
   $1950$ & $2560$\tabularnewline
   $1960$ & $3040$\tabularnewline
   $1970$ & $3710$\tabularnewline
   $1980$ & $4450$\tabularnewline
   $1990$ & $5280$\tabularnewline
   $2000$ & $6070$\tabularnewline
   \hline 
  \end{tabular}
  \raggedright{}\caption{World Population}\label{table1}
  \end{table}
 \end{document}

2 Answers 2

4

Here is a way (since you already want [H] option and have loaded the caption package I suppose it will be ok for you):

\documentclass[12pt,english]{article}
\usepackage{caption}
\usepackage{array}
\begin{document}
 % A \noindent is possibly needed here as @Mico suggested in his comment
 \noindent\begin{minipage}{0.35\textwidth}
 \centering
 \begin{tabular}{|c|>{\centering}p{2cm}|}
 \hline 
  Year & Population (millions)\tabularnewline
  \hline 
   $1900$ & $1650$\tabularnewline
   $1910$ & $1750$\tabularnewline
   $1920$ & $1860$\tabularnewline
   $1930$ & $2070$\tabularnewline
   $1940$ & $2300$\tabularnewline
   $1950$ & $2560$\tabularnewline
   $1960$ & $3040$\tabularnewline
   $1970$ & $3710$\tabularnewline
   $1980$ & $4450$\tabularnewline
   $1990$ & $5280$\tabularnewline
   $2000$ & $6070$\tabularnewline
   \hline 
  \end{tabular}
  \captionof{table}{World Population}\label{table1}
  \end{minipage}
 \end{document}

enter image description here

4
  • 1
    You probably need a \noindent instruction immediately before \begin{minipage}.
    – Mico
    Commented Mar 17, 2019 at 7:43
  • @Mico, I thought something like adding a second table after that (with \hfill in between). So, this is not probably for me... And I think that a centered caption under the table seems better and could be preferred as far as my taste let me decide. But thanks anyway.
    – koleygr
    Commented Mar 17, 2019 at 7:58
  • Sorry for not being sufficiently clear: The purpose of the \noindent directive would be to make the caption material start at the left-hand edge of the text block. (Right now, the minipage is shifted to the right by the non-zero value of \parindent.
    – Mico
    Commented Mar 17, 2019 at 8:33
  • 1
    Ok... you are right... Snce there is no text in there I didn't really payed attention on that and supposed that the part from the minipage and after could just be copy pasted and adjusted.... Thanks for mentioning... I will edit.
    – koleygr
    Commented Mar 17, 2019 at 8:39
4

Since the tabular material must be typeset flush-left (aka ragged-right), I think the caption would look better if it, too, where set flush-left. (However, see below for a different solution.) One can achieve this formatting objective by loading the caption package with the options singlelinecheck=false and justification=raggedright.

enter image description here

\documentclass[12pt,english]{article}
\usepackage{array,caption}
\captionsetup{singlelinecheck=false,justification=raggedright}
\begin{document}
\begin{table}[ht!]
 \begin{tabular}{|c|>{\centering\arraybackslash}p{2cm}|}
 \hline 
   Year & Population (millions)\\ \hline 
   $1900$ & $1650$\\
   $1910$ & $1750$\\
   $1920$ & $1860$\\
   $1930$ & $2070$\\
   $1940$ & $2300$\\
   $1950$ & $2560$\\
   $1960$ & $3040$\\
   $1970$ & $3710$\\
   $1980$ & $4450$\\
   $1990$ & $5280$\\
   $2000$ & $6070$\\ 
 \hline 
 \end{tabular}
\caption{World Population}\label{table1}
\end{table}
\end{document}

Alternatively, if the caption must be centered below the tabular material and the tabular material must be typeset flush-left, I suggest you (a) run \captionsetup{justification=centering}, (b) load the threeparttable package, and (c) encase both the tabular environment and the \caption statement in a threeparttable environment. This setup allows LaTeX to measure the width of the tabular material and to center the caption below the tabular; if needed, LaTeX will automatically insert line breaks in the caption. This behavior is shown in the following screenshot.

enter image description here

\documentclass[12pt,english]{article}
\usepackage{array,caption,threeparttable}
\captionsetup{justification=centering}
\begin{document}
\begin{table}[ht!]
\begin{threeparttable}
 \begin{tabular}{|c|>{\centering\arraybackslash}p{2cm}|}
 \hline 
   Year & Population (millions)\\ \hline 
   $1900$ & $1650$\\
   $1910$ & $1750$\\
   $1920$ & $1860$\\
   $1930$ & $2070$\\
   $1940$ & $2300$\\
   $1950$ & $2560$\\
   $1960$ & $3040$\\
   $1970$ & $3710$\\
   $1980$ & $4450$\\
   $1990$ & $5280$\\
   $2000$ & $6070$\\ 
 \hline 
 \end{tabular}
\caption{World Population}\label{table1}
\end{threeparttable}
\end{table}
\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .