Главная » Просмотр файлов » Котельников И., Чеботаев П. LaTeX2e по-русски

Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 36

Файл №1185906 Котельников И., Чеботаев П. LaTeX2e по-русски (Котельников И., Чеботаев П. LaTeX2e по-русски.pdf) 36 страницаКотельников И., Чеботаев П. LaTeX2e по-русски (1185906) страница 362020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 36)

Все стили, кроме plain, по умолчанию выбирают \slshape.Можно также изменить шрифт заголовков теорем при помощи\theoremheaderfont{font-dcls}(theorem)В отличие от \theorembodyfont последняя декларация глобальна. Поэтому еёследует использовать в преамбуле и только в единственном числе.Наконец, ещё две команды\theorempreskipamount\theorempostskipamount(theorem)есть растяжимые длины, которые задают размер вертикальных промежутковсоответственно перед и после теоремы.В разделе 8.13 описан пакет amsthm, который выполняет примерно те жефункции, что и theorem по отношению к определению новых теоремоподобныхпроцедур, но ещё вводит процедуру proof, весьма удобную для изложения доказательств теорем.7.4.Пакет ifthenTEX имеет примитивные, по нынешним меркам, средства программирования.Они доступны во входном файле, предназначенном для LATEX’а.

Однако мы слишком отклонились бы от цели, начни сейчас рассказ о премудростях TEX’а, поскольку синтаксис его команд отличается от того, к чему Читатель, возможно,уже привык, осилив немалую часть нашей книги. К LATEX’у прилагается пакетifthen, который вводит простейшие средства программирования в привычном Читателю ключе, в том числе команды проверки условий и организации циклов.Впрочем, если наш уважаемый Читатель никогда в жизни не программировал,он может смело пропустить остаток главы.Пакет вводит две команды.

Первая из них\ifthenelse{test}{then-txt}{else-txt}(ifthen)имеет три аргумента. Сначала она проверяет условие, содержащееся в первом аргументе test. Если условие выполнено, то содержимое второго аргумента then-txtобрабатывается так, как если бы на месте команды \ifthenelse со всеми её аргументами был только её второй аргумент then-txt (без фигурных скобок). Если168Глава 7. Программируйте самиусловие нарушено, аналогичным образом обрабатывается третий аргумент elsetxt.

Эти два аргумента могут содержать любой текст, команды и процедуры,допустимые в данном месте входного файла. Первый аргумент test должен содержать выражение, которое LATEX может оценить либо как true (верно), либокак false (неверно). Это выражение может иметь одну из следующих форм:num1 op num2 Сравнение чисел num1 и num2 . Здесь op — один из трёх символов <, >, =. Например, соотношение \value{page}>17 оценивается как true(верно), если текущее значение счётчика страниц page больше 17.\equal{str1 }{str2 } Сравнение строк. Выражение оценивается как true, если компилятор считает строки str1 и str2 одинаковыми.

LATEX может рассматриватьстроки str1 и str2 как разные, даже если они будут напечатаны одинаково.Например, \today и 1␣мая␣2003 не равны даже 1 мая 2003 года. LATEX считаетстроки str1 и str2 одинаковыми, если замещение всех команд их определениями делает строки одинаковыми. Например, строки \3{С}Р и СССР одинаковы,если команда \3 определена следующим образом:\newcommand{\3}[1]{#1#1#1}Если заранее не ясно, могут ли быть равны две строки, надо немного поэкспериментировать.\lengthtest{len1 op len2 } Сравнение длин len1 и len2 , причём op — один изтрёх символов <, >, =.

Например, \lengthtest{\parindent<1cm} оценивается как true, если длина отступа в начале абзаца \parindent меньше одногосантиметра. При сравнении растяжимая длина заменяется её естественнойдлиной.\isodd{num} Соответствует true, если число num нечётно. Может использоваться при проверке, является ли текущая страница правой (нечётной) илилевой (чётной).

Однако очевидное решение \isodd{\value{page}} в данномслучае не работает, так как LATEX «выпускает» страницу (и соответственноувеличивает значение счётчика page), имея сформатированными «про запас»ещё несколько абзацев. Вместо этого следует нужное место входного файлапометить при помощи \label{key} и использовать \isodd{\pageref{key}}.Заметим также, что счётчик page имеет ожидаемое значение при обработкетекста, идущего в верхние и нижние колонтитулы страницы (раздел 17.1).\boolean{bool} Определяет текущее значение булевой переменной bool, где boolможет быть любой последовательностью букв.Булева переменная должна быть объявлена декларацией\newboolean{bool}(ifthen)а её значение устанавливается декларацией\setboolean{bool}{true-or-false}(ifthen)1697.5. Пакет calcгде true-or-false есть либо true, либо false.

В аргументе test допускается такжекомбинирование перечисленных выше условий. Комбинирование осуществляетсялогическими операторами\and (и)\or (или)\not (не)(ifthen)из простых условий, сгруппированных при помощи команд \( и \), исполняющихроль скобок.Вторая основная команда, вводимая пакетом ifthen,\whiledo{test}{do}(ifthen)повторяет процесс do до тех пор, пока условие test верно. Она ничего не делает,если условие test изначально не выполняется. Условие составляется так же, какдля команды \ifthenelse.Возможности, которые пакет ifthen предоставляет опытному программисту,продемонстрируем на примере создания команды \Gcd для вычисления наибольшего общего делителя двух чисел.

Она использует два счётчика ca и cb, последовательно вычитая меньшее число из большего, пока они не станут равны:\newcounter{ca}% Вводим счётчик ca.\newcounter{cb}% Вводим счётчик cb.\newcommand{\Gcd}[2]{ % Определяем команду с 2-мя аргументами.\setcounter{ca}{#1} % Присваиваем начальные значения.\setcounter{cb}{#2}Gcd(#1,#2) =%% Печатаем начальные значения.\whiledo{% Начинаем цикл.\not\(\value{ca}=\value{cb}\)%% Проверяем условие.}{%\ifthenelse{\value{ca}>\value{cb}} % Выбираем большее значение.{\addtocounter{ca}{-\value{cb}}}{\addtocounter{cb}{-\value{ca}}}gcd(\arabic{ca},\arabic{cb}) =%% Печатаем текущий результат.}%% Заканчиваем цикл.\arabic{ca}%% Печатаем итоговый результат.}% Заканчиваем определение команды.Поскольку в определении команды \Gcd предусмотрен вывод результата на каждом шаге вычислений, \Gcd{54}{30} напечатает всю цепочку преобразований:Gcd(54,30) = gcd(24,30) = gcd(24,6) = gcd(18,6) = gcd(12,6) = gcd(6,6) = 6.7.5.Пакет calcПакет calc переопределяет декларации\setcounter{ctr}{integer-expr}\addtocounter{ctr}{integer-expr}\setlength{len-cmd}{glue-expr}\addtolength{len-cmd}{glue-expr}(calc)170Глава 7.

Программируйте самитак, что вместо простого числа num или длины len (разделы 2.9 и 2.10) теперьони могут воспринимать в своих аргументах соответственно арифметические выражения integer-expr и растяжимые длины {glue-expr}.Целочисленные арифметические выражения integer-expr могут содержатьсчётчики, целые числа (или команды, в которых хранятся целые числовые значения) и бинарные операции сложения (+), вычитания (-), умножения (*) и деления (/). Круглые скобки используются, чтобы изменить порядок выполненияопераций.

В операциях с целыми числами дробная часть отбрасывается.\newcounter{leaf}\setcounter{leaf}{(\value{page}+1)/2}Пока напечатано \thepage\ страницна \theleaf\ листах.Пока напечатано 170 страницна 85 листах.При операциях с длинами все части арифметического выражения glue-expr,которые складываются или вычитаются, должны быть одного типа. Например,нельзя писать 2cm+3, но выражение 2cm+3pt является правильным. Нельзя такжеделить на длину, равно как и умножать на длину, то есть в операциях умножения и деления длина всегда должна быть первым сомножителем или делимым.Например, ошибкой будет 4*2cm, 2cm*4pt; правильно: 2cm*4.

Интересно, что приумножении растяжимой длины на целое число происходит увеличение как естественной, так и растяжимой части длины. Например, после\setlength{\parskip}{3pt plus 3pt * 2}вертикальный пробел \parskip между абзацами будет иметь значение 6pt plus6pt. Напомним, что слова plus и minus характеризуют степень растяжимостидлины (раздел 2.10); их не следует пытать со знаками математических операций+ и -.Ограничение по делению и умножению только на целое число снимается припомощи команд\real{decimal-num}\ratio{len-expr1}{len-expr2}(calc)Первая из них просто конвертирует текст decimal-num из цифр и десятичнойточки в вещественное число, а вторая обозначает число, получаемое от деленияlen-expr1 на len-expr2.При умножении растяжимой длины на вещественное число растяжимостьпропадает.

Так что в результате\setlength{\parskip}{3pt plus 3pt * \real{1.5}}вертикальный пробел \parskip между абзацами будет всегда равен 4,5 pt, а не4.5pt plus 4.5pt, как можно было бы предположить по аналогии с умножениемрастяжимой длины на целое число.В операциях с любыми числами LATEX отбрасывает дробную часть, если результат должен быть целым числом. Например,7.5. Пакет calc171\setcounter{x}{7/2}\setcounter{y}{3*\real{1.6}}\setcounter{z}{3*\real{1.7}}приписывает значение 3 счётчику x, значение 4 — счётчику y и значение 5 —счётчику z. Такое округление вниз применяется также ко всем промежуточнымрезультатам вычислений, поэтому следующая команда\setcounter{x}{3 * \real{1.6} * \real{1.7}}приравняет x к 6.Поскольку большинство команд LATEX’а проводят манипуляции с длинамипри помощи \setlength и \addtolength, в их аргументах, принимающих параметры длины, после загрузки пакета calc также разрешается использовать арифметические операции и растяжимые длины.

Характеристики

Тип файла
PDF-файл
Размер
5,42 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее