Правильное выравнивание по правому краю цитаты на иврите в конце предложения на новой строке

Правильное выравнивание по правому краю цитаты на иврите в конце предложения на новой строке

У меня небольшая проблема с цитатами на иврите в документе, который я набираю. У меня есть цитаты из Библии в форме "Глава книги:стих: текст на иврите". Когда текст на иврите продолжается на следующей строке, он выравнивается по левому краю, а я хочу, чтобы он был по правому краю.

Использовать \flushrightне вариант, так как библейская ссылка все равно должна быть выровнена по левому краю. Использовать \hfillне вариант, так как я не знаю, где происходит перенос строки.

Пожалуйста, смотрите MWE ниже. Результат должен быть либо как в первом примере, но со второй строкой, выровненной по правому краю, либо, что эквивалентно, как во втором примере, но с первой строкой, выровненной по ширине.

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

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

\documentclass{article}

\usepackage[margin=4cm]{geometry}
\usepackage{showframe}

\usepackage{polyglossia} 
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\englishfont[Mapping=tex-text]{Latin Modern Roman}
\newfontfamily\hebrewfont[Scale=MatchLowercase]{Ezra SIL}
\DeclareTextFontCommand{\ez}{\hebrewfont}

\parindent0pt

\begin{document}

Nehemia 4:8b--c: \RL{\ez{אל־תיראו מפניהם את־אדני הגדול והנורא זכרו והלחמו על־אחיכם בניכם ובנתיכם נשיכם ובתיכם}}

\flushright{Nehemia 4:8b--c: \RL{\ez{אל־תיראו מפניהם את־אדני הגדול והנורא זכרו והלחמו על־אחיכם בניכם ובנתיכם נשיכם ובתיכם}}}

\end{document}

(Компилировать с помощью XeLaTeX. ТребуетсяШрифт Ezra SIL).

решение1

Попробуй это:

\documentclass{article}
\usepackage{parskip}
\usepackage{polyglossia} 
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont[Scale=MatchLowercase,Script=Hebrew]{SBL BibLit}
\pagestyle{empty}
\newenvironment{RTLpar}{%
  \par\ignorespaces
  \leftskip=0pt plus .5fil%
  \rightskip=0pt plus -.5fil%
  \parfillskip=0pt plus .5fil%
}{\par}
\newbox\linebox
\newcount\linecount
\def\countparlines{%
  \setbox\linebox\lastbox
  \ifvoid\linebox
  \else
    \global\advance\linecount 1%
    \unskip\unpenalty
    {\countparlines}%
  \fi}
\def\rtlpar#1{%
  \vskip-\baselineskip % This is a hack, but I don't know the proper solution
  \global\linecount=0%
  \vbox{#1\par\countparlines}%
  \ifnum\linecount>1
    \begingroup
    \leftskip=0pt plus .5fil%
    \rightskip=0pt plus -.5fil%
    \parfillskip=0pt plus .5fil%
    #1\par
    \endgroup
  \else
    #1\par
  \fi}
\begin{document}
\begin{RTLpar}
  Nehemiah 4:8b--c: \texthebrew{אל־תיראו מפניהם את־אדני הגדול והנורא זכרו
  והלחמו על־אחיכם בניכם ובנתיכם נשיכם ובתיכם}
\end{RTLpar}
\rtlpar{Nehemiah 4:8b--c: \texthebrew{אל־תיראו מפניהם את־אדני הגדול והנורא זכרו
והלחמו על־אחיכם בניכם ובנתיכם נשיכם ובתיכם}}
\rtlpar{Nehemiah 4:8a: \texthebrew{וארא ואקום ואמר אל־החרים ואל־הסגנים ואל
יתר העם}}
\begin{quote}
  \begin{hebrew}
    אל־תיראו מפניהם את־אדני הגדול והנורא זכרו והלחמו על־אחיכם בניכם ובנתיכם
    נשיכם ובתיכם (\textenglish{Nehemiah 4:8b--c})
  \end{hebrew}
\end{quote}
\end{document}

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

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