Выравнивание арабских транскрипций - ʾ и ʿ

Выравнивание арабских транскрипций - ʾ и ʿ

При наборе лингвистических примеров с транскрипциями арабских буквхамзаиайн, ʾ и ʿ соответственно, выравнивание с буквальным переводом на строке ниже выглядит неуклюже. См. пример (1). Это также касается списков и табличных сред. Выравнивание в Таблице 1 не очень хорошее.

Способ исправить это — использовать , \llap{ʾ}чтобы сдвинуть этот символ влево и выровнять слово со вторым символом. Это дает гораздо более красивый (на мой взгляд) пример (2) и Таблицу 2.

Теперь к моему вопросу. Есть ли способ автоматизировать это? Я хочу, чтобы два символа, ʾ и ʿ, становились \llap{ʾ}и \llap{ʿ}, когда им предшествует пробел (и, если возможно, также символ табуляции) в определенных средах, в первую очередь example. Это решение будет работать для таблиц, если добавить пробел перед элементами, как в коде для Таблицы 1. Я думаю, что можно будет активировать эти символы. (Насколько я понимаю, можно активировать символы Unicode в XeLaTeX, который я и использую.) Я знаю о \@ifnextchar, но здесь нужно что-то вроде \@ifprevchar.

EDIT: Мне нужно решение, в котором я могу поместить отдельные слова в пример транскрипции в средах, например \textbf{}.

\documentclass{article}
\usepackage{fontspec}
%\usepackage[utf8]{inputenc}
\usepackage{array}

\usepackage{covington}


\begin{document}


\begin{example}
\gll bi-lātīk ʾanā ʾaktub ʾaḥla nuṣūṣ
with-latex I write prittyest texts
\glt `With \LaTeX{} I can write the prettiest texts.'
\glend
\end{example}

\begin{example}
\gll bi-lātīk \llap{ʾ}anā \llap{ʾ}aktub \llap{ʾ}aḥla nuṣūṣ
with-latex I write prittyest texts
\glt `With \LaTeX{} I can write the prettiest texts.'
\glend
\end{example}

\begin{table}[h!]
\centering
\caption{Ugly alignment}
\begin{tabular}{>{\itshape}ll}
 ʾanna & comp.\\
 ʾinna & `verily'\\
 lākinna & `but'\\
 laʿalla & `perhaps'\\
 layta & `if only'\\
\end{tabular}
\end{table}


\begin{table}[h!]
\centering
\caption{Nice alignment}
\begin{tabular}{>{\itshape}ll}
\llap{ʾ}anna & comp.\\
\llap{ʾ}inna & `verily'\\
lākinna & `but'\\
laʿalla & `perhaps'\\
layta & `if only'\\
\end{tabular}
\end{table}

\end{document}

введите описание изображения здесь

решение1

Нелегко, но выполнимо, по крайней мере для tabularи exampleили examples. Обратите внимание, как следует указывать изменение шрифта в таблице столбцов.

\documentclass{article}
\usepackage{fontspec}

\usepackage{etoolbox,array,collcell}

\usepackage{covington}

\makeatletter
\newrobustcmd{\checkforstart}{%
  \@ifnextchar ʾ{\llap}{\checkforayn}%
}
\newcommand{\checkforayn}{%
  \@ifnextchar ʿ{\llap}{}%
}
\makeatother

\newcolumntype{H}[1]{>{#1\collectcell\docheckforstart}l<{\endcollectcell}}
\newcommand{\docheckforstart}[1]{\checkforstart #1}


\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% For technical reasons this can't go in the preamble, sorry
\catcode`\^^M=12
\patchcmd{\getwords}{\strut}{\strut\checkforstart}{}{}%
\catcode`\^^M=5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{example}
\gll bi-lātīk ʾanā ʾaktub ʾaḥla nuṣūṣ ʿTEST
with-latex I write prittyest texts TEST
\glt `With \LaTeX{} I can write the prettiest texts.'
\glend
\end{example}

\begin{example}
\gll bi-lātīk \llap{ʾ}anā \llap{ʾ}aktub \llap{ʾ}aḥla nuṣūṣ ʿTEST
with-latex I write prittyest texts TEST
\glt `With \LaTeX{} I can write the prettiest texts.'
\glend
\end{example}

\begin{tabular}{H{\itshape} l}
ʾanna & comp.\\
ʾinna & `verily'\\
lākinna & `but'\\
laʿalla & `perhaps'\\
layta & `if only'\\
\end{tabular}

\end{document}

введите описание изображения здесь

Связанный контент