2010-03-22 26 views
5

En mi archivo de látex de tesis en inglés, cómo mencionar las siguientes palabras no en inglés: François, École Fédérale?Nombres especiales en Latex

¡Gracias y saludos!

+0

Los votantes cercanos deben considerar http://meta.stackexchange.com/questions/12918/can-we-have-a-ruling-on-latex-on-stackoverflow y http://meta.stackexchange.com/questions/7135/where-should-a-question-about-latex-use-go – dmckee

Respuesta

13

La forma tradicional es el uso de los acentos y la adición de macros:

Fran\c{c}ois 
\'Ecole F\'ed\'erale 

(También puede escribir Fran\c{}cois o Fran\c cois; los \c macro utiliza sin parámetros, las llaves o el espacio son sólo un truco para permitir LaTeX . para ver el nombre de la macro adecuada)

de lo contrario, intente esto:

\usepackage[utf8]{inputenc} 

y escribe los acentos directamente, con UT Codificación F-8.

Hay una gran cantidad de problemas más o menos sutiles con fuentes y separación silábica.

+0

+1 por mencionar utf8 en este contexto –

6

Si no va por la ruta inputenc UTF8, y aun así se encuentra escribiendo muchos de estos nombres, le sugiero que defina macros para ellos. En el más simple, puede decir

\newcommand\Francois{Fran\c cois}
, pero luego debe asegurarse de usarlo como tal: \Francois{} para que los espacios no se engullen.

Por otro lado, la siguiente técnica funciona bastante bien también (aunque no puedo tomar crédito por la invención de que - lo vi originalmente en una breve charla en BachoTeX 2009 por Philip Taylor):

\makeatletter 
\let\[email protected]< 
\catcode`<13 
\def<{\ifmmode\[email protected]\else\expandafter\[email protected]\fi} 
\def\[email protected]#1>{\@nameuse{name.#1}} 
\def\DefineName#1#2{\@namedef{name.#1}{#2}} 
\makeatother

Ahora puede definir nombres especiales usando, por ej.

\DefineName{Francois}{Fran\c cois} 
\DefineName{Ecole Federale}{\'Ecole F\'ed\'erale}

y posteriormente se puede utilizar en el texto con

I ran into <Francois> at the <Ecole Federale> the other day.

Usted puede hacer sus etiquetas (las versiones de ASCII plano) ser lo que quieras - que no tienen que estar relacionados con realidad los nombres apropiadamente acentuados


EDIT: en respuesta a la cuestión que mal escrito nombres no producen errores, puede cambiar la definición de \[email protected] a

\def\[email protected]#1>{\ifcsname name.#1\endcsname 
    \@nameuse{name.#1}% 
\else 
    \@[email protected]{Undefined name #1}% 
\fi}

Tenga en cuenta que \@[email protected]{...} se puede cambiar a \@[email protected]{...}\@eha y se quejará más enérgicamente O si quiere pretender ser (o ser) un paquete, puede usar \Package(Warning|Error){<package name>} en lugar de \@[email protected](warning|error) y ya no pretende ser un error LaTeX incorporado.

+0

+1; ¡truco interesante! Sin embargo, una pequeña observación: las "palabras clave" mal escritas (por ejemplo, ) se expanden a un espacio en blanco sin producir ninguna advertencia/error. –

Cuestiones relacionadas