拉丁字母和阿拉伯字母

拉丁字母和阿拉伯字母

我正在尝试使用 latex 排版带有编号、无标题章节的文本,并希望文本中的章节编号始终为大号。我成功地在拉丁文文本中使用了 lettrine,但在阿拉伯文中却出现了可怕的文本重叠。这就是我所做的。

    \documentclass{article}
    \usepackage{polyglossia}
    \usepackage{lettrine}
    \title{(My title)}
    \date{}

    \setmainlanguage{english}
    \setotherlanguage{farsi}
    \newfontfamily\englishfont{Gentium}
    \newfontfamily\farsifont[Script=Arabic,Scale=1.3,Ligatures=TeX,Mapping=arabicdigits]{Nazli}


    \begin{document}
    \maketitle
    \begin{farsi}


    \lettrine[lines=3]{1}{ }    تقدیم به عالیجناب تئوفیلوس:

تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند
     \end{farsi}
     \end{document}

有什么有用的建议吗?

答案1

我最终意识到切换章节号可以说明问题。(如果是“1”,文本和数字之间的重叠就不那么明显。如果是“8”,重叠就很明显了。)

我认为问题在于 lettrine 的设计是为了应对段落但原始代码在第一行后包含了一个段落分隔符。因此后续行无法正确缩进。使用换行符而不是段落分隔符可避免此问题。我在 \englishfont 中设置了章节编号,但它也适用于 \farsifont。

\documentclass{article}
\usepackage{polyglossia}
\usepackage{lettrine}
\usepackage{fontspec}
\title{(My title)}
\date{}

\setmainlanguage{english}
\setotherlanguage{farsi}
\newfontfamily\englishfont{Gentium}
\newfontfamily\farsifont[Script=Arabic,Scale=1.3,Ligatures=TeX,Mapping=arabicdigits]{Scheherazade-R.ttf}
\renewcommand{\LettrineTextFont}{\farsifont}
\renewcommand{\LettrineFontHook}{\englishfont}

\begin{document}
\maketitle
\begin{farsi}

\lettrine[lines=3]{8}{ }    تقدیم به عالیجناب تئوفیلوس:\\
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند

\end{farsi}
\end{document}

得出的结果为:

不知道这是什么意思,但我认为它是波斯语,用阿拉伯数字作为章节号(或者如果这是一章的话)

答案2

首先,如果你用波斯语排版,你应该完全考虑使用xepersian而不是polyglossia

lettrine其次,在非拉丁文字中使用需要特别注意:你的字体必须有x字符。否则,你将得到除以零的错误。你可以看看 Vafa Khalighibidi对此问题的评论,他是本文的作者这里用波斯语。

此示例在此处排版了您使用 所表达的意思xepersian,并且没有任何问题。

\documentclass{article}
\usepackage{lettrine}
\usepackage{xepersian}   
\settextfont{XB Zar}
\begin{document}
\lettrine[lines=3]{1}{ }    تقدیم به عالیجناب تئوفیلوس:\\
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام             کردهاند
 تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند 
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند
\end{document}

lettrine 与 xepersian

请注意,后面至少需要 3 行文本\lettrine。因此我多次复制了您的文本。

现在,如果您坚持使用polyglossia,这里有一个可行的示例\lettrine。唯一的修改是删除段落分隔符,以避免将丢失的字母与下一个段落合并。

\documentclass{article}
\usepackage{polyglossia}
\usepackage{lettrine}
\title{(My title)}
\date{}

\setmainlanguage{english}
\setotherlanguage{farsi}
\newfontfamily\englishfont{Gentium}
\newfontfamily\farsifont[Script=Arabic,Scale=1.3,Ligatures=TeX,Mapping=arabicdigits]{B Nazanin}{Nazli}


\begin{document}
\maketitle
\begin{farsi}


\lettrine[lines=3]{1}{ }    تقدیم به عالیجناب تئوفیلوس:\\
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام         کردهاند
\end{farsi}
\end{document}

多语种字母表

您可能还想定义一个chapter计数器和一个\chapter控制序列来自动执行此操作:

\documentclass{article}
\usepackage{lettrine}
\usepackage{xepersian}   
\settextfont{XB Zar}
\newcounter{chapter}
\newcommand{\chapter}{%
    \vskip2em
    \stepcounter{chapter}%
    \lettrine[lines=3]{\arabic{chapter}}{}%
}
\begin{document}
\chapter
    تقدیم به عالیجناب تئوفیلوس:\\
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام    کردهاند 
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام کردهاند 
تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام             کردهاند تا به حال نویسندگان بسیاری به نوشتن شرح وقایعی كه در بین ما رخ داده است، اقدام کردهاند
\end{document}

相关内容