2010-11-20 10 views
7

Mi chiedevo se esiste un comando condizionale che posso usare in latex (ad es. \ Ifthenelse) che mi permetterebbe, in un caso, di usare la parola 'a' e in un altro uso la parola "un" basata sul fatto che la seguente parola inizia o meno con una vocale.a/an sostituzione in LaTeX

+3

È possibile trovare un'intera comunità su [TeX StackExchange] (http://tex.stackexchange.com/), in cui nessuna domanda correlata a TeX è troppo piccola. –

+0

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

risposta

3

TeX fornisce un \ chiaro se confronta le lettere. Quanto segue funzionerà, a meno che non facciate qualcosa come \ AOrAn \ myapplecommand, che darà risultati inaspettati.

\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} 

Non è possibile applicare manualmente un "un" come questo, ma si dovrebbe essere in grado di sopprimere scrivendo \ AOrAn {} università.

(A cura di prendere nota re casi eccezionali in considerazione.)

+0

Non va bene su questo. 'a' funziona ma non 'an'. Ad esempio, mi dà una cosa ma non una mela. –

+0

@Raffi Khatchadourian: divertente, funziona bene come copia e incolla dall'alto. –

+0

Potrebbe avere qualcosa a che fare con l'utilizzo di un comando come nome. Ad esempio, il mio codice dovrebbe leggere \ AOrAn \ Noun. –

1

Here avete alcuni esempi per utilizzare i condizionali in lattice.

6

Questo non funziona in generale, perché la decisione di utilizzare un o un si basa, non è meccanicamente sulla lettera che segue l'articolo, ma sulla sua pronuncia. Quindi "uno zio", ma "un'università" e "un onore".

+0

Buon punto. Ho modificato in tal senso, dovremmo includere una vocazione onoraria e le eccezioni flag. –

+0

Sì, è vero, ma ridurrebbe almeno il numero di casi in cui una modifica dovrebbe essere effettuata. –