Lettrine 和阿拉伯文字

Lettrine 和阿拉伯文字

我正在嘗試用乳膠排版帶有編號、無標題章節的文本,並希望文本中的章節編號始終很大。我已在拉丁文字中成功使用 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}

多語症的lettrine

您可能還想定義一個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}

相關內容