Memoir、babel[フランス語]、@makecaption

Memoir、babel[フランス語]、@makecaption

memoir、、babelおよびパッケージに問題がありますcaption。ドキュメントをコンパイルすると、ログに次の警告が返されます。

Package frenchb.ldf Warning: The definition of \@makecaption has been changed,
(frenchb.ldf)                frenchb will NOT customise it;
(frenchb.ldf)                reported on input line 8.

問題は、フランス語babelではアクティブな文字を作成し:、その結果、その前後にスペースを入れる必要があることです。しかし、@makecaptionマクロが何らかの理由で再定義されているため、スペースが失われます。 の周りのタイポグラフィの動作を強制的に:正しくするにはどうすればよいでしょうか?

MWE は次のとおりです。

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}
\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

答え1

解決策1

フランス語のタイポグラフィではコロンの前後に通常の単語間スペースを置く必要があるという事実を利用します。

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}

\captiondelim{ : }

\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

解決策2

memoirコロンを によって再定義されるように使用するように教えます。これには、 が発行された場合、または の範囲内にあるbabel場合に通常のコロンが返されるという利点があります。\selectlanguage{english}\begin{otherlanguage}{english}

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}

\AtBeginDocument{%
  \begingroup\lccode`~=`:
  \lowercase{\endgroup\captiondelim{~ }}%
}

\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

ここに画像の説明を入力してください

に関する警告に関しては\@makecaption、残念ながら、それを保持するか、silence削除用のパッケージを使用する必要があります。

関連情報