The culprit is caption
; in caption3.sty
we find
\caption@ifundefined\FB@makecaption{}{%
\caption@CheckCommand\@makecaption{%
% frenchb.ldf [2005/02/06 v1.6g French support from the babel system]
% frenchb.ldf [2007/10/05 v2.0e French support from the babel system]
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{#1\CaptionSeparator #2}%
\ifdim \wd\@tempboxa >\hsize
#1\CaptionSeparator #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}}
\ifx\@makecaption\STD@makecaption
\DeclareCaptionLabelSeparator{default}{\CaptionSeparator}
\def\caption@frenchb{% supress frenchb warning
\let\STD@makecaption\@makecaption
\let\FB@makecaption\@makecaption}
\else
\ifx\@makecaption\@undefined\else
\caption@InfoNoLine{%
The definition of \protect\@makecaption\space
has been changed,\MessageBreak
frenchb will NOT customize it}%
\fi
\fi
}
which effectively reverses the claim made in the documentation for babel-french
(section 1.2.3) that
When French is not the main language, the colon is preserved for all languages including French [...].
Indeed, if I try changing \CaptionSeparator
without loading caption
, the colon is used nonetheless. On the other hand, the change is honored when caption
is loaded even if french
is not the main language.
Temporary solution:
\renewcommand{\CaptionSeparator}{: }
babel
. But it seems intended: "In French, captions in figures and tables should never be printed as ‘Figure 1: ’ which is the default in standard LaTeX2e classes (a space should always preceed a colon in French), anyway ‘Figure 1 – ’ is preferred."babel-french
says, at the end of section 1.2.3, “When French is not the main language, the colon is preserved for all languages including French”. Bug.\renewcommand*{\CaptionSeparator}{...}
according tobabel-french
.caption
: if I remove\usepackage{caption}
, the colon appears.