Partes não funcionam ao usar vários idiomas com poliglossia

Partes não funcionam ao usar vários idiomas com poliglossia

Estou trabalhando em um bookdocumento com xelatex. O documento está dividido em parts, e ocasionalmente tenho necessidade de alternar entre dois idiomas.

Descobri que quando meu documento contém mais de um idioma, o partnúmero não é mais exibido:

\documentclass{book}

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

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

  \part{My Part}
\end{document}

Vai resultar em:

Não exibindo o número da peça

Se eu usar apenas um idioma, não terei nenhum problema:

\documentclass{book}

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

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

  \part{My Part}
\end{document}

Exibindo o número da peça

Capítulos e seções funcionam bem em qualquer caso.

Responder1

A frenchlinguagem se redefine \thepartpara não emitir nada, porque quer “Première partie”. Portanto, se você mudar para o francês, o comando será redefinido, mas mudar para o inglês não o definirá novamente.

\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}

Salve o comando original \theparte restaure-o quando o idioma mudar do francês para outro.

informação relacionada