
Al componer ejemplos lingüísticos con transcripciones de letras árabes.hamzayAyn, ʾ y ʿ respectivamente, la alineación con la traducción literal en la línea siguiente parece incómoda. Ver ejemplo (1). Esto también se aplica a listas y entornos tabulares. La alineación en la Tabla 1 no es agradable.
Una forma de remediar esto es usar \llap{ʾ}
para empujar este carácter hacia la izquierda y hacer que la palabra se alinee con el segundo carácter. Esto proporciona el ejemplo (2) y la Tabla 2, mucho más atractivos (en mi opinión).
Ahora a mi pregunta. Hay alguna manera de automatizar esto? Quiero que dos caracteres, ʾ y ʿ, estén \llap{ʾ}
precedidos \llap{ʿ}
por un espacio (y si es posible también por el carácter de tabulación) en ciertos entornos, principalmente example
. Esta solución funcionaría para tablas agregando un espacio antes de los elementos, como en el código de la Tabla 1. Supongo que sería posible activar estos caracteres. (Hasta donde tengo entendido, es posible activar caracteres Unicode en XeLaTeX, que es lo que estoy usando). Conozco \@ifnextchar
, pero lo que se necesitaría aquí es algo como \@ifprevchar
.
EDITAR: Necesito una solución en la que pueda poner palabras individuales en la transcripción de ejemplo en entornos, por ejemplo \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}
Respuesta1
No es fácil, pero sí factible, al menos para tabular
y example
o examples
. Tenga en cuenta cómo debe especificar el cambio de fuente en la tabla de columnas.
\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}