
Beim Setzen sprachlicher Beispiele mit Transkriptionen der arabischen BuchstabenhamzaUndayn, ʾ bzw. ʿ sieht die Ausrichtung mit der wörtlichen Übersetzung in der Zeile darunter seltsam aus. Siehe Beispiel (1). Dies gilt auch für Listen und tabellarische Umgebungen. Die Ausrichtung in Tabelle 1 ist nicht schön.
Eine Möglichkeit, dies zu beheben, besteht darin, \llap{ʾ}
dieses Zeichen nach links zu verschieben und das Wort mit dem zweiten Zeichen auszurichten. Dies ergibt das (meiner Meinung nach) viel schönere Beispiel (2) und Tabelle 2.
Nun zu meiner Frage. Gibt es eine Möglichkeit, dies zu automatisieren? Ich möchte, dass zwei Zeichen, ʾ und ʿ, in bestimmten Umgebungen, hauptsächlich , zu \llap{ʾ}
und werden \llap{ʿ}
, wenn ihnen ein Leerzeichen (und wenn möglich auch das Tabulatorzeichen) vorangestellt wird example
. Diese Lösung würde für Tabellen funktionieren, indem vor den Elementen ein Leerzeichen eingefügt wird, wie im Code für Tabelle 1. Ich denke, es wäre möglich, diese Zeichen zu aktivieren. (Soweit ich weiß, ist es möglich, Unicode-Zeichen in XeLaTeX zu aktivieren, das ich verwende.) Ich weiß über \@ifnextchar
, aber was hier benötigt würde, wäre so etwas wie \@ifprevchar
.
EDIT: Ich brauche eine Lösung bei der ich einzelne Wörter in der Beispieltranskription in Umgebungen einfügen kann, zB \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}
Antwort1
Nicht einfach, aber machbar, zumindest für tabular
und example
oder examples
. Beachten Sie, wie Sie die Schriftartänderung in der Spaltentabelle angeben sollten.
\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}