Детали не работают при использовании нескольких языков с полиглоссией

Детали не работают при использовании нескольких языков с полиглоссией

Я работаю над bookдокументом с xelatex. Документ разделен на parts, и мне иногда приходится переключаться между двумя языками.

Я обнаружил, что когда мой документ содержит более одного языка, номер partбольше не отображается:

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\begin{document}
  \selectlanguage{french}
  \selectlanguage{english}

  \part{My Part}
\end{document}

Результатом станет:

Не отображается номер детали

Если я использую только один язык, у меня не возникает никаких проблем:

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\begin{document}
  % \selectlanguage{french}
  \selectlanguage{english}

  \part{My Part}
\end{document}

Отображение номера детали

Главы и разделы работают хорошо в любом случае.

решение1

Язык frenchпереопределяет, \thepartчтобы ничего не выдать, потому что он хочет «Première partie». Так что если вы переключаетесь на французский, команда переопределяется, но переключение на английский не определяет ее обратно.

\documentclass{book}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{french}

\makeatletter
\let\latex@thepart\thepart
\appto\noextras@french{\let\thepart\latex@thepart}
\makeatother

\begin{document}

\selectlanguage{french}
\selectlanguage{english}

\part{My Part}

\end{document}

Сохраните исходную \thepartкоманду и восстановите ее при переключении языка с французского на другой.

Связанный контент