Работа с TeX/LaTeX с использованием пакета AUCTeX
TeX-mode не обеспечивает в полной мере полноценной работы с исходными текстами TeX/LaTeX. Для обеспечения более комфортабельной работы с этими файлами, был разработан пакет AUCTeX который обеспечивает следующие возможности:
- поддержку работы с TeX/LaTeX/ConTeXt;, с автоматическим выбором соотвествующего набора команд;
- подстветку синтаксиса команд TeX;
- ввод команд, названий разделов и окружений, с использованием дополнения имен и парамаетров;
- быстрый ввод команд изменения шрифтов;
- правильный ввод TeX’вских кавычек;
- вставку математических команд с помощью меню и клавиатуры;
- запуск внешних команд для обработки исходных текстов и просмотра результатов;
- показ ошибок компиляции и переход на соответствующее место в исходных текстах;
- поддержка документов, состоящих из нескольких файлов;
- скрытие частей документа (fold);
- поддержка макросов и окружений, предоставляемых специальными стилевыми файлами;
- возможность создания поддержки для стилевых файлов пользователя.
Это только основные возможности пакета. Более подробную информацию вы можете найти в справочных страницах пакета или на сайте Emacs WiKi.
Установка пакета
Для установки пакета требуется наличие относительно свежих версий GNU Emacs (как минимум версия 21), или XEmacs версии 21. Для обработки файлов с исходными текстами требуется наличие работающего LaTeX. А для сборки пакета также потребуется наличие пакета texinfo.
Сборка пакета производится с помощью стандартных скриптов configure . Тонкая настройка параметров производится с помощью опций configure . После настройки пакета нужно выполнить лишь две команды: make — для сборки, и make install — для установки.
Загрузка пакета производится с помощью следующих команд, помещенных в файл инициализации Emacs:
(setq load-path (cons "~/elisp" load-path)) (require 'tex-site)
первая строка нужна лишь в том случае, если вы установили пакет в нестандартное место, а всю работу по загрузке пакета выполняет функция, указанная во второй строке. Кроме этого, вы можете указать команды установки переменных, которые позволят производить более тонкую настройку пакета. Эти переменные будут обсуждаться в разделе Настройка.
Работа с пакетом
Работа с пакетом может осуществляться разными способами — через меню, с помощью сочетаний клавиш и используя именованные команды. Команды пакета можно разделить на две группы — команды работы с текстом, и команды обработки исходных текстов.
Команды работы с текстом, такие как команды вставки окружений, макросов и т.п., сосредоточены в меню LaTeX, а команды обработки исходных текстов сосредоточены в меню Command.
Редактирование исходных текстов
AUCTeX очень сильно помогает пользователю при вводе команд разметки TeX и LaTeX. Это и использование стандартных механизмов дополнений при вводе названий команд, а также генерация имен меток, и многие другие вещи.
Пакет AUCTeX позволяет пользователю вводить команды разметки TeX удобным способом. Для ввода названий команд TeX могут использоваться стандартные механизмы дополнений Emacs. И кроме того, для многих команд пакет знает какие аргументы им требуются, и запрашивает нужные значения у пользователя. Он даже может различать обязательные и необязательные аргументы. Вставка команды разметки производится с помощью сочетания клавиш C-c C-m или C-c RET , которые вызывают функцию TeX-insert-macro . При вводе имени команды, и аргументов, пользователь может использовать стандартные клавиши работы с дополнениями, такие как TAB . В качестве имени команды, пакет обычно предлагает имя последней введенной команды. Пользователь может также переопределить клавишу \ , так, чтобы она вызывала нужную команду для ввода имени макроса, например с помощью следующего кода, помещенного в файл инициализации:
(add-hook 'TeX-mode-hook '(lambda () (local-set-key "\\" 'TeX-electric-macro)))
Кроме этого, пользователь может вводить имена макросов используя сочетание клавиш M-TAB , что позволяет избежать запроса аргументов.
Для ввода команд секционирования пользователь может воспользоваться командой LaTeX-section , привязанной к сочетанию клавиш C-c C-s . При выполнении этой команды, у пользователя запросят имя соответствующей команды, обозначающей раздел документа (при вводе имени, пользователь может использовать механизмы дополнений), заголовок раздела, и имя метки, которая будет связанна с данным разделом. При этом, имя раздела может быть автоматически сгенерировано на основании имени раздела (правда это работает только для латинских названий разделов). При вставке нового раздела, пакет выполняет команды, хранящиеся в переменной LaTeX-section-hook , что позволяет выполнить тонкую настройку поведения данной команды. О том, как можно настроить поведение данной команды, вы можете прочитать в разделе «Inserting chapters, sections, etc.» руководства по AUCTeX.
Пакет AUCTeX также позволяет пользователю более удобно вводить команды для обозначения окружений LaTeX, вставляя пару команд \begin<> и \end<> , и также запрашивая параметры для данного окружения, в том случае, если он про него знает. Для вставки команд окружения используется команда LaTeX-environment , привязанная к сочетанию клавиш C-c C-e . Также, как и для предыдущих команд, при вводе имени окружения, пакет позволяет использовать механизмы дополнения, а также использовать историю ввода предыдущих имен. Пакет позволяет работать не только со стандартными окружениями LaTeX, но и учитывает текущий класс документа, а также список загруженных пакетов (это происходит в том случае, если переменная TeX-parse-self имеет истинное значение).
Для вставки команд изменения шрифтов текста, пакет AUCTeX предлагает большое количество функций. Для ускорения ввода, они все привязаны к сочетаниям клавиш, начинающимся с префикса C-c C-f , после которого идет сочетание клавиши Control и буквы, которая обозначает нужный шрифт. Эти команды вставляют соотвествующую команду разметки и помещают курсор между фигурными скобками. В том случае, если вы хотите изменить шрифт для уже написанного текста, то просто выделите область и выполните соотвествующую команду. При работе в математическом режиме, эти команды вставляют соотвестсвующие аналоги. Пакет определяет следующие команды для изменения шрифтов:
- C-c C-f C-b вставляет команду жирного шрифта \textbf
- C-c C-f C-i вставляет команду шрифта italics \textit
- C-c C-f C-e вставляет команду акцентирования (emphasized) \emph
- C-c C-f C-s вставляет команду наклонного шрифта \textsl
- C-c C-f C-r вставляет команду шрифта roman \textrm
- C-c C-f C-f вставляет команду шрифта sans serif \textsf
- C-c C-f C-t вставляет команду шрифта печатной машинки \texttt
- C-c C-f C-c вставляет команду шрифта SMALL CAPS \textsc
- C-c C-f C-d удаляет окружающую команду изменения шрифта.
В процессе работы с исходными текстами, пакет пытается сделать их более читаемыми за счет использования некоторых вещей — подсветки ключевых слов TeX и LaTeX в тексте, а также за счет вставки отступов для показа отношения между частями текстов. Для вставки нужного отступа может испльзоваться клавиша TAB, или это может быть сделано автоматически при заполнении параграфа с помощью M-q , или для всего буфера, с помощью команды LaTeX-fill-buffer .
Часто неободимо закомментировать область исходного кода TeX или LaTeX. Это можно сделать с помощью команд C-c ; и C-c % . C-c ; закомментирует все строки в выделенной области, а C-c % закомментирует строки текущего параграфа. Наберите C-c ; для того, чтобы раскомментировать все строки выделенной области, или C-c % для раскомментирования всех закомментированных строк параграфа. Эти команды всталяют или удаляют знаки % .
Кроме указанных выше команд, пакет старается вставлять правильные знаки кавычек, знаки доллара для обозначение математического режима, а также пары скобок для того, чтобы избежать проблем с непарными скобками.
Обработка исходных текстов
Все действия по обработке текста в AUCTeX приведены к одному сочетанию клавиш — C-c C-c в зависимости от контекста, данная комманда приводит в вызову LaTeX (или TeX), программы просмотра или печати. Во многих случаях, пакет предлагает правильную команду: если текст изменялся, то предлагается команда компиляции текста — latex или tex в зависимости от контекста; если текст был скомпилирован нормально, то вызывается программа просмотра и т.д. Это же самое касается программ создания индексов и библиографий. Пакет AUCTeX может определить достаточно точно, нужно ли еще раз запускать программу компиляции, но это может происходить не всегда.
В качестве выходого формата вы можете выбрать либо DVI или PDF. Вы можете определять эти и другие параметры выходного файла с помощью нескольких сочетаний клавиш, перечисленных ниже:
- C-c C-t C-p Переключает между выводом в форматах DVI и PDF;
- C-c C-t C-i Включает и выключает интерактивный режим;
- C-c C-t C-s Включает и выключение поддержки специальных тагов исходных текстов;
- C-c C-t C-o Включает и выкулючает использование Omega/lambda.
При обработке исходного текста, создается временный буфер, в который выводится результат компиляции. Если в файле находится ошибка, то пользователь может переместиться на первую найденную ошибку с помощью сочетания клавиш C-c ` . При этом, окно разбивается на два: в верхнем отображается исходный текст, а в нижнем — результат компиляции. После исправления ошибки, можно переместиться на следующую ошибку, используя это же сочетание клавиш. Используя команду TeX-toggle-debug-boxes , привязанную к сочетанию клавиш C-c C-w , можно отображать также предупреждения о переполнение или недополнении боксов.
Если вы хотите обработать только некоторые части документа, то вы можете отметить нужную область и использовать сочетание клавиш C-c C-r для обработки выделенных данных. Выделенная область обрабатывается точно также как и весь документ. При обработке области будет использоваться преамбула основного документа. В том случае, если ваш документ состоит из нескольких файлов, то вы можете обработать текущий буфер с помощью сочетания клавиш C-c C-b . При этом, при компиляции буфера будет использоваться преамбула главного документа.
В том случае, если команда входит в бесконечный цикл, или вы просто хотите завершить ее выполнение, то вы можете исполльзовать сочетание клавиш C-c C-k для ее завершения. Для просмотра вывода команды, который добавляется в конец буфера команды, вы можете использовать сочетание клавиш C-c C-l .
AUCTeX позволяет запустить внешнюю программу для просмотра вашего документа. Обычно это происходит когда пользователь набирает C-c C-c после того, как документ отформатирован, или используя соответствующий пункт меню Command . Команда TeX-view , привязаная к сочетанию клавиш C-c C-v , запускает программу просмотра без подтверждения. Программа просмотра запускается либо для области текста, либо для основного файла, в зависимости от последней использованной команды. Это особенно полезно если вы хотите перейти к точке текста, соответствующей точке в программе просмотра DVI при использовании режима TeX-source-specials-mode .
AUCTeX старается угадать какой тип программы просмотра (DVI, PostScript или PDF) будет использоваться и какие опции должны быть переданы ей. Это решение основывается на файлах результатов, присутствующих в рабочем каталоге, а также на классе документа и используемых стилевых файлах. Например, если в рабочем каталоге находится файл DVI, то будет запущена программа просмотра DVI. А при наличии PDF файла будет запущена программа просмотра PDF. Если пользователь указывает специальный формат бумаги, такой как a5paper или использует опцию landscape, то программе просмотра будут переданы соответствующие опции. Некоторые программы просмотра DVI особенно нуждаются в такой информации для того, чтобы корректно отображать документ. Если используются пакеты pstricks или psfrag, то программа просмотра DVI не сможет корректно отобразить его содержимое, и вместо него будет запущена программа просмотра PostScript.
Информация о типах файлов и стилевых опциях и связанных с ними программах просмотра и соответсвующих опциях хранится в переменных TeX-output-view-style и TeX-view-style .
При обработке исходных текстов с помощью TeX или LaTeX пользователь сможет найти только общие ошибки, но не примеры плохого стиля. Для нахождения стилевых ошибок, таких как потерю пробела после сокращения, или использования . вместо \ldots и т.п., может использоваться утилита lacheck . Вы можете запустить lacheck с помощью команды C-c C-c Check . В качестве результата, пользователь получит список ошибок в буфере *compilation* . Вы можете использовать теже приемы что и при обработке ошибок компиляции. Кроме lacheck , пользователи могут использовать программу chktex , которая является более настраиваемой, но может не находить всех ошибок, которые находит lacheck .
Работа с частями документа
Пакет AUCTeX предоставляет пользователю мозможность работы с частями документа. Существует два метода работы с частями документов — свертывание (folding) и ранжирование (outlining).
Используя возможности свертывания, предоставляемые AUCTeX, вы можете свертывать части документа, и они будут отображаться как фиксированная строка, или будут использовать для отображения часть свернутых данных. Эта функциональность полезна в том случае, если вы часто используете цитаты и сноски, и не хотите загромождать ими текст. Свернутые части будут автоматически разворачиваться когда вы будете перемещаться в них.
Для использования данной возможности, вы должны активизировать TeX-fold-mode , который предоставляет необходимые команды для свертывания и развертывания макросов и окружений. Данный режим можно включить с помощью команды M-x TeX-fold-mode или сочетания клавиш C-c C-o C-f . Вы можете включать этот режим автоматически, воспользовавшись хуками. Например, вот так:
(add-hook 'TeX-mode-hook '(lambda () (TeX-fold-mode 1)))
После активации данного режима, пользователю становятся доступны команда свертывания всех макросов и окружений в документе — TeX-fold-buffer ( C-c C-o C-b ), свертывания текущего макроса — TeX-fold-macro ( C-c C-o C-m ) и свертывания текущего окружения — TeX-fold-env ( C-c C-o C-e ). Для того, чтобы развернуть все свернутые объекты может использоваться команда TeX-fold-clearout-buffer ( C-c C-o C-x ), а для развертывания текущего объекта — команда TeX-fold-clearout-item ( C-c C-o C-c ). Все команды свертывания используют переменные TeX-fold-macro-spec-list и TeX-fold-env-spec-list для того, чтобы определить какие макросы и окружения необходимо сворачивать, и что отображать вместо свернутых объектов. Если макросы или окружения не перечисленны в указанных переменных, то используются значения переменных TeX-fold-unspec-macro-display-string и TeX-fold-unspec-env-display-string . Все эти переменные доступны для изменения через стандартные механизмы настройки Emacs.
AUCTeX реализует поддержку вспомогательного режима outline, используя команды секционирования LaTeX/ConTeXt в качестве строк заголовков. Просто включите outline-minor-mode и вы сможете скрывать разделы используя стандартные команды. Дополнительные заголовки секционирования могут быть добавлены с помощью переменной TeX-outline-extra . Каждый из элементов списка является списком из двух элементов — регулярного выражения и уровня, которому соотвествует данное выражение. Знак ^ автоматически добавляется в начало каждого регулярного выражения. Для лучшей поддержки режима outline вы можете воспользоваться пакетом out-xtra, который доступен через архив кода Emacs Lisp.
Настройка
Настройка пакета может осуществляться с помощью стандартных средств настройки Emacs — с помощью команды customize-group . Группа настройки называется AUCTeX . В этой группе определено множество переменных, которые будут описаны далее.
Для того, чтобы обеспечить поддержку многих пакетов LaTeX, которые вы хотите использовать в ваших документах, вы должны разрешить парсинг документов, что можно сделать с помощью следующих команд:
(setq TeX-auto-save t) (setq TeX-parse-self t)
Если вы часто используете команды \include или \input , то вы должны предупредить AUCTeX о том, что вы используете документы из нескольких файлов. Это можно сделать с помощью команды:
(setq-default TeX-master nil)
Так что каждый раз, когда вы будете открывать новый файл, то AUCTeX будет запрашивать у вас имя главного файла.
Поддержка разных языков
В настоящее время Emacs и TeX вполне нормально поддерживают языки отличные от английского, но все таки для работы с корейским, китайским и японским, вам могут понадобиться специальные версии Emacs и TeX. Пакет AUCTeX распознает использование пакета inputenc, что позволяет более корректно обрабатывать работу с разными кодировками.
Для более удобной работы с европейскими языками существует несколько пакетов, которые позволяют преобразовывать символы в макросы TeX и обратно, при чтении и записи редактируемых файлов. Сюда относятся пакеты iso-cvt.el, который поставляется вместе с GNU Emacs, x-compose.el, который поставляется с XEmacs, и пакет X-Symbol, который позволяет корректно отображать большое количество математических и других символов (пакет может работать и с GNU Emacs и с XEmacs).
AUCTeX имеет в своем составе поддержку для разных языков. Поддержка каждого из языков реализуется в виде отдельных стилевых файлов, которые улучшают работу AUCTeX. Например, пользователь может добавить автоматическую смену словаря при работе с файлами, которые включают в себя, например, файл dk.sty. Чтобы это работало, вам необходимо включить поддержку разбора файлов. Для каждого из поддерживаемых языков, определяется хук с именем TeX-language-XX-hook , где XX — двух-символьный код языка. В настоящее время поддерживаются датский, голландский, немецкий, итальянский и польский языки.
Автоматическая настройка
AUCTeX пытается произвести самонастройку путем сканирования файлов TeX, выделения из них символов, окружений и т.п. данных. Эта информация позволяет сделать редактирование текстов более удобным. Автоматическая настройка может производиться на трех уровнях. Самый главный уровень — данные, которые используются всеми пользователями системы, и содержащий все стилевые файлы TeX. Вторым уровнем являются файлы, принадлежащие конкретному пользователю, но которые используются в разных проектах. К третьему уровню относятся файлы расположенные в рабочем каталоге. По умолчанию, AUCTeX производит поиск файлов на всех трех уровнях, но вы можете явно задать пути поиска с помощью переменной TeX-style-path . По умолчанию AUCTeX обрабатывает каталоги рекурсивно, но вы можете настроить это поведение с помощью переменной TeX-file-recurse . AUCTeX игнорирует некоторые имена файлов ( . , .. , SCCS , RCS и CVS ), которые определены в переменной TeX-ignore-file .
Настройка для глобального уровня производится с помощью переменных TeX-macro-global , которая содержит список каталогов со стилевыми файлами TeX; TeX-style-global , которая содержит название каталога с информацией, созданной вручную; и TeX-auto-global , в которой хранится информация автоматически выделенная из стилевых файлов.
Настройки для уровня пользователя хранятся в переменных TeX-macro-private , в которой указывается список каталогов со стилями TeX; TeX-auto-private , в которой указывается каталог для хранения выделенной информации; и TeX-style-private , в которой указывается список каталогов со стилями AUCTeX, написанными вручную. Для перегенерации автоматически выделяемых данных используется фукнция TeX-auto-generate .
Настройка для локального использования проводится с помощью переменных TeX-auto-local , в которой указывается каталог для сохранения автоматически выделенной инфомации (по умолчанию она имеет значение auto ) и TeX-style-local , в которой хранится имя каталога со стилевыми файлами. По умолчанию, автоматически выделяемая информация сохраняется каждый раз, когда вы сохраняете ваши файлы.
Создание стилевых файлов
Пользователь AUCTeX может улучшить свою работу с помощью дополнительных стилевых файлов, которые позволяют лучше настроить AUCTeX при использовании конкретных стилевых файлов TeX/LaTeX и/или конкретных команд и окружений.
Функция TeX-add-style-hook позволяет пользователю задать код, который будет выполнен при использовании определенного стилевого файла TeX. Например,
(TeX-add-style-hook "book" (function (lambda () (setq LaTeX-largest-level (LaTeX-section-level ("chapter"))))))
устанавливает самый главный уровень секционирования равным chapter при использовании стиля book. Аналогичным образом, может добавляться поддержка и других стилевых файлов. Достаточно большое их количество уже определено и поставляется в дистрибутиве AUCTeX (в подкаталоге style ).
Основным предназначением стилевого хука является объявление новых макросов и окружений, которые существуют в стилевом файле. Явные объявления используются для указания аргументов макросов, а сами макросы определяются автоматически. Добавление новых макросов выполняется с помощью функции TeX-add-symbols , которой передается список, который в свою очередь состоит из списка первым в котором идет название макроса, а затем идет описание аргументов данного объекта. Если у объекта нет аргументов, то он просто вставляется и точка вставки помещается между фигурными скобками. Если у объекта есть аргументы, то AUCTeX запрашивает их у пользователя.
Для указания аргументов используется некоторое количество функций вида TeX-arg-TYPE , где TYPE указывает на соответствующий тип, и AUCTeX будет проверять вводимые пользователем данные. Описания этих функций смотрите в документации по AUCTeX.
Добавление окружений происходит аналогично добавлению макроса. Добавление новых окружений производится с помощью функции LaTeX-add-environments , которой передаются список списков из имени окружения и описания аргуметов. Для детального описания аргументов, также смотрите в документации по AUCTeX.
Кроме добавления информации о макросах и окружениях, AUCTeX позволяет добавить информацию о библиографиях и метках. Это выполняется с помощью функций LaTeX-add-bibliographies и LaTeX-add-labels соответственно.
AUCTeX пытается автоматически выделить информацию об объектах при разборе стилевых файлов. Он делает это с помощью набора регулярных выражений. Эти выражения хранятся в переменной TeX-auto-regexp-list , которую вы можете изменять, добавляя собственные регулярные выражения. Кроме этого, AUCTeX определяет два хука, которые вызываются перед и после парсинга файла TeX. Они называются TeX-auto-prepare-hook и TeX-auto-cleanup-hook . Вы можете использовать эти хуки для выполнения вашего кода.
Пакеты, расширяющие функциональность AUCTeX
Существует некоторое количество дополнительныз пакетов, которые позволяют улучшить работу с TeX/LaTeX при использовании AUCTeX. Некоторые из этих пакетов могут работать отдельно, но наилучшие результаты дает их совместное использование с AUCTeX:
Preview-LaTeX В настоящее время, пакет preview-latex (описанный в соответствующем разделе) стал частью пакета AUCTeX, значительно улучшив возможности пакета по визуальной работе с исходными текстами TeX и LaTeX. RefTeX и BibTeX Пакеты RefTeX и BibTeX, описанные в следующих разделах умеют интегрироваться с пакетом AUCTeX, позволяя существенно улучшить работу с ссылками и библиографиями. latex-units Данный пакет добавляет еще одно меню, с помощью которого можно вставлять объявления единиц измерения (например, kg и т.п.). Этот пакет работает только в математическом режиме, когда для корректного отображения текста требуется вставка нескольких команд TeX, что может сильно раздражать. Для установки пакета скачайте его с домашней страницы и загрузите его, также как и другие пакеты, с помощью функции require .
Дополнительная информация
Дополнительную информацию о пакете AUCTeX вы можете найти на страницах проекта, находящихся по адресам http://www.gnu.org/software/auctex/ и http://savannah.gnu.org/projects/auctex. Кроме этого, большое количество информации можно найти на страницах Emacs WiKi.
Last change: 05.03.2013 16:54
format Выходной формат. Принимает значения «html» или «latex». Определяется опцией --format. html Значение равно «1», в случае если выходной формат HTML. Иначе значение не определено. latex Значение равно «1», в случае если выходной формат LaTeX. Иначе значение не определено. filename Имя входного файла. (TODO) linenumber Номер текущей строки входного файла. title Заголовок текста. Может определяться пользователем. В формате HTML выводится в тэге . И в начале текста в тэге . В формате LaTeX выводится на титульном листе. Переменная title устанавливается при задании заголовка первого уровня (конструкция =Заголовок=). subtitle Подзаголовок текста. Может определяться пользователем. В формате HTML выводится после заголовка. В формате LaTeX выводится на титульном листе. Переменная subtitle устанавливается при задании подзаголовка первого уровня (конструкция =~Подзаголовок~=). author Автор текста. Может определяться пользователем. В формате HTML выводится после заголовка. В формате LaTeX выводится на титульном листе. date Дата написания текста. Может определяться пользователем. В формате HTML выводится после заголовка. В формате LaTeX выводится на титульном листе. lang Двухбуквенный код языка документа. В формате HTML указывается в тэге . В формате LaTeX используется для выбора языка в пакете babel. Также используется для задания языка специальных секций, напимер «Содержание» и «Индекс». stylesheet Файл css, ссылка на который включается в HTML-вывод. Может определяться пользователем. Можно указать несколько файлов, разделяя их запятыми. (. TODO. ) reftype Тип ссылок. Может принимать значение «name» или «num». Значение по умолчанию в режиме HTML: name, в режиме LaTex: num. Более подробно о типах ссылок говорится в разделе . .
Для того чтобы символы, выполняющие специальное действие, лишились этой особенности, их необходимо экранировать при помощи обратной косой черты. Ниже рассматриваются символы, требующие экранирования.
- Обратная косая черта (\) требует экранирования всегда.
- Одиночные фигурные скобки () требуют экранирования только в конструкциях выбора типа шрифта (, , ^<>), причём в последнем случае достаточно заэкранировать либо только символ _ или ^, либо только фигурные скобки. В остальных случаях одиночные фигурные скобки экранирования не требуют.
- Знак доллара ($) требует экранирования перед фигурной скобкой ($ <).
- Одинарные квадратные скобки ([, ]) используются либо для задания внутри абзаца ссылок, совместимых с mediawiki (в этом случае содержимое скобок должно начинатсья с ftp:, http:, https:, mailto:), либо для задания картинок вне абзаца. В остальных случаях экранирование фигурных скобок не требуется.
- Двойные квадратные скобки ([[, ]]) требуют экранирования всегда.
- Тильда (~) требует экранирования всегда.
- Экранирование символов #, *, : требуется только при использовании их в начале строки, когда они могут быть расценены как определение элемента списка.
- Экранирование символа % требуется только при использовании его в начале строки, когда он может быть расценен как номер абзаца или заголовка.
- Одинарные апострофы (‘) экранирования не требуют, двойные и более требуют.
- Кавычка («) не требуют экранирования.
При экранировании символов, не имеющих специального значения, значение символа не меняется. Поэтому, если есть сомнение, нужно ли экранировать символ, экранируйте без опаски — хуже не будет. Однако следует помнить, что чрезмерное использование экранирующей обратной косой черты снижает читаемость исходного текста.
Режим NAKED
При указании опции --naked mwiki не формирует заголовки и хвост файла. Полученный в результате файл можно включать внутрь другого HTML-файла внутрь секции (в режиме HTML) или внутрь другого LaTeX файла (в режиме LATEX).
Шаблоны
Шаблоны используются при помощи конструкции
Метки и ссылки
$ и $ являются синонимами и задают метку, на которую в дальнейшем можно ссылаться. В случае выходного формата HTML создаётся тэг и атрибут id="метка" у соответствующего заголовка или абзаца, что позволяет ссылаться на эту метку из других файлов.
Ссылки бывают числовыми и текстовыми. Пример числовой ссылки: подробности приведены в пункте 5.3. Пример текстовой ссылки: подробности приведены в разделе «Подробности».
$ задаёт числовую ссылку, $ — текстовую. $ задаёт числовую или текстовую ссылку, в зависимости от переменной $, которая может принимать значения «num» или «name». Для выходного формата HTML значение $ по умолчанию равно «name», для формата LaTeX — «num».
Число для числовой ссылки определяется ближайщим нумеровынным элементом, который предшествует соответствующей метке $ или $. Текст для текстовой ссылки определяется ближайщим заголовком, который предшествует соответствующей метке, либо задаётся явно вторым аргументом метки: $ или $.
Шаблоны, общие для всех выходных форматов
Шаблон $ формирует оглавление. Если указан числовой аргумент, например $ то в оглавление включаются только заголовки до указанного уровня.
Фотографии
Координаты
Отличия от mediawiki
В mediawiki можно использовать произвольную HTML-разметку, например
, , . Так как mwiki не является HTML-ориентированной, никакие HTML-тэги не поддерживаются.
Опции программы mwiki
—header-counters (TODO)
Опция задаёт принудительную нумерацию разделов. Даже если у заголовка раздела нет признака нумерованности (символов %), разделы автоматически нумеруются. Таким образом, следующее определение заголовков:
== Заголовок === Подзаголовок === Подзаголовок
Будет рассматриваться, как определённое так:
== % Заголовок === %% Подзаголовок === %% Подзаголовок
—hardnumbering (TODO)
Режим «жесткой» нумерации разделов в формате LaTeX. По умолчанию mwiki отдаёт нумерацию разделов «на откуп» LaTeX’у. Если же задана эта опция, то нумерацию разделов, пунктов и ссылок на них осуществляет сам mwiki. Этот режим может быть полезен, если необходимо сделать документ в разных выходных форматах со строго одинаковой нумерацией.
Особенности выходных форматов
html
Используемые стилевые классы
latex
Нумерованные заголовки и абзацы
plain
Опции командной строки программы mwiki
—format формат выходного файла: html, latex или plain -D,—define определение переменных —naked не выводить заголовки —norefs Отключить ссылки ($). Если ссылки не используются, то опция позволяет ускорить преобразование файла, т.к. для обработки ссылок необходим двойной проход по исходному файлу.
Лайт-версия
Существует облегчённая версия программы mwiki, которая называется mwiki-lite.
Облегчённая версия не использует никаких модулей perl, что позволяет ей работать с приемлимой скоростью на оборудовании с ограниченными возможностями, например на роутере в среде openwrt.
В облегчённой версии используется упрощённый алгоритм чтения и парсинга строк, который экономит память, но проводит к некоторым ограничениям.
- выходной формат — только html
- принудительно включена опция —naked
- не поддерживаются ссылки $
- не поддерживается оглавление $
mwiki-lite эквивалентна запуску mwiki со следующими параметрами:
mwiki --format=html --naked --norefs
© 2009 — 2014 Михаил Уланов, mulanov@gmail·com
TeX ДЛЯ НАЧИНАЮЩИХ Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ярославский Владимир Валерьевич, Ярославская Екатерина Юрьевна
Авторы рассказывают о применении системы ТеХ для подготовки и печати математических текстов высокого качества. На многочисленных примерах продемонстрированы возможности этой системы для набора специальных символов и математических формул.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ярославский Владимир Валерьевич, Ярославская Екатерина Юрьевна
Языки разметки. Часть 4: вёрстка математических формул
Языки разметки
Языки разметки. Часть 3: верстка таблиц
ПРОЦЕДУРЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ С ДЕСЯТИЧНЫМИ ДРОБЯМИ В ПАКЕТЕ LATEX2ε И ИХ ПРИМЕНЕНИЕ В СИСТЕМЕ КОНТРОЛЯ КАЧЕСТВА ЗНАНИЙ СТУДЕНТОВ PREX
Инструкции и рекомендации по подготовке статей в формате latex для журнала «Прикладная дискретная математика»
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «TeX ДЛЯ НАЧИНАЮЩИХ»
Ярославский Владимир Валерьевич, Ярославская Екатерина Юрьевна
TeX ДЛЯ НАЧИНАЮЩИХ
Система TeX была разработана в 1978 году профессором Стенфордского университета, известным математиком и программистом Дональдом Кнутом (Donald E. Knuth). Он является автором популярного издания «Искусство программирования для ЭВМ», выпущенного в трех томах. Считается, что профессионал в области информатики должен быть знаком с этими книгами.
В процессе подготовки своих книг к печати Д.Кнуту надоело постоянно исправлять неточности при форматировании математических формул и текста. В результате он создал систему TeX для подготовки к печати математических текстов высокого полиграфического качества. С тех пор серьезные научные издательства и математические общества используют TeX. Надо заметить, что под словом TeX следует понимать как компьютерную систему (программу), так и сам язык управления печатью. В первую очередь TeX нужно знать тем, кто собирается стать математиком. Все крупные математические конференции принимают статьи только в ТеХ’е. Основное предназначение TeX’а — издание прекрасных книг и особенно книг, содержащих много
математики. Давайте разберемся, как изображается и читается название TeX. Изображается так, как показано на рисунке 1, буква E смещена вниз. Для удобства букву E просто пишут маленькой. Несмотря на то, что название состоит из латинских букв, они подразумевают собой греческие буквы t (тау), e (эпсилон), % (хи), входящие в слово tecnh — «искусство». Произносится название как тех (так же, как, например, начало слова техника).
В чем преимущества и отличия этой системы от ныне популярного редактора Microsoft Word? TeX — это не редактор и потому не обладает свойством WYSIWYG (What You See Is What You Get — то, что видишь, то и получишь). Для TeX^ текст -это программа, которую нужно откомпилировать и на ее основе показать изображение на экране или напечатать на принтере. TeX реализован для всех операционных систем, в то время как Word присутствует только в Windows. Имеется возможность управлять форматированием текста, с легкостью набирать сложные математические формулы, самим формировать любые математические обозначения. Переносы слов, выравнивание по правой границе, автоматическую нумерацию формул — это все берет на себя TeX. Если вам нужно использовать в тексте множество экзотических шрифтов, создать рекламные буклеты или поздравительные открытки, добавить цветные картинки, красочные рамки — для этих целей используйте Word или StarOffice. Но если
вам нужна красивая математика, выполненная по всем типографским правилам, TeX будет идеальным помощником. ТеХ’овские документы без проблем переносятся между платформами и одинаково точно воспроизводятся независимо от платформы. В частности, готовые ТеХ’овские документы легко конвертируются в распространенный формат PDF. Подготовив, например, какую-нибудь статью в ТеХ’е, вы можете создать ее PDF-версию и разослать ее своим друзьям и коллегам. Независимо от того, на какой операционной системе они работают (Windows, Unix/Linux или др.), этот PDF-файл они смогут прочитать свободно распространяемой программой Acrobat Reader.
Существуют макропакеты, такие как AmS-TeX и LaTeX, являющиеся наборами макрокоманд, состоящих из элементарных команд языка TeX. Команды этих пакетов реализуют сложные процедуры верстки, облегчая и упрощая пользователю работу по подготовке научно-технических документов. В дальнейшем будем рассматривать макропакет LaTeX, а именно LaTeX2e (хотя следует заметить, что многое будет относиться к самому TeX^). Наиболее известную реализацию этих пакетов, MiKTeX, можно загрузить с сайта http://www.miktex.org.
Рассмотрим на рисунке 2 общую схему создания документов.
Сначала нужно набрать документ в любом простом текстовом редакторе (например, Notepad или встроенный редактор в Far^). TeX^^ro документы обычно имеют расширение .tex. После компиляции создается файл с расширением .dvi (DeVice Independent — независимый от устройства), которой можно просмотреть на экране или распечатать на принтере. Если нужно внести document t о исправления, то редактируется исходный .tex-файл. Он заново компилируется, результаты опять просматриваются или распечатываются.
LaTeX’овский документ имеет следующую структуру:
Тип документа может быть book, article, report и letter. Отличие между ними состоит в стиле нумерации, составлении оглавления, размере заголовков и др. Для большинства случаев подойдет тип article. Директива \usepackage[russian] подключает стилевой пакет русской локализации. Рассмотрим простой пример, который выводит текст «Здравствуй, мир!»:
\documentclass \usepackage[russian] \begin Здравствуй, мир! \end
Вы, наверное, уже успели заметить, что команды начинаются с символа «\» (back slash). Текст документа начинается сразу после команды \begin и продолжается до \end. Как и в
языках программирования, можно определять свои команды, например: \neweommand\hi[1]
Определение начинается с команды \newcommand, далее следует имя новой команды, в квадратных скобках число параметров (если они есть) и сама команда, в теле которой параметры обозначаются как # и номер параметра, команда \\ означает переход на новую строку. Следующий пример выводит две строки: Здравствуй, мир! и Здравствуй, вселенная!
\documentclass \usepackage[russian] \newcommand\hi[1] \begin
При подготовке больших статей может оказаться полезной команда \ input, которая вставляет в текущий документ содержимое файла, переданного в качестве параметра, и ТеХ’овские комментарии %:
\documentclass \usepackage[russian] \begin \input % \input % эта глава закомментирована
Комментарий действует от символа % и до конца строки. Таким образом, во время подготовки большой статьи или книги можно временно закомментировать ненужные главы, оставив только одну, и работать с ней. Если нужно закомментировать большой кусок текста, то более удобна будет следующая команда:
\Large \LARGE \huge \Huge
Очень удобная работа с текстом.
Теперь познакомимся со шрифтами, какие они бывают и какого размера: прямой крошечный курсив мелкий полужирный подстрочный машинописный маленький рубленый нормальный наклонный большой капитель очень большой совсем большой огромный громадный Область действия этих команд задается фигурными скобками, например,
После компиляции вы получите: . вот такое большое слово.
В ТеХ’е существуют особые символы, которые нужно набирать специальным образом:
При работе с текстом также требуются команды: \newpage — начать новую страницу, \\ — начать новую строку,
\indent — вставить отступ, используемый в начале абзацев,
\noindent — подавить (не вставлять) такой отступ, \ — один пробел, \, — небольшой пробел
(используется в формулах),
В ТеХ’е абзацы разделяются между собой пустой строкой. Выравнивание по правой границе система
берет на себя. Следует отметить, что последовательность из нескольких пробелов TeX воспринимает как один пробел.
Важно уметь различать дефисы и тире. Для набора короткого дефиса (как в слове какой-нибудь) используется один знак минуса. Для длинного дефиса, который появляется в диапазонах чисел, номерах телефонов, набирайте два знака минуса: 323—282—055 (323-282-055). Для тире (например, TeX — великолепный язык) нужно уже три знака минуса: TeX—великолепный язык. Сам же знак минуса набирается в математическом режиме $-$.
При форматировании абзацев TeX переносит слова. Иногда требуется запретить перенос какого-нибудь слова. Для этой цели существует команда \hbox, которая сообщает TeX^, что слово является неделимым. TeX не может знать всех переносов всех слов, и потому в некоторых случаях следует ему помочь, указав точки переноса: пе\-ре\-строй\-ка.
Следует упомянуть о дополнительных пробелах, которые можно добавлять в текст: вертикальные \vspace> и горизонтальные \hspace>. Для вертикальных отступов есть стандартные команды: \bigskip, \medskip и \smallskip. Размер можно задавать в миллиметрах (mm), сантиметрах (cm), дюймах (in), пунктах (pt). Соотношения между ними такие: 1 cm = 10 mm, 1 in = 2.54 cm, 1 in = 72 pt.
Для формирования таблиц используется следующая схема:
где состоит из последовательности символов |, c, r, l. Одной букве (с, r, l) соответствует одна колонка. Буква c означает, что данные в этой колонке будут
№ ФАМИЛИЯ И,О. тЩКфпи
1 IILHILJCHI П.К. 353-2210
2. Петров 11-1-1. 471-5128
3. DfTjMJis К.С. 7 28- 7-0-1 ^
выравнены по центру, буква r — выравнены по правой границе, буква l — по левой. Символ | проводит вертикальную черту между колонками. В теле таблицы команда \\ переводит на новую строку, \hline проводит линию, символ & разграничивает данные между ячейками. Листинг 1 нарисует таблицу (см. рисунок 3).
Расскажем о самом важном в системе TeX — о наборе математики. Режим математических формул начинается (и заканчивается) символом $ или двумя символами $$. В первом случае математическая формула располагается в текущей строке. Во втором случае математическая формула размещается на отдельной строке. На рисунке 4 показано, как выглядит следующий пример:
Квадратным уравнением называется уравнение вида $axA2+bx+c=0$, где $a\neq 0$. Например, $$xA2+7x+1=0$$
\bf\No & \Ь£ Фамилия И.О. & \Ь£ телефон \\ \hline\hline
1. & Иванов П.К. & 353-2210 \\ \hline
2. & Петров Н.И. & 471-5128 \\ \hline
3. & Ветров К.С. & 728-7915 \\ \hline \end
¿какое бмимос смо&о.
В системе TeX можно набирать различные специальные символы, например, греческие буквы. Наберем некоторые из них: альфа (команда TeX — \alpha), бета (\beta), гамма (\gamma), дельта (\delta), Дельта (\Delta), пи (\pi), хи (\chi), омега (\omega), Омега (\Omega), кси (\ksi), Кси (\Ksi), лямбда (\lambda), дзета (\zeta), ро (\rho), тета (\theta), пси (\psi). На рисунке 5 показан результат компиляции.
В формулах часто ис-.4, пользуются верхние и нижние индексы (см. рисунок 6): $BAk$, $A_i$
Рассмотрим примеры с использованием нижних и Рисунок 6. верхних индексов вместе (порядок расстановки верхних и нижних индексов неважен): $хЛ2_3 = х_3л2$ или чуть сложнее $сЛ_п$.
Рисунок 7 иллюстрирует, как набирают некоторые математические значки. О том, как набирают другие символы и более сложные формулы, любознательный читатель сможет найти в указанной ниже литературе.
Фефим ма&ема&игесжих формул яашяае&ся (и ¿лкаяги&оеийся) символом
X VAdot-tJrt Ф \opLll5
0 \nmpty:ict u \nup
V \ioralL \ \aetmLnua
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
t w -> \FliEhtflxrnu
1. Дональд Е.Кнут. Все про TeX. Протвино, 1993. 592 с.
2. Спивак М. Восхитительный TeX: руководство по комфортному изготовлению научных публикаций в пакете AmS-TeX. М.: Мир, 1993. 285 с.
3. Тельников К. О., Чеботаев П.З. LaTeX. Издательская система для всех. Новосибирск: Сибирский хронограф, 1994. 294 с.
4. Львовский С.М. Набор и верстка в пакете LaTeX. М.: Космосинформ, 1995. 374 с.
5. Гуссенс М., Миттельбах Ф., Самарин А. Путеводитель по пакету LaTeX и его расширению LaTeX2e. М.: Мир, 1999. 606 с.
Ярославский Владимир Валерьевич, кандидат физико-математических наук, программист,
Ярославская Екатерина Юрьевна, преподаватель кафедры высшей математики Санкт-Петербургского государственного морского технического университета (СПбГМТУ).
© Наши авторы, 2004. Our authors, 2004,
Документация
Когда вы пишете код, это — хорошая практика, чтобы добавить комментарии, которые описывают код. Комментарии позволяют другим изучать ваш код и могут освежить вашу память, когда вы возвращаетесь к нему позже. Во время разработки кода и тестирования, также можно использовать комментарии, чтобы закоментировать любой код, который не должен запускаться.
В Live Editor можно вставить линии текста до и после кода, чтобы описать процесс или код. Текстовые строки обеспечивают дополнительную гибкость, такую как стандартные параметры форматирования и вставка изображений, гиперссылок и уравнений. Для получения дополнительной информации смотрите, Создают Live скрипты в Live Editor.
Примечание
Когда у вас есть MATLAB ® файл кода ( .m ) содержа текст, который имеет символы в кодировке, отличной от вашей платформы, когда вы сохраняете или публикуете свой файл, MATLAB отображает те символы как искаженный текст. Live скрипты и функции ( .mlx ) поддержите хранение и отображение символов из всех локализаций.
Чтобы добавить комментарии в код MATLAB, используйте процент ( % ) символ. Строки с комментариями могут появиться где угодно в файле кода, и можно добавить комментарии в конец строки кода.
% Add up all the vector elements. y = sum(x) % Use the sum function.
Чтобы закомментировать несколько строк кода, используйте операторы блочных комментариев, % < и %>. % < и %>операторы должны казаться одними на линиях, которые сразу предшествуют и следуют за блоком текста справки. Не включайте никакой другой текст на этих линиях.
a = magic(3); % sum(a) diag(a) sum(diag(a)) %> sum(diag(fliplr(a)))
![]()
Чтобы закомментировать выбор, выберите строки кода, перейдите к вкладке Editor или Live Editor, и в разделе Code, нажмите кнопку. Также можно ввести Ctrl+R. Чтобы не прокомментировать выбранный код линий, нажмите кнопку или введите Ctrl+Shift+R. В macOS системах используйте Command+/, чтобы прокомментировать и Command+Option+/, чтобы не прокомментировать. На Linux ® системы, используйте Ctrl+/, чтобы прокомментировать и Ctrl+Shift+/, чтобы не прокомментировать.
Чтобы закомментировать часть оператора, который охватывает несколько линий, используйте замещающий знак ( . ) вместо знака процента. Например:
header = ['Last Name, ', . 'First Name, ', . . 'Middle Initial, ', . 'Title']
Редактор и Live Editor включают инструменты и элементы контекстного меню, чтобы помочь вам добавить, удалить или изменить формат комментариев для MATLAB, Java ® , и код C/C++. Например, предположите, что у вас есть этот длинный текст в прокомментированную линию.
% This is a code file that has a comment that is a little more than 75 columns wide. disp('Hello, world')
С курсором на линии перейдите к вкладке Editor или Live Editor, и в разделе Code, нажмите кнопку. Комментарий переносится к следующей строке:
% This is a code file that has a comment that is a little more than 75 % columns wide. disp('Hello, world')

По умолчанию, при печати комментарии в Редакторе и Live Editor, текст переносится, когда это достигает ширины столбца 75. Чтобы изменить столбец, где текст комментария переносится или отключить автоматический перенос комментария, перейдите к вкладке Home и в разделе Environment, нажмите Preferences. Выберите MATLAB> Editor/Debugger> Language и настройте настройки Comment formatting. Чтобы настроить настройки Comment formatting в MATLAB Online™ , выберите Editor/Debugger> MATLAB Language.
Редактор и Live Editor не переносят комментарии с:
- Разделите заголовки (комментарии, которые начинаются с %% )
- Длинный непрерывный текст, такой как URL
- Элементы маркированного списка (текст, который начинается с * или # ) на предыдущую линию
Похожие темы
- Добавление справки для программы
- Создание скриптов
- Создание live скриптов в Live Editor
- Настройки редактора/отладчика