Иврит не отображается в \section{} при использовании полиглоссии после использования textenglish{}

Иврит не отображается в \section{} при использовании полиглоссии после использования textenglish{}

У меня недавно возникла эта проблема, когда основным языком был иврит, а вторым - английский. Когда я использую команду \textenglish{} в полиглоссии, она не позволяет ивриту в разделах отображаться правильно.

например вот латекс

% Compile using XeLaTeX
\documentclass[a4paper]{article}
\usepackage{polyglossia}

\setmainlanguage[calendar=gregorian]{hebrew}
\setotherlanguage{english}

\newfontfamily{\hebrewfont}[Script=Hebrew]{David CLM}
\newfontfamily{\hebrewfontsf}[Script=Hebrew]{Miriam CLM}
\newfontfamily{\hebrewfonttt}[Script=Hebrew]{Miriam Mono CLM}

\newcommand{\HEBipsum}{לורם איפסום דולור סיט אמט, קונסקטורר אדיפיסינג אלית גולר מונפרר סוברט לורם שבצק יהול, לכנוץ בעריר גק ליץ, ושבעגט ליבם סולגק. בראיט ולחת צורק מונחף, בגורמי מגמש. תרבנך וסתעד לכנו סתשם השמה - לתכי מורגם בורק? לתיג ישבעס.}

\begin{document}

\section{אחד 1}
\HEBipsum

\section{שתיים 2}
\HEBipsum
\textenglish{english inline}
\HEBipsum

\section{שלוש 3}
\HEBipsum

\end{document}

и это сгенерированный PDF-файл

введите описание изображения здесь

видите, как иврит не отображается, и даже цифры превращаются обратно в английский в третьем разделе.

Я скомпилировал с помощью Xelatex, но использование Lualatex приводит к той же проблеме.

  • есть какие-нибудь исправления?

решение1

О проблеме сообщено наhttps://github.com/reutenauer/polyglossia/issues/603и исправлено в версии 1.65. Поскольку overleaf использует старую версию polyglossia, вы можете «применить» патч самостоятельно:

\documentclass[a4paper]{article}
\usepackage{polyglossia}

\setmainlanguage[calendar=gregorian]{hebrew}
\setotherlanguage{english}

\newfontfamily{\hebrewfont}[Script=Hebrew]{David CLM}
\newfontfamily{\hebrewfontsf}[Script=Hebrew]{Miriam CLM}
\newfontfamily{\hebrewfonttt}[Script=Hebrew]{Miriam Mono CLM}

\newcommand{\HEBipsum}{לורם איפסום דולור סיט אמט, קונסקטורר אדיפיסינג אלית גולר מונפרר סוברט לורם שבצק יהול, לכנוץ בעריר גק ליץ, ושבעגט ליבם סולגק. בראיט ולחת צורק מונחף, בגורמי מגמש. תרבנך וסתעד לכנו סתשם השמה - לתכי מורגם בורק? לתיג ישבעס.}

\ExplSyntaxOn
\makeatletter
\cs_set:Nn \__xpg_textlanguage:nnnn
  {
    \tl_if_blank:nTF {#3}
      {
        \msg_show:nnn { polyglossia } { languagenotloaded } {#2}
      }{
        % Store embedding language name
        \global\let\xpg@save@languagename\languagename
        \group_begin:
        \bool_set_true:N \__xpg_inline_lang
        \xpg@otherlanguage[#1]{#3}
        \csuse{date#3}
        % This is a hook for external packages which want to access variants
        % via babelname (such as biblatex)
        \cs_if_exist_use:c{date@bbl@\babelname}
        \polyglossia@lang@settextdirection:nn{#3}{#4}
        \group_end:
        % Reset the language's/script's font families if the embedding script is latin
        \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\xpg@save@languagename/lcscript}}{latin}
        {\resetfontlatin}
        % In case a \<lang>font is defined, re-activate that
        \xpg@set@normalfont{\xpg@save@languagename}
    }
  }
\cs_generate_variant:Nn \__xpg_textlanguage:nnnn {nnen}
\makeatother
\ExplSyntaxOff

\begin{document}

\section{אחד 1}
\HEBipsum

\section{שתיים 2}
\HEBipsum
\textenglish{english inline}
\HEBipsum

\section{שלוש 3}
\HEBipsum

\end{document}

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