叙利亚语缩写标记

叙利亚语缩写标记

我正在尝试在 XeLaTeX 中实现叙利亚语缩写标记(参见此处:http://en.wikipedia.org/wiki/Syriac_Abbreviation_Mark)。

我想到的代码如下:

\catcode`^^^^070f=13
\chardef\zwj="200D
\def^^^^070f#1 {\zwj\aemph{#1}\ }

现在我可以在文本中使用控制字符(假设我有叙利亚语字体):

\documentclass{article}

\usepackage{polyglossia}

\setmainlanguage{syriac}

\setmainfont{Estrangelo Edessa}


\catcode`^^^^070f=13
\chardef\zwj="200D
\def^^^^070f#1 {\zwj\aemph{#1}\ }

\begin{document}

ܫܠ܏ܡܳܐ ܫܠܡܐ.

\end{document}

结果如下:

叙利亚语缩写标记示例

这并不完美,原因有二。首先,它需要一个空格来结束控制序列(事实上,它应该以任何非叙利亚字符结束)。其次,理想情况下,结果应该是一条带有 3 个点的上划线(开头、结尾和中间 - 例如,参见上面的维基百科文章)。

有人能帮我解决这个问题吗?

答案1

它现在已经在字体中实现(根据 Werner 的问题)。

缩写标记

随机unicode输入,用xelatex编译。

梅威瑟:

\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}

\usepackage{polyglossia}
%Options:
%‣ numerals = western (i.e., 1234567890), eastern (for which the Oriental Arabic
%numerals are used: ١٢٣٤٥٦٧٨٩٠), or abjad.  .
%v1.0.1
%Commands:
%\abjadsyriac ‣ \abjadsyriac (see section 9)
%\aemph ‣ \aemph (see section 6.1).

\setdefaultlanguage[numerals=abjad]{syriac}
\setotherlanguage{english}

\newfontfamily\fgfontc[Scale=2.3,Script=Syriac,Colour=green]{Noto Sans Syriac Eastern}
\newfontfamily\fgfontck[Scale=2.3,Script=Syriac,Colour=blue]{Noto Sans Syriac Eastern}\newfontfamily\fgfontd[Scale=4.5,Script=Syriac,Colour=red]{Noto Sans Syriac Eastern}
\newfontfamily\fgfontdk[Scale=4.5,Script=Syriac,Colour=blue]{Noto Sans Syriac Eastern}

\setmainfont{Noto Sans Syriac Eastern}
\newfontfamily\englishfont{Noto Serif}

\begin{document}

\pagestyle{empty}

\begin{center}


\begin{english}
Syriac font,
with \textbackslash kern and \textbackslash llap commands. 
\end{english}

\fgfontc ܞ܏ܞܭܬܩܨܧܦܗܡܠܡܐ\kern-1.25pt\llap{\fgfontck ܞ܏ܞܭܬܩܨܧܦܗܡܠܡܐ}

܏ܘܗܖ܏ܛܚܙ܏ܩ܏ܨܧ܏܏܏ܤ

\fgfontd  ܞ܏ܞܭܬܩܨܧܦܗܡܠܡܐ\kern-1.45pt\llap{\fgfontdk ܞ܏ܞܭܬܩܨܧܦܗܡܠܡܐ}

\end{center}

\begin{english}
Syriac font, regular and bold:
\end{english}


ܞ܏ܞܭܬܩܨܧ ܦܗܡܠܡܐ

\bfseries
ܞ܏ܞܭܬܩܨܧ ܦܗܡܠܡܐ 

\mdseries\Large
ܞ܏ܞܭܬܩܨܧܦܗܡܠܡܐ 

\bfseries
ܞܭܬܩ܏ܨܧ܏ܦܗܡܠܡܐ 
܏ܘܗܖ܏ܛܚܙ܏ܩܨܧܤ

\end{document}

答案2

这是一个 TikZ 方法:

\documentclass{article}
\usepackage{tikz}
\usepackage{xspace}
\tikzstyle{zwj}=[inner sep=0pt,outer sep=0pt,anchor=base]
\tikzstyle{zwjdot}=[circle,draw,fill,inner sep=0pt,outer sep=0pt,minimum width=1pt]
\newcommand{\zwj}[1]{%
   \tikz[baseline]{
      \node[zwj] (text) {#1};
      \useasboundingbox (text.base west) rectangle (text.north east);
      \draw ([yshift=2ex]text.base west) -- ([yshift=2ex]text.base east)
         node[pos=0,zwjdot] {}
         node[pos=1,zwjdot] {}
         node[pos=0.5,zwjdot] {};
   }%
}
\begin{document}

\begin{tabular}{ll}
foobar         & puckluck \\
\zwj{foo}bar   & \zwj{puck}luck
\end{tabular}
\end{document}

此时,下降线正在改变垂直对齐方式。我稍后会再尝试。

示例代码输出

答案3

OpenType 已经引入了用于生成这种特殊上划线的“stch”功能,如果您使用某些 TeX 引擎(如最新版本的 XeTeX),您就可以获得适当的效果。

相关内容