在排版带有阿拉伯字母转录的语言示例时哈姆扎和艾恩、ʾ 和 ʿ 分别表示,下一行与直译的对齐看起来很别扭。参见示例 (1)。这也适用于列表和表格环境。表 1 中的对齐效果不佳。
解决这个问题的方法是使用\llap{ʾ}
将此字符推到左侧并使单词与第二个字符对齐。这给出了更好看的(在我看来)示例 (2) 和表 2。
现在回答我的问题。有没有办法自动化?在某些环境中,主要是,我希望两个字符 ʾ 和 ʿ 前面有一个空格(如果可能的话,也可以是制表符)时变成\llap{ʾ}
和。此解决方案适用于表格,方法是在项目前添加一个空格,如表 1 的代码所示。我认为可以激活这些字符。(据我所知,可以在 XeLaTeX 中激活 Unicode 字符,我正在使用它。)我知道,但这里需要的是类似的东西。\llap{ʿ}
example
\@ifnextchar
\@ifprevchar
编辑:我需要一个解决方案,在其中我可以将单个单词放入环境中的示例转录中,例如\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}