\documentclass[12pt]{article}
\usepackage{csvsimple,filecontents}
\usepackage{fontspec}
\usepackage[american]{babel}
\usepackage{libertine}
\newfontfamily\arabicfont[Script=Arabic,Scale=2]{Amiri}
\usepackage[fullvoc]{arabluatex}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
[Possessive Construction[possessor[\arb{al-kitAbi}]][possessed[\arb{.A_ayAtu}]]]
\end{forest}
\end{document}
因为阿拉伯语是从右到左的,在上面的“树”中,我需要以相反的顺序输入单词。对于这个短语来说,这是可以的,但对于长句子来说,可能容易出错。我能做些什么,让我从左到右输入单词,然后输出结果从右到左?
答案1
在 中这相当简单forest
。它有一个reversed
键,可用于反转节点的顺序。这可应用于整个树以获得正确的阿拉伯语书写顺序,即使树是按照阿拉伯语口语顺序输入的。
在以下示例中,我创建了一个名为的样式written order
,它将反转树中的所有节点以反映书写顺序。树可以按口语顺序输入。
由于我是一名句法学家,我为阿拉伯语句子提供了一个相当正确的树,显示了动词移动的踪迹,但由于我不了解阿拉伯音译系统,所以我使用了一种临时版本。我添加了一个辅助样式,arabic
它将终端节点的内容包装在\arb
宏中,这样您就不必为每个单词都输入它。我选择用尖括号显示移动的踪迹,但只显示音译形式。感谢@cfr 帮助我选择将not arb
任何特定节点设为非阿拉伯语。
% !TEX TS-program = LuaLaTeX
\documentclass{article}
\usepackage[linguistics]{forest}
\usepackage{libertine}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\usepackage[fullvoc]{arabluatex}
\usepackage[margin=1in]{geometry}
\forestset{
declare boolean={arb}{1},
arabic/.style={
where n children={0}{
tier=word,
delay={
if arb={content={\arb{##1}}}{},
},
}{}
},
written order/.style={for tree=reversed},
}
\newcommand{\trace}[1]{$\langle$#1$\rangle$}
\begin{document}
\begin{forest}arabic
[TP
[T [ra'aa] ]
[VP
[DP [D [al]] [NP [N [rajul]]]]
[V'
[V [{\arb[trans]{\trace{ra'aa}}}]]
[DP [D [al] ] [NP [N [filam]]]]
]
]
]
\end{forest}
\hfill
\begin{forest}written order,arabic
[TP
[T [ra'aa]]
[VP
[DP [D [al]] [NP [N [rajul]]]]
[V'
[V [{\arb[trans]{\trace{ra'aa}}}]]
[DP [D [al]] [NP [N [filam]]]]
]
]
]
\end{forest}
\end{document}