Shlama Mezdathkane (Hi XeTeXnicians)!

I'm using bidipoem to set some Syriac dialogue poems. I'm using the
traditionalpoem environment as each line is fourteen syllable long with
a caesura after the seventh syllable. So far, so good. However, as it's
a dialogue poem the speaker changes every other line, and these lines
are introduced with the name of the speaker followed by a colon.

As you can see from my attached example, the persona is included as a
part of the first hemistich, but to make the lines look nice it is also
included in the following three hemistiches within \phantom{} commands.
I also need to set \poemcolsep to -1em to close the 'phantom' gap. I
hope that makes sense.

Well, the problem is that it's not a pretty workaround and the beginning
of the first hemistich of each line doesn't line up, because personae
are of different lengths. I suppose I need some means of marking up each
line as having

        persona: first-hemistich & second-hemistich

and then working out how to set them properly. Any ideas how best to go
about this?

Thanks,

Gareth.

Attachment: bidipoem-test.pdf
Description: Adobe PDF document

\documentclass[12pt]{minimal}
\usepackage{polyglossia, bidipoem}
% Begin justification stuff
\chardef\zwj="200D
\chardef\ksh="0640
\chardef\D=10
\chardef\L=11
\chardef\R=12
\chardef\A=13
\chardef\V=256
\def\stretch{\zwj\nobreak \setbox0=\hbox{\ksh}%
    \leaders\hrule height\ht0 \hskip0pt plus 0.5em \zwj}
\def\setclass#1#2{\def\theclass{#1}\def\charlist{#2}%
  \expandafter\dosetclass\charlist,\end}
\def\dosetclass#1,#2\end{%
  \def\test{#1}\def\charlist{#2}%
  \ifx\test\empty\let\next\finishsetclass
  \else\XeTeXcharclass"\test=\theclass
     \let\next\dosetclass\fi
  \expandafter\next\charlist,,\end}
\def\finishsetclass#1,,\end{}
\setclass\A{0710}
\setclass\R{0715,0717,0718,0721,0728,072A,072C}
\setclass\D{0712,0713,071A,071B,071D,071F}
\setclass\D{0722,0723,0725,0729,072B}
\setclass\L{0720}
\setclass\V{0730,0731,0732,0733,0734,0735}
\setclass\V{0736,0737,0738,0739,073A,073B,073C}
\setclass\V{073D,073E,073F,0740,0741,0742,0743}
\setclass\V{0744,0745,0746,0747,0748}
\setclass\V{00AB,00BB}
\XeTeXinterchartoks\D\D={\stretch}%
	\XeTeXinterchartoks\L\D={\stretch}%
	\XeTeXinterchartoks\D\L={\stretch}%
	\XeTeXinterchartoks\L\L={\stretch}%
	\XeTeXinterchartoks\D\R={\stretch}%
	\XeTeXinterchartoks\D\A={\stretch}%
	\XeTeXinterchartoks\L\R={\stretch}%
	\XeTeXinterchartoks\L\A={}%
	\XeTeXinterchartokenstate=1
\setclass \A {0710}
\setclass \R {0715,0717,0718,0721,0728,072A,072C}
\setclass \D {0712,0713,071A,071B,071D,071F}
\setclass \D {0722,0723,0725,0729,072B}
\setclass \L {0720}
\setclass \V {0730,0731,0732,0733,0734,0735}
\setclass \V {0736,0737,0738,0739,073A,073B,073C}
\setclass \V {073D,073E,073F,0740,0741,0742,0743}
\setclass \V {0744,0745,0746,0747,0748}
% End justification stuff

\setmainlanguage{syriac}
\setmainfont[Script=Syriac]{Serto Jerusalem}
\renewcommand\poemcolsepskip{-1em}
\begin{document}
\begin{traditionalpoem}
		ܟܪܘܒ: %
		 ܠܴܐ ܡܶܫܟܰܚ ܐܱܢ̱ܬ ܕܬܷܥܘܿܠ ܠܟܳܐ&%
		\phantom{ܟܪܘܒ: }%
		ܕܰܐܬܪܱܐ ܗ̇ܘ ܙܰܗܝܳܐ ܘܠܴܐ ܡܶܬܕܪܫ.\\
		\phantom{ܟܪܘܒ: }%
		ܫܟܺܝܢܬܴܐ ܒܓܰܘܗ ܡܶܙܕܰܝܚܳܐ&%
		\phantom{ܟܪܘܒ: }%
		ܘܪܘܼܡܚܳܐ ܕܢ݀ܘܪܴܐ ܠܷܗ ܢܴ̇ܛܪܴܐ܀\\
		ܓܝ̇ܣܐ: %
		ܠܴܐ ܡܶܫܟܰܚ ܐܱܢ̱ܬ ܕܬܷܟܠܹܐ ܠܐ ܢܳܫ&%
		\phantom{ܓܝ̇ܣܐ: }%
		ܩܗܳܬ݀ ܠܴܗ̇ ܪܘܡܚܳܐ ܘܶܐܫܬܱܗܝܲܬ݀.\\
		\phantom{ܓܝ̇ܣܐ: }%
		ܙܩܝܼܦܴܐ ܦܱܬܚܗ̇ ܠܓܲܢܬ ܥܕܶܝܢ&%
		\phantom{ܓܝ̇ܣܐ: }%
		ܘܠܴܐ ܐܻܝܬ ܦܘܪܣܳܐ ܕܬܾܘܒ ܬܷܬܚܕ܀
\end{traditionalpoem}
\end{document}

--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
  http://tug.org/mailman/listinfo/xetex

Reply via email to