土耳其语属格后缀命令

土耳其语属格后缀命令

在英语中,属格后缀’s的形状从不改变。例如,在 或’s表达式中,属格后缀的形状不变。然而,在土耳其语中,属格后缀的形状会改变,其中是一个变量,取决于添加属格后缀的单词的最后一个字母,而是另一个变量,取决于添加属格后缀的单词的最后一个音节中的元音。Alice’s bicycleFrank’s bicycle’{n}{i}n{n}{i}

这里有些例子:

  • Ezgi'{n}{i}n -> Ezgi'nin [Ezgi's]

  • Sıtkı'{n}{i}n -> Sıtkı'nın [Sıtkı's]

  • Utku'{n}{i}n -> Utku'nun [Utku's]

  • Hüsnü'{n}{i}n -> Hüsnü'nün [Hüsnü's]

  • Nefel'{n}{i}n -> Nefel'in [Nefel's]

  • Anıl'{n}{i}n -> Anıl'ın [Anıl's]

  • Ufuk'{n}{i}n -> Ufuk'un [Ufuk's]

  • Gönül'{n}{i}n -> Gönül'ün [Gönül 的]

想象一个\trgenitive命令附加到 TURKISHWORD 上,就像这样TURKISHWORD\trgenitive,并且打印TURKISKWORD’{n}{i}n,例如:

  1. 如果 TURKISHWORD 的最后一个字母是辅音,则 {n} 为空
  2. 如果 TURKISHWORD 的最后一个字母是元音,则 {n} 为 n
  3. 如果 TURKISHWORD 的最后一个元音是 i 或 e,则 {i} 是 i
  4. 如果 TURKISHWORD 的最后一个元音是 ı,那么 {i} 就是 ı
  5. 如果 TURKISHWORD 的最后一个元音是 u,那么 {i} 就是 u
  6. 如果 TURKISHWORD 的最后一个元音是 ü 或 ö,则 {i} 是 ü。

是否可以定义这样的\trgenitive命令?

答案1

您或许可以使用 LuaTeX 实现建议的后缀语法。

无论是使用 XeLaTeX 还是 LuaLaTeX,以下前缀语法都有效:

\documentclass{article}
\usepackage{xparse}
\usepackage{fontspec}

\ExplSyntaxOn

\NewDocumentCommand{\trgen}{m}
 {
  #1' \kutt_trgen:n { #1 }
 }

\prg_generate_conditional_variant:Nnn \tl_if_in:nn { ne } { T,F,TF }

\tl_new:N \l__kutt_trgen_word_tl

\cs_new_protected:Nn \kutt_trgen:n
 {
  \tl_if_in:neT {aeıioöuü} { \tl_item:nn { #1 } { -1 } } { n }
  \__kutt_trgen_vowel:n { #1 } n
 }

\cs_new_protected:Nn \__kutt_trgen_vowel:n
 {
  \tl_set:Nn \l__kutt_trgen_word_tl { #1 }
  \regex_replace_all:nnN { [^aeıioöuü] } { } \l__kutt_trgen_word_tl
  \str_case_e:nn { \tl_item:Nn \l__kutt_trgen_word_tl { -1 } }
   {
    {i}{i}
    {e}{i}
    {a}{ı}
    {ı}{ı}
    {u}{u}
    {ö}{ü}
    {ü}{ü}
   }
 }

\ExplSyntaxOff

\begin{document}

\trgen{Ezgi}\par
\trgen{Sıtkı}\par
\trgen{Utku}\par
\trgen{Hüsnü}\par
\trgen{Nefel}\par
\trgen{Anıl}\par
\trgen{Ufuk}\par
\trgen{Gönül}\par

\end{document}

其思路是先检查参数中的最后一个字母是否是元音;在单词和撇号之后,打印一个“n”,否则不打印任何内容。然后删除单词中的辅音,并对最后一个剩余项(元音)应用大小写切换。

在此处输入图片描述

相关内容