.png)
Только что купив третье издание The LaTeX Companion, я тестирую примеры, приведенные в книге. На стр. 78 пример рассматривает использование \labelformat и \Ref.
\documentclass[10pt,a4paper]{article}
\usepackage[nospace]{varioref}
%\usepackage{babel}
\labelformat{section}{section~#1}
\labelformat{equation}{equation~(#1)}
\begin{document}
\section{An example}\label{sec}
\Ref{sec} shows the use of the \verb=\labelformat= declaration with a reference to \ref{eq}.
\begin{equation} a = b \label{eq} \end{equation}
\end{document}
если вы добавите
\usepackage{babel}
с любым языком вы получите
! Incomplete \iffalse; all text was ignored after line 11.
Если заменить \Ref на \ref, все снова будет работать нормально, но, очевидно, вы потеряете верхний регистр первой буквы.
Есть ли способ обойти эту несовместимость?
Я пробовал с [english]babel и [french]babel и babel без вариантов. Я пробовал с pdfLaTeX, LaTeX, XeLaTeX, LuaLaTeX ... та же проблема ...
Спасибо
решение1
Вам следует сообщить об этом, babel
но быстрый способ решения проблемы — восстановить внутреннюю команду
\documentclass[10pt,a4paper]{article}
\usepackage[nospace]{varioref}
\makeatletter
\let\@kernel@ref@saved\@kernel@ref
\usepackage{babel}
\let\@kernel@ref\@kernel@ref@saved
\makeatother
\labelformat{section}{section~#1}
\labelformat{equation}{equation~(#1)}
\begin{document}
\section{An example}\label{sec}
\Ref{sec} shows the use of the \verb=\labelformat= declaration with a reference to \ref{eq}.
\begin{equation} a = b \label{eq} \end{equation}
\end{document}
babel
переопределяет некоторые \label
/ \ref
внутренние так, чтобы активные символы сокращений работали, но это отменяет тот патч, который, кажется, сбивает с толку некоторыми
\Ref
деталями. Поэтому некоторые символы, такие как "
те, которые активируются babel, могут не работать в метках после этого изменения.