Tex: подробное описание С. М. Львовский
Создание новых окружений
Download 1.51 Mb. Pdf ko'rish
|
LaTeX-Lvovsky
4. Создание новых окружений
4.1. Новые окружения: общий случай Как мы уже имели возможность убедиться, для сокращения времени на написание длинных последовательностей команд удобно пользоваться макросами. В тех случаях, когда для до стижения необходимого нам эффекта требуется сложная последовательность команд в нача ле и в конце какого-то текста, L A TEX дает нам возможность создать оформить соответствую щие макросы в виде нового окружения. Как это делается, разберем на примере. Предположим, нам хочется взять в рамку абзац текста шириной 7 см. Один из возможных способов сделать это таков: \begin{tabular}{|p{7cm}|} \hline —TOT TEKST BUDET ZAKL@ˆEN W RAMKU. kAK WIDITE, OKRUVENIE, PREDNAZNAˆENNOE DLQ WERSTKI TABLIC, MOVNO ISPOLXZOWATX I DLQ “TIH CELEJ.\\ \hline \end{tabular} что даст на печати вот что: Этот текст будет заключен в рамку. Как видите, окружение, предназначен ное для верстки таблиц, можно ис пользовать и для этих целей. Если таких рамок с текстом у Вас много, то можно сократить число нажатий на клавиши, определив окружение с именем, скажем, RAMKA, так, чтоб можно было бы просто писать \begin{RAMKA} —TOT TEKST BUDET ... ... “TIH CELEJ. \end{RAMKA} Определяется это окружение так: \newenvironment{RAMKA}{\begin{tabular}{|p{7cm}|} \hline}{\\\hline\end{tabular}} В общем случае команда \newenvironment имеет такой формат: \newenvironment{ имя}{открывающие_команды}{закрывающие_команды} Здесь имя — имя определяемого окружения, открывающие_команды — команды и/или текст, подставляемые вместо команды \begin с именем окружения, закрывающие_команды — команды и/или текст, подставляемые вместо команды \end с именем окружения. Вместо окружения, определяемого с помощью \newenvironment, можно с тем же успе хом создать два макроса: один для открывающих_команд, другой для закрывающих. На пример, в нашем случае с рамкой можно было бы написать \newcommand{\NAˆATX}{\begin{tabular}{|p{7cm}|}\hline} \newcommand{\KONˆITX}{\\\hline\end{tabular}} VII.4. СОЗДАНИЕ НОВЫХ ОКРУЖЕНИЙ 157 и создавать рамки так: \NAˆATX —TOT TEKST... \KONˆITX Преимущество оформления такого рода конструкций в виде окружений состоит в том, что при этом легче контролировать ошибки: если Вы напишете \begin{RAMKA} и при этом забу дете написать соответствующую команду \end{RAMKA}, то L A TEX выдаст сообщение об ошиб ке, в котором ровно это Вам и скажет; если же Вы забудете команду \KONˆITX, то сообще ния об ошибке будут менее понятными. Кроме того, нелишне напомнить, что команды \begin и \end, ограничивающие окружение, ограничивают группу: все неглобальные определения и изменения параметров, происходящие внутри окружения, забываются по выходе из него. Новые окружения можно определять так, чтобы они принимали аргументы. Пусть, на пример, в зависимости от обстоятельств нам нужны рамки разной ширины. Тогда разумно модифицировать определение окружения RAMKA таким образом, чтобы ширина текста в рам ке передавалась ему как аргумент. Соответствующее определение будет выглядеть так: \newenvironment{RAMKA}[1]{\begin{tabular}{|p{#1}|} \hline}{\\\hline\end{tabular}} После этого можно писать, например, \begin{RAMKA}{6cm} tEKST... \end{ramka} или даже \begin{RAMKA}{.85\textwidth} tEKST... \end{ramka} Общие правила таковы. Чтобы создать окружение с аргументами, надо воспользоваться командой \newenvironment c необязательным аргументом. Этот необязательный аргумент ставится между первым и вторым обязательными; как и в случае с \newcommand, он означает количество аргументов, которые будет требовать окружение, и это количество не может пре вышать девяти; места, куда будут вставлены аргументы, по-прежнему обозначаются #1, . . . #9 , причем эти значки можно употреблять только в открывающих командах (то есть во втором обязательном аргументе команды \newenvironment) С помощью \newenvironment нельзя переопределить уже существующее окружение (ес ли Вы все же попробуете так сделать, L A TEX выдаст сообщение об ошибке). Если Вам дей ствительно необходимо такое переопределение, надо пользоваться командой \renewenvironment, работающей точно так же, как и \newenvironment, с тем различием, что в качестве первого аргумента ей можно передавать только имя уже существующего окружения. Download 1.51 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling