У меня небольшая проблема с цитатами на иврите в документе, который я набираю. У меня есть цитаты из Библии в форме "Глава книги:стих: текст на иврите". Когда текст на иврите продолжается на следующей строке, он выравнивается по левому краю, а я хочу, чтобы он был по правому краю.
Использовать \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}