textenglish를 사용한 후 폴리글로시아를 사용하여 \section{}에서 히브리어가 렌더링되지 않습니다.{}

textenglish를 사용한 후 폴리글로시아를 사용하여 \section{}에서 히브리어가 렌더링되지 않습니다.{}

나는 최근에 주요 언어가 히브리어이고 두 번째 언어가 영어인 경우에 이 문제를 겪었습니다. 다국어에서 \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. 뒷면은 이전 버전의 를 사용하므로 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}

관련 정보