![Мемуары, babel[french] и @makecaption](https://rvso.com/image/272012/%D0%9C%D0%B5%D0%BC%D1%83%D0%B0%D1%80%D1%8B%2C%20babel%5Bfrench%5D%20%D0%B8%20%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
упаковку для его удаления.