传统诗歌环境中的行号?

传统诗歌环境中的行号?

因此,我一直在尝试使用 XeLaTeX 以传统格式排版波斯语和阿拉伯语诗歌,以获得令人满意的结果。它工作得很好——参见下面的示例文档——但我想获得行号。我希望格式看起来像这个例子,这是我使用一款不愿透露姓名的 Adob​​e 产品编写的另一首诗。

有人能想到在使用这些包时获取行号的方法吗? (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 的解决方案

我做到了!(我希望)结果是:加扎勒在 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 包。下面的代码基于我从朋友的朋友那里得到的一份文档。我认为我永远也不会自己想出这个,而且它仍然存在一些问题。

  1. 行号以拉丁字母显示,我想不出如何才能改变它。
  2. 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}

相关内容