Работа в системе LaTeX


         

Причина проста: TeX исправно подставляет


Причина проста: TeX исправно подставляет вместо \Pn тот "замещающий текст", который вы ему сообщили во втором аргументе команды \newcommand. В результате этого при развертывании макроса \Pn текст $x\in\Pn$ превращается в незаконный текст $x\in$\mathbf P^n$$, в котором математическая формула заканчивается со вторым из знаков доллара, а символ ^ оказывается посреди обычного текста. Чтобы можно было напечатать
не только изолированно, не надо включать знаки доллара в определение:

\newcommand{\Pn}{\mathbf{P}^n} При этом придется, конечно, ставить знаки доллара вокруг \Pn в тех случаях, когда в тексте встречается просто
, но зато наш макрос можно будет использовать и как составную часть более сложных формул.

Есть, впрочем, и более удачный способ борьбы с этой проблемой: определите\Pn как

\newcommand{\Pn}{\ensuremath{\mathbf{P}^n}} (без всяких знаков доллара) — и вы сможете спокойно пользоваться своей новой командой \Pn как в тексте, так и в формулах:

Пусть \Pn~ — $n$---мерное проективное пространство, а $X\subset \Pn$~ — неприводимое многообразие... (знаки ~ мы поставили, чтобы строчка не смогла начаться с тире —c.103). Команда \ensuremath всегда обрабатывает свой аргумент как математическую формулу, независимо от того, в тексте или в формуле вы ее используете.

Создавать макросы полезно не только для сокращения числа нажатий на клавиши при наборе формул. Вот пример, когда макросы помогают и при наборе обычного текста. Предположим, в нашем тексте много задач, причем условие каждой из задач начинает новый абзац (как обычно и бывает). Предположим также (временно), что эти задачи никак не нумеруются. Слово "Задача", с которого начинается условие, хочется как-то выделить в тексте; предположим, мы решили выделять его жирным шрифтом. Давайте создадим макрос, который будет делать все это за нас, чтобы можно было не печатать каждый раз слово "Задача", а просто написать \z. Первым обычно приходит в голову что-нибудь такое:

\newcommand{\z}{\bfseries Задача} Посмотрите, что из этого выйдет:

\z. Пять парней за пять дней съели пять окуней. За сколько дней пятнадцать парней съедят пятнадцать окуней?
<

Содержание  Назад  Вперед