![Memoir、babel[フランス語]、@makecaption](https://rvso.com/image/272012/Memoir%E3%80%81babel%5B%E3%83%95%E3%83%A9%E3%83%B3%E3%82%B9%E8%AA%9E%5D%E3%80%81%40makecaption.png)
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
削除用のパッケージを使用する必要があります。