2010-11-20 24 views
7

ラテックス(例えば、\ ifthenelse)で使用できる条件付きのコマンドがあるかどうかは、あるケースでは「a」という単語を使用し、別の用途次の単語が母音で始まるかどうかに基づいて単語 'an'を生成します。LaTeXでの置換

+3

[TeX StackExchange](http://tex.stackexchange.com/)にコミュニティ全体がありますが、TeX関連の質問は小さすぎません。 –

+0

Now on tex.sx:http://tex.stackexchange.com/questions/6627/a-an-substitution-in-latex –

答えて

3

TeXは文字を比較するプレーンな\を提供します。あなたが\ 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} 

手動で「」このような強制することはできませんが、\ AOrAn {}大学を書き込むことによって、それを抑制することができるはずです。

(口座に例外的なケース再発言を取るために編集された。)

+0

いいえこれでいいです。 'a'は動作しますが、 'an'は動作しません。例えば、それは私に物を与えますが、リンゴは与えません。 –

+0

@Raffi Khatchadourian:面白いことに、上からコピー&ペーストされたようにここでうまくいきます。 –

+0

これは、コマンドを名詞として使用することと関係している可能性があります。たとえば、私のコードは\ AOrAn \ Nounを読むでしょう。 –

1

Hereラテックスで条件を使用する例がいくつかあります。

6

決定はは、次の文字の上に機械的にではなく、ベースとを使用するので、これは、一般的には動作しません。記事ではなく、その発音に関するものです。したがって、「叔父」ではなく「大学」であり、「名誉」である。

+0

良い点。私はその効果を修正しました。名詞の母音と旗の例外を含める必要があります。 –

+0

はい、それは本当ですが、少なくとも変更を行う必要があるケースの数を減らすことになります。 –

関連する問題