Если вы не пойдете по пути 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){<package name>}
вместо \@latex@(warning|error)
, и он больше не будет представлять собой встроенную ошибку LaTeX.