因此,我一直在尝试使用 XeLaTeX 以传统格式排版波斯语和阿拉伯语诗歌,以获得令人满意的结果。它工作得很好——参见下面的示例文档——但我想获得行号。我希望格式看起来像这个例子,这是我使用一款不愿透露姓名的 Adobe 产品编写的另一首诗。
有人能想到在使用这些包时获取行号的方法吗? (bidipoem 和 XePersian) 谢谢!
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt,letterpaper]{article}
\usepackage{xltxtra}
\usepackage{fullpage}
\usepackage{hyperref}
\usepackage{setspace}
\usepackage{bidipoem}
\usepackage[Kashida]{xepersian}
\settextfont[Scale=1.4]{Scheherazade}
\setlatintextfont[Ligatures=TeX]{Brill}
\renewcommand{\thepage}{\texorpdfstring{\lr{\arabic{page}}}{\arabic{page}}}
\begin{document}
\begin{latin}
\title{Typesetting sample: \emph{Ghazal no.\ 1} of Ḥāfeẓ}
\author{}
\date{}
\maketitle
\section*{Persian text}
\end{latin}
\vspace{-4.5pc}
\begin{spacing}{1.5}
\begin{traditionalpoem}
\\الا یا ایّها الساقی ادر کأسا و ناولها&که عشق آسان نمود اول ولی افتاد مشکلها
\\به بوی نافهای کآخر صبا زان طره بگشاید&ز تاب جعد مشکینش چه خون افتاد در دلها
\\مرا در منزل جانان چه امن عیش چون هر دم&جرس فریاد میدارد که بربندید محملها
\\به می سجاده رنگین کن گرت پیر مغان گوید&که سالک بیخبر نبْوَد ز راه و رسم منزلها
\\شب تاریک و بیم موج و گردابی چنین هایل&کجا دانند حال ما سبکباران ساحلها
\\همه کارم ز خود کامی به بدنامی کشید آخر&نهان کی ماند آن رازی کز او سازند محفلها
\\حضوری گر همیخواهی از او غایب مشو حافظ
\\متی ما تلق من تهوی دع الدنیا و اهملها
\end{traditionalpoem}
\end{spacing}
\end{document}
答案1
XeTeX 的解决方案
我做到了!(我希望)结果是:
希望这能有效。
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt,letterpaper]{article}
\usepackage{xltxtra}
\usepackage{fullpage}
\usepackage{hyperref}
\usepackage{setspace}
\usepackage{bidipoem}
\usepackage[Kashida]{xepersian}
\settextfont[Scale=1.4]{Scheherazade}
\setlatintextfont[Ligatures=TeX]{Brill}
\newcount\LineNumber \newcount\templinenumber
\newdimen\linenumberskip \linenumberskip=-1em
\chardef\linestep=3
\def\poemlinenumber{%
\advance\LineNumber1
\templinenumber=\LineNumber
\computelinenumber
}
\def\computelinenumber{%
\ifnum\templinenumber>\linestep
\advance\templinenumber-\linestep
\expandafter\computelinenumber
\else
\ifnum\templinenumber=\linestep
\leavevmode\rlap{\kern\linenumberskip\the\LineNumber}%
\fi
\fi
}
\newenvironment{numberedpoem}
{\everypar{\everypar{\poemlinenumber}}%
\begin{traditionalpoem}}
{\end{traditionalpoem}}
\renewcommand{\thepage}{\texorpdfstring{\lr{\arabic{page}}}{\arabic{page}}}
\begin{document}
\begin{latin}
\title{Typesetting sample: \emph{Ghazal no.\ 1} of Ḥāfeẓ}
\author{}
\date{}
\maketitle
\section*{Persian text}
\end{latin}
\vspace{-4.5pc}
\begin{spacing}{1.5}
\begin{numberedpoem}
\\الا یا ایّها الساقی ادر کأسا و ناولها&که عشق آسان نمود اول ولی افتاد مشکلها
\\به بوی نافهای کآخر صبا زان طره بگشاید&ز تاب جعد مشکینش چه خون افتاد در دلها
\\مرا در منزل جانان چه امن عیش چون هر دم&جرس فریاد میدارد که بربندید محملها
\\به می سجاده رنگین کن گرت پیر مغان گوید&که سالک بیخبر نبْوَد ز راه و رسم منزلها
\\شب تاریک و بیم موج و گردابی چنین هایل&کجا دانند حال ما سبکباران ساحلها
\\همه کارم ز خود کامی به بدنامی کشید آخر&نهان کی ماند آن رازی کز او سازند محفلها
\\حضوری گر همیخواهی از او غایب مشو حافظ
\\متی ما تلق من تهوی دع الدنیا و اهملها
\end{numberedpoem}
\end{spacing}
\end{document}
我的代码不太灵活,但可能对你有帮助。我不确定行号是否正确。如果不正确,请\\
在第一行删除并添加vspace
pdflatex 的解决方案
使用ledarab
包和\arablnumrep
命令。
我不懂阿拉伯语,但这看起来正确:
%!TEX TS-program = pdflatex
%!TEX encoding = UTF-8 Unicode
\documentclass[11pt,letterpaper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{fullpage}
\usepackage{arabtex}
\usepackage{verses}
\usepackage{ledmac}
\usepackage{ledarab}
\setstanzaindents{0,0,0}
\lineation{section}
\setcounter{firstlinenum}{3}
\setcounter{linenumincrement}{3}
\setkomafont{disposition}{\rmfamily\mdseries}
\arablnumrep
\begin{document}
\title{Another \d H\=afe\d z \emph{ghazal} example}
\author{}
\date{}
\maketitle
\vspace{-4pc}
\section*{\emph{Ghazal} no.~1}
\beginnumbering
\linenummargin{right}
\pstart
\begin{arabtext} \setfarsi \transfalse \arabtrue \novocalize
\setversedim{70mm}{8mm}
\halfverses{'alA yA ayyuhA as-sAqI 'adir" ka's"aN wa nAwil"hA}{kiH `i^sq AsAn numUd awwal walI uftAd mu^skilhA}
\halfverses{baH bU-ye nAfaH"|I k'A_hir .sabA zAn .turraH bag^sAyad}{zi tAb"e zulf"e mu^skIna^s ^ciH _hUn uftAd dar dilhA}
\halfverses{baH may sajjAdaH rangIn kun garat pIr"e mu.gAn gUyad}{kiH sAlik bI_habar nab"w"ad zi rAH wa rasm"e manzilhA}
\halfverses{marA dar manzil"e jAnAn ^ciH amn"e `ay^s ^cUn har dam}{jaras faryAd mI"|dArad kiH bar bandId ma.hmilhA}
\halfverses{^sab"e tArIk wa bIm"e mawj wa girdAbI ^cunIn hA'il}{kujA dAnand .hAl"e mA sabukbArAn"e sA.hilhA}
\halfverses{hamaH kAram zi _hUdkAmI baH badnAmI ka^sId ArI}{nihAn kay mAnad An rAzI kaz An sAzand ma.hfilhA}
\halfverses{.hu.dUrI gar hamI _hwAhI azU .gA'ib ma^saw .hAfi.z}{matY mA talq"a man tahwY da`"a ad-dunyA wa 'ahmil"hA}
\end{arabtext} \transtrue \arabfalse
\pend
\endnumbering
\end{document}
答案2
编辑:interlude 已采用此代码并在上面的答案中对其进行了相当大的改进。
好吧,我也可以发布我一直在探索的另一个选项,非常有限的成功。这通过 pdflatex 运行,并且依赖于 arabtex、ledmac 和 verses 包。下面的代码基于我从朋友的朋友那里得到的一份文档。我认为我永远也不会自己想出这个,而且它仍然存在一些问题。
- 行号以拉丁字母显示,我想不出如何才能改变它。
- arabtex 使用的波斯/阿拉伯字体真的很糟糕。我希望我能说些好话,但与使用 XeTeX 的 SIL Scheherazade 等相比,它根本不是同一级别的。
无论如何,也许这至少会激发更多有经验的 TeX 用户的想法。
%!TEX TS-program = pdflatex
%!TEX encoding = UTF-8 Unicode
\documentclass[11pt,letterpaper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{fullpage}
\usepackage{arabtex}
\usepackage{verses}
\usepackage{ledmac}
\setstanzaindents{0,0,0}
\lineation{section}
\setcounter{firstlinenum}{3}
\setcounter{linenumincrement}{3}
\setkomafont{disposition}{\rmfamily\mdseries}
\begin{document}
\title{Another \d H\=afe\d z \emph{ghazal} example}
\author{}
\date{}
\maketitle
\vspace{-4pc}
\section*{\emph{Ghazal} no.~1}
\beginnumbering
\linenummargin{right}
\pstart
\begin{arabtext} \setfarsi \transfalse \arabtrue \novocalize
\setversedim{70mm}{8mm}
\halfverses{'alA yA ayyuhA as-sAqI 'adir" ka's"aN wa nAwil"hA}{kiH `i^sq AsAn numUd awwal walI uftAd mu^skilhA}
\halfverses{baH bU-ye nAfaH"|I k'A_hir .sabA zAn .turraH bag^sAyad}{zi tAb"e zulf"e mu^skIna^s ^ciH _hUn uftAd dar dilhA}
\halfverses{baH may sajjAdaH rangIn kun garat pIr"e mu.gAn gUyad}{kiH sAlik bI_habar nab"w"ad zi rAH wa rasm"e manzilhA}
\halfverses{marA dar manzil"e jAnAn ^ciH amn"e `ay^s ^cUn har dam}{jaras faryAd mI"|dArad kiH bar bandId ma.hmilhA}
\halfverses{^sab"e tArIk wa bIm"e mawj wa girdAbI ^cunIn hA'il}{kujA dAnand .hAl"e mA sabukbArAn"e sA.hilhA}
\halfverses{hamaH kAram zi _hUdkAmI baH badnAmI ka^sId ArI}{nihAn kay mAnad An rAzI kaz An sAzand ma.hfilhA}
\halfverses{.hu.dUrI gar hamI _hwAhI azU .gA'ib ma^saw .hAfi.z}{matY mA talq"a man tahwY da`"a ad-dunyA wa 'ahmil"hA}
\end{arabtext} \transtrue \arabfalse
\pend
\endnumbering
\end{document}