2010-03-22 14 views
5

In meiner englischen These Latex-Datei, wie die folgenden nicht englischen Wörter zu erwähnen: François, École Fédérale?Spezielle Namen in Latex

Danke und Gruß!

+0

Schließen Wähler sollten in Betracht ziehen http://meta.stackexchange.com/questions/12918/can-we-have-a-ruling-on-latex-on-stackoverflow und http://meta.stackexchange.com/questions/7135/wo-sollte-eine-Frage-über-Latex-Verwendung-gehen – dmckee

Antwort

13

Der traditionelle Weg ist es, die Akzent schöpf Makros zu verwenden:

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

(Sie auch Fran\c{}cois oder Fran\c cois schreiben können, die \c Makro verwendet keine Parameter, die Klammern oder Leerzeichen sind nur ein Trick LaTeX zu ermöglichen . die richtigen Makronamen zu sehen)

Ansonsten versuchen Sie dies:

\usepackage[utf8]{inputenc} 

und die Akzente geben Sie direkt mit UT F-8 Codierung.

Es gibt eine Vielzahl von mehr oder weniger subtilen Probleme mit Schriftarten und Silbentrennung.

+0

+1 für die Erwähnung von utf8 in diesem Zusammenhang –

6

Wenn Sie nicht die UTF8-Inputenc-Route gehen, und doch feststellen, dass Sie viele dieser Namen schreiben, würde ich vorschlagen, Makros für sie zu definieren. Am einfachsten können Sie sagen

\newcommand\Francois{Fran\c cois}
, aber dann müssen Sie sicher sein, es als solches zu verwenden: \Francois{}, damit irgendwelche Räume danach nicht verschlungen werden.

Auf der anderen Seite arbeitet die folgende Technik auch ziemlich gut (obwohl ich nicht gutschreiben zu erfinden nehmen kann - ich habe es ursprünglich in einem kurzen Vortrag auf BachoTeX 2009 von Philip Taylor sah):

\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

Jetzt können Sie spezielle Namen definieren, z

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

und später Sie sie in Text mit

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

Sie können machen Sie Ihre Tags (die einfachen ASCII-Versionen) sein, was Sie wollen können - haben sie nicht tatsächlich verwandt sein die richtig akzentuierten Namen.


EDIT: als Antwort auf die Frage, die Namen falsch geschrieben Fehler nicht produzieren, können Sie die Definition von \[email protected] zu

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

Hinweis ändern, dass \@[email protected]{...}-\@[email protected]{...}\@eha geändert werden kann, und es wird mehr klagen mit Nachdruck. Oder wenn Sie vorgeben wollen, ein Paket zu sein (oder tatsächlich zu sein), können Sie \Package(Warning|Error){<package name>} anstelle von \@[email protected](warning|error) verwenden und es wird nicht mehr so ​​tun, als wäre es ein integrierter LaTeX-Fehler.

+0

+1; interessanter Trick! Eine kleine Bemerkung, though: vertippt "Schlüsselwörter" (z. B. ) zu einem leeren erweitern, ohne irgendeine Warnung/Fehler zu erzeugen. –