В моем английском латексном файле тезиса, как упомянуть следующее не английские слова: François, École Fédérale?
Спасибо и всего наилучшего!
Традиционным способом является использование макроса добавления акцента:
Fran\c{c}ois
\'Ecole F\'ed\'erale
(Вы также можете написать Fran \ c {} cois
или Fran \ c cois
; макрос \ c
не использует параметров; фигурные скобки или пробел - это всего лишь уловка, позволяющая LaTeX увидеть правильное имя макроса.)
В противном случае попробуйте следующее:
\usepackage[utf8]{inputenc}
и введите акценты напрямую в кодировке UTF-8.
Есть множество более или менее тонких проблем со шрифтами и расстановкой переносов.
Если вы не пойдете по пути UTF8 inputenc и при этом будете писать много таких имен, я бы предложил определить для них макросы. В самом простом случае вы можете сказать
\newcommand\Francois{Fran\c cois}но тогда вам нужно быть уверенным, что вы используете его в таком виде:
\Francois{}
, чтобы пробелы после него не были заглочены.
С другой стороны, следующая техника тоже работает довольно хорошо (хотя я не могу приписать себе заслуги в ее изобретении - я увидел ее в коротком докладе Филипа Тейлора на BachoTeX 2009):
\makeatletter \let\latex@less< \catcode`<13 \def<{\ifmmode\latex@less\else\expandafter\find@name\fi} \def\find@name#1>{\@nameuse{name.#1}} \def\DefineName#1#2{\@namedef{name.#1}{#2}} \makeatother
Теперь вы можете определять специальные имена, используя, например.
\DefineName{Francois}{Fran\c cois} \DefineName{Ecole Federale}{\'Ecole F\'ed\'erale}
и позже вы можете использовать их в тексте с
I ran into <Francois> at the <Ecole Federale> the other day.
Вы можете сделать ваши теги (обычные ASCII-версии) любыми, какими захотите - они не обязательно должны быть связаны с именами с правильным ударением.
\find@name
на.
\def\find@name#1>{\ifcsname name.#1\endcsname \@nameuse{name.#1}% \else \@latex@warning{Undefined name #1}% \fi}
Обратите внимание, что \@latex@warning{...}
можно изменить на \@latex@error{...}\@eha
и он будет жаловаться более настойчиво. Или если вы хотите притвориться (или на самом деле быть) пакетом, вы можете использовать \Package(Warning|Error){<имя пакета>}
вместо \@latex@(warning|error)
, и он больше не будет притворяться встроенной ошибкой LaTeX.