2010-11-20 16 views
7

Me preguntaba si hay un comando condicional que pueda usar en látex (por ejemplo, \ ifthenelse) que me permita, en un caso, usar la palabra 'a' y en otro uso la palabra 'an' se basa en si la siguiente palabra comienza o no con una vocal.una sustitución en LaTeX

+3

Puede encontrar toda una comunidad en [TeX StackExchange] (http://tex.stackexchange.com/), donde ninguna pregunta relacionada con TeX es demasiado pequeña. –

+0

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

Respuesta

3

TeX proporciona un simple \ si eso compara las letras. Lo siguiente funcionará, a menos que haga algo como \ AOrAn \ myapplecommand, que dará resultados inesperados.

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

Usted no puede hacer cumplir manualmente un "uno" como este, pero usted debería ser capaz de suprimirlo escribiendo \ Aoran {} universidad.

(Editado para tomar observación re casos excepcionales en cuenta.)

+0

Nada bueno en esto. 'a' funciona pero no 'an'. Por ejemplo, me da una cosa pero no una manzana. –

+0

@ Raffi Khatchadourian: gracioso, funciona bien aquí como copiar y pegar desde arriba. –

+0

Puede tener algo que ver con el uso de un comando como sustantivo. Por ejemplo, mi código leería \ AOrAn \ Noun. –

1

Here tiene algunos ejemplos para usar condicional en látex.

6

Esto no funcionará en general, debido a que la decisión de utilizar un o un se basa, no mecánicamente sobre la letra que sigue el artículo, pero en su pronunciación. Así 'un tío', pero 'una universidad' y 'un honor'.

+0

Buen punto. Me he modificado en ese sentido, tendríamos que incluir una vocal honoraria y excepciones de bandera. –

+0

Sí, eso es cierto, pero al menos reduciría el número de casos en los que se tendría que hacer un cambio. –