[Tex/LaTex] Raggedright and caption package

captionshorizontal alignment

I am trying to format my tables and figures' captions with the caption package. What I want is the caption label separated from the caption text by a new line and both of them completly to the left margin. Here is my attempt (and MWE):

\documentclass[a4paper,10pt]{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{threeparttable,booktabs}
\usepackage{lipsum}

\usepackage{ragged2e}
\usepackage{caption}
\captionsetup{%
   labelsep=newline,
   justification=raggedright,
   labelfont=bf
}

\begin{document}
\lipsum[1]
\begin{table}[htpb]\centering
\caption{Title.}
\begin{tabular}{@{}ccc@{}}\toprule
  abc & abc & abc \\
  abc & abc & abc \\
\bottomrule
\end{tabular}
\end{table}
\lipsum[1]
\end{document}

And this is the output:

Caption with options enabled

This only way to do what I want is to created a long title:

Long title with option disabled

Then the raggedleft option works:

Long title with raggedleft

Am I missing something ? Why don't raggedright and raggedleft options work for a sort caption ?

Best Answer

By default, short captions (spanning no more than one line) will be centered (this is so in standard LaTeX, and the caption package honors this convention); deactivate this using singlelinecheck=off:

\usepackage{caption}
\captionsetup{%
   labelsep=newline,
   justification=raggedright,
   labelfont=bf,
  singlelinecheck=off
}