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



         

Команды с аргументами


Мы уже научились создавать новые команды, не требующие аргументов. Но мы хорошо знаем, что многие LaTeX'овские команды принимают аргументы, и часто возникает потребность создать новую команду с такими возможностями. Пусть, например, в вашем тексте часто встречается "символ Лежандра", выглядящий так:

\smb{a}{l}
. Для получения этого символа в исходном тексте надо написать (внутри формулы, естественно) так:

\left(\frac{a}{l}\right)

Хорошо бы создать команду \smb с двумя аргументами, чтобы можно было написать в формуле "\smb{a}{l}" и получить на печати

\smb{a}{l}
. Что ж, LaTeX предоставляет нам возможность сделать и это. Для создания команды с аргументами используется все та же команда \newcommand, но с необязательным аргументом2). Посмотрите, как можно определить команду \smb:

\newcommand{\smb}[2]{\left(\frac{#1}{#2}\right)}

Разберем, что означает эта запись. В квадратных скобках стоит количество аргументов в нашем макросе (в нашем случае 2). Далее, в самом "замещающем тексте" появились значки "#1" и "#2" . При развертывании макроса на их место будут подставляться соответственно первый и второй аргументы нашей новой команды \smb. Например, если в формуле написать

\smb{a+b}{c}

то будет напечатано

\smb{a+b}{c}
.

Теперь рассмотрим точные правила. Необязательный аргумент команды \newcommand, который должен быть расположен между двумя обязательными, указывает, сколько аргументов будет требовать создаваемая вами команда (макрос). Это количество аргументов не может быть более 9. В "замещающем тексте" места, на которые при развертывании макроса будут подставляться аргументы, обозначаются символами "#1" для первого аргумента, "#2" для второго аргумента и т.д. Эти символы могут идти в любом порядке и присутствовать любое количество раз (в том числе и ни разу). Когда мы будем использовать нашу новую команду в тексте, после ее имени в фигурных скобках должны будут следовать аргументы, ровно в том количестве и в том порядке, который мы указывали в необязательном аргументе команды \newcommand, каждый — в своей паре фигурных скобок (как обязательные аргументы любой другой LaTeX'овской команды).


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