在LaTeX中进行替换

Raf*_*ian 7 latex

我想知道是否有一个我可以在乳胶中使用的条件命令(例如,\ ifthenelse)允许我在一种情况下使用单词'a'而在另一种情况下使用单词'an'基于是否或者不是下面的单词以元音开头.

Nor*_*ray 6

这通常不起作用,因为使用aan的决定是基于文章后面的字母,而不是机械上的,而是基于其发音.因此,"叔叔",但"大学"和"荣誉".


Ulr*_*arz 3

TeX 提供了一个简单的 \if 来比较字母。以下内容将起作用,除非您执行类似 \AOrAn \myapplecommand 的操作,这会产生意外的结果。

\documentclass{article}
\makeatletter
\newcommand\AOrAn[1]{%
  a%
  \@for\@vowel:=a,e,i,o,u,y,A,E,I,O,U,Y\do{%
    \expandafter\ifx\@vowel#1%
      n%
    \fi
  } % keep this space
  #1%
}

\makeatother
\begin{document}
\AOrAn apple, \AOrAn orange, \AOrAn banana.


an apple, an orange, a banana.
\end{document}
Run Code Online (Sandbox Code Playgroud)

您无法像这样手动强制执行“an”,但您应该能够通过编写 \AOrAn {}university 来抑制它。

(编辑以考虑特殊情况的评论。)