|
Команды для естественных языковТермин текст имеет два широко распространенных значения в нашей области компьютерной науки. Одно -- это данные, которые являются последовательностью знаков. Любой файл, который вы редактируете при помощи Emacs, -- это текст в этом смысле слова. Другое значение более узкое: последовательность знаков на естественном языке, предназначенная для чтения людьми (возможно после обработки форматированием), в противоположность программам или командам для программы. В естественных языках приняты стилистические и синтаксические условности, которые могут поддерживаться или выгодно использоваться командами редактирования: это условности, включающие использование слов, предложений, абзацев и прописных букв. Данная глава описывает команды Emacs для всех этих вещей. Существуют также команды для заполнения, что означает перестройку строк абзацев таким образом, чтобы они были приблизительно равной длины. Команды для перемещения или уничтожения слов, предложений и абзацев, предназначенные в первую очередь для редактирования текста, часто бывают полезными и для редактирования программ. Emacs имеет несколько основных режимов для редактирования текста на естественном языке. Если файл содержит несложный чистый текст, используйте режим Text, который быстро настраивает Emacs на синтаксические условности текста. Режим Outline предоставляет особые команды для действий с со структурированным текстом. Смотрите раздел Режим Outline. Для текста, который содержит встроенные команды для программ форматирования, Emacs имеет другие основные режимы, свой для каждого формата. Таким образом, для ввода в TeX вы должны использовать режим TeX (смотрите раздел Режим TeX). Для ввода в nroff -- режим Nroff. Вместо использования программы форматирования, вы можете редактировать форматированный текст в стиле WYSIWYG ("what you see is what you get")(6) с помощью режима Enriched. Тогда форматирование появляется на экране в Emacs во время редактирования. Смотрите раздел Редактирование форматированного текста. СловаВ Emacs существуют команды для передвижения по словам или воздействия на них. По соглашению, все ключи для этого являются Meta-знаками.
Заметьте, как эти ключи образуют ряд, который соответствует ключам, работающим со знаками: C-f, C-b, C-d, DEL и C-t. M-@ соответствует C-@, которая иначе называется C-SPC. Команды M-f ( M-d
( M-DEL
( M-t
( Чтобы подействовать на следующие
n слов с помощью операции, которая применяется между точкой и меткой,
вы можете либо установить метку в точке и затем передвинуть точку через слова,
либо использовать команду M-@ ( Понятие о синтаксисе у команд, работающих со словами, полностью управляется синтаксической таблицей. Любой знак может быть объявлен, например, как разделитель слов. Смотрите раздел Синтаксическая таблица. ПредложенияКоманды Emacs для действий над предложениями и абзацами в большинстве своем приданы Meta-ключам, чтобы они были подобны командам работы со словами.
Команды M-a и M-e
( Перемещение назад через предложение помещает точку непосредственно перед первым знаком этого предложения; перемещение вперёд помещает точку сразу после знака препинания, завершающего предложение. Ни одна из этих команд не перемещает через пропуски на границах предложений. Точно так же, как C-a и C-e имеют
соответствующую им команду уничтожения C-k , так и M-a и
M-e имеют соответствующую команду уничтожения M-k
( Команды работы с предложениями предполагают, что вы следуете соглашению американских машинисток -- ставить в конце предложения два пробела; они считают предложение оконченным, если там есть знаки `.', `?' или `!', за которыми следует конец строки или два пробела; в середине допустимо любое число знаков `)', `]' или `"'. Предложение также начинается или кончается, если начинается или кончается абзац. Переменная "[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*" Этот пример объясняется в разделе о регулярных выражениях. Смотрите раздел Синтаксис регулярных выражений. Если вы хотите использовать между предложениями только один пробел, вам нужно
установить "[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*" Вам нужно также установить переменную АбзацыКоманды Emacs для работы с абзацами -- это также Meta-ключи.
M-{ двигает точку в начало текущего или предыдущего абзаца, в то время как M-} двигает её к концу текущего или следующего абзаца. Абзацы разделяются пустыми строками и строками команд форматирования текста, которые в свою очередь не являются частью какого-либо абзаца. В режиме Fundamental, но не в режиме Text, строка с отступом также начинает новый абзац. (Если перед абзацем стоит пустая строка, данные команды считают эту пустую строку началом абзаца.) В основных режимах для программ, абзацы начинаются и кончаются только пустыми строками. Это делает команды для абзацев по-прежнему удобными, даже хотя абзацев как таковых нет. Когда имеется префикс заполнения, абзацы ограничиваются всеми строками, которые не начинаются с этого префикса. Смотрите раздел Заполнение текста. Когда вы захотите оперировать с
абзацем, вы можете использовать команду M-h
( Точным определением границ абзаца
управляют две переменные: Обычно желательно, чтобы границы страниц разделяли абзацы. Значения по умолчанию этих переменных распознают обычный разделитель страниц. СтраницыОчень часто файлы представляются разделенными на страницы с помощью знаков прогона (или перевода) страницы (ASCII Control-L, восьмиричный код 014). Когда вы печатаете файл, этот знак принудительно разбивает страницу; таким образом, каждая страница файла будет начинаться на новом листе бумаги. Большинство команд Emacs рассматривают знак-разделитель страниц точно так же, как любые другие знаки: вы можете вставить их при помощи C-q C-l или удалить с помощью DEL. Таким образом, вы свободны в выборе, делить на страницы ваш файл или нет. Однако, из-за того, что деление на страницы часто является смысловым делением файла, то предусмотрены команды для перемещения по страницам и для действий над ними.
Команда C-x [ ( Команда C-x C-p
( Числовой аргумент для C-x C-p используется для указания страницы, к которой необходимо отправиться, относительно текущей. Ноль означает текущую страницу. Единица означает следующую страницу, а -1 -- предыдущую. Команда C-x l
( Page has 96 (72+25) lines(7) Заметьте, что значение суммы на единицу меньше; это верно, если точка не стоит в начале строки. Переменная Заполнение текстаЗаполнение текста означает разбиение его на строки определённой длины. Emacs может делать заполнение двумя способами. В режиме Auto Fill, вставка текста с помощью самовставляющихся знаков также автоматически заполняет его. Есть также явные команды для заполнения, которые вы можете использовать, когда редактирование текста оставляет его незаполненным. Когда вы редактируете форматированный текст, вы можете задать стиль заполнения каждого фрагмента (смотрите раздел Редактирование форматированного текста). Режим Auto FillРежим Auto Fill -- это второстепенный режим, в котором строки обрываются автоматически, когда становятся слишком длинными. Разрыв происходит только тогда, когда вы набираете SPC или RET.
M-x auto-fill-mode включает режим Auto Fill, если он был отключен, или выключает, если он был включён. С положительным аргументом она всегда включает режим Auto Fill, а отрицательным --- всегда отключает. Вы можете видеть, когда режим Auto Fill действует, по присутствию слова `Fill' в строке режима внутри круглых скобок. Режим Auto Fill -- второстепенный режим, включаемый или выключаемый для каждого буфера отдельно. Смотрите раздел Второстепенные режимы. В режиме Auto Fill строки автоматически разрываются на пробелах, когда они становятся длиннее желаемой величины. Прерывание и перерасположение строки происходит, только когда вы набираете SPC или RET. Если вы хотите вставить пробел или знак новой строки с запретом прерывания строки, наберите C-q SPC или C-q C-j (напомним, что знак новой строки -- это на самом деле control-J). C-o также вставляет новую строку без прерывания строки. Режим Auto Fill хорошо работает с режимами для языков программирования, так
как он делает в новых строках отступ с помощью TAB. Если строка,
заканчивающаяся комментарием, получилась слишком длинной, то текст комментария
разбивается на две строки. Возможно, в конце первой строки и в начале второй
вставятся новые ограничители комментариев, таким образом, чтобы каждая строка
стала отдельным комментарием; этим выбором управляет переменная
Адаптивное заполнение (смотрите следующий раздел) работает с режимом Auto Fill так же, как с явными командами заполнения. Оно автоматически берёт префикс заполнения из второй или первой строки абзаца. Режим Auto Fill не перезаполняет целые абзацы; он может прерывать строки, но не может их объединять. Таким образом, редактирование в середине абзаца может привести к созданию абзаца, который неправильно заполнен. Простейшим способом сделать абзац снова правильно заполненным обычно служит применение явных команды заполнения. Многие пользователи любят режим Auto Fill и хотят использовать его во всех
текстовых файлах. Раздел о файлах инициализации рассказывает, как устроить,
чтобы это было для вас постоянным. Смотрите раздел Файл инициализации,
Явные команды заполнения
Чтобы перезаполнить один абзац,
используйте команду M-q ( Чтобы перезаполнить много абзацев, используйте M-x fill-region, которая делит область на абзацы и заполняет каждый из них. Команды M-q и Числовой аргумент для M-q приводит к тому, что
помимо заполнения, текст ещё и выравнивается. Это значит, что
вставляются дополнительные пробелы, чтобы правый край строки попадал точно в
столбец заполнения. Чтобы уничтожить дополнительные пробелы, используйте
M-q без аргумента. (Аналогично и для Команда
M-s ( Максимальная
ширина строки для заполнения содержится в переменной Команды Emacs обычно рассматривают точку, за которой следуют два пробела или перевод строки, как конец предложения; точка, после которой идёт только один пробел, указывает на сокращение и не является концом предложения. Чтобы сохранить разграничение между двумя этими вариантами использования точки, команды заполнения не обрывают строку после точки, за которой идёт только один пробел. Если переменная Если переменная Префикс заполненияЧтобы заполнить абзац, в котором каждая строка начинается с особого маркера (который может несколькими пробелами, что даёт абзац с отступом), используйте так называемый префикс заполнения. Префикс заполнения -- это цепочка знаков, с которой, по предположению Emacs, начинается каждая строка, и которая не включается в заполнение. Вы можете задать префикс заполнения явно; кроме того, Emacs может вычислять его автоматически (смотрите раздел Адаптивное заполнение).
Чтобы задать префикс заполнения,
передвиньтесь к строке, которая начинается с желаемого префикса, поставьте точку
в конец префикса и дайте команду C-x .
( Когда префикс заполнения в действии, команды заполнения уничтожают его в каждой строке перед заполнением и вставляют его в каждую строку после заполнения. Режим Auto Fill также автоматически вставляет в каждую вновь созданную строку префикс заполнения. Команда C-o вставляет в созданные ей строки префикс заполнения, когда вы используете её в начале строки (смотрите раздел Пустые строки). С другой стороны, команда M-^ уничтожает префикс (если он есть) после удаляемого перевода строки (смотрите раздел Отступы). Например, если ;; Это пример ;; абзаца внутри ;; комментария в стиле Лиспа. дает следующее: ;; Это пример абзаца внутри комментария ;; в стиле Лиспа. Строки, не начинающиеся с префикса заполнения, рассматриваются как начинающие абзац и в M-q, и в командах работы с абзацами; это даёт хорошие результаты для абзацев с висящим отступом (все строки, кроме первой, имеют отступ). Строки, ставшие пустыми или имеющими отступ после удаления префикса, также разделяют или начинают абзац; это именно то, что вы хотите, если вы пишете комментарии, состоящие из нескольких абзацев, с ограничителем комментария на каждой строке. Вы можете использовать M-x fill-individual-paragraphs, чтобы установить префикс заполнения для каждого абзаца автоматически. Эта команда делит область на абзацы, считая любое изменение величины отступа началом нового абзаца, и заполняет каждый из этих абзацев. Таким образом, все строки одного "абзаца" имеют одинаковый отступ. Именно этот отступ служит префиксом заполнения для каждого абзаца. M-x fill-nonuniform-paragraphs -- это похожая
команда, которя делит область на абзацы другим способом. Она рассматривает
только строки-разделители абзацев (как определено
Префикс заполнения хранится в переменной
Свойство текста Адаптивное заполнениеКоманды заполнения могут в некоторых случаях автоматически вычислять подходящий для абзаца префикс заполнения: пропуски или определенная пунктуация в начале строки распространяются на все строки абзаца. Если в абзаце есть две или более строки, префикс заполнения берётся из второй, но только если он также появляется и в первой. Если в абзаце есть только одна строка, команды заполнения могут взять префикс из этой строки. Здесь сложно принять решение, потому что в таком случае разумными могут оказаться три варианта:
Все три этих стиля форматирования применяются часто. Поэтому команды заполнения пятаются выяснить, какой бы вам понравился, основываясь на появляющемся префиксе и на основном режиме. Как это делается, описано ниже. Если префикс, обнаруженный на первой строке,
соответствует Иначе, найденный префикс преобразуется в эквивалентное число пробелов, и в качестве префикса заполнения для оставшихся строк используются эти пробелы, при условии, что они не будут действовать как начало абзаца в следующих строках. В режиме Text и в других режимах, где абзацы разделяются только пустыми строками и переводами страницы, префикс, выбираемый адаптивным заполнением, никогда не ведет себя как начало абзаца, поэтому он всегда может использоваться для заполнения. Переменная
Вы можете задать более сложные методы автоматического
выбора префикса заполнения, установив переменную
Команды преобразования регистраВ Emacs есть команды для перевода одиночных слов или любого произвольного текста в верхний или в нижний регистр.
Команды преобразования слов наиболее
полезны. M-l ( Когда задан отрицательный аргумент, команды перевода регистра в словах применяются к соответствующему числу слов перед точкой, не сдвигая её саму. Это удобно, когда вы только что набрали слово в неправильном регистре: вы можете дать команду перевода регистра и продолжать набор. Если команда перевода регистра в словах даётся в середине слова, то она
применяется только к части слова, которая следует за точкой. Это очень похоже на
то, что делает M-d ( Другие команды перевода регистра -- это C-x C-u
( Команды перевода регистра в области, Режим TextКогда вы редактируете текстовые файлов на естественном языке, вам будет удобнее воспользоваться режимом Text, а не Fundamental. Чтобы войти в режим Text, наберите M-x text-mode. В режиме Text абзацы разделяются только пустыми строками и разделителями страниц. В результате абзацы могут иметь отступ, и адаптивное заполнение может определить, какой отступ должен использоваться для заполнения абзаца. Смотрите раздел Адаптивное заполнение. В режиме Text TAB запускает функцию
Режим Text выключает средства, связанные с комментариями, кроме тех случаев, когда вы явно вызовете их. Он изменяет синтаксическую таблицу таким образом, что точки не рассматриваются как часть слова, тогда как знак забоя, подчеркивание и апострофы считаются таковыми. Если вы делаете отступ в первой строке абзаца, вам нужно использовать режим Paragraph-Indent Text вместо режима Text. В этом режиме вам не обязательно ставить между абзацами пустые строки, потому что отступа в первой строке достаточно для начала нового абзаца; однако, абзацы, в которых каждая строка имеет отступ, не поддерживаются. Чтобы войти в этот режим, используйте M-x paragraph-indent-text-mode. Режим Text и все режимы, основанные на нем, определяют
M-TAB как команду Вход в режим Text запускает ловушку
Режим OutlineРежим Outline -- это основной режим, очень похожий на режим Text, но предназначенный для редактирования структурированного текста. Он позволяет вам делать части текста временно невидимыми, так что вы можете видеть просто просмотреть структуру текста. Наберите M-x outline-mode, чтобы включить режим Outline в текущем буфере. Когда режим Outline делает строку невидимой, эта строка не появляется на экране. Экран имеет точно такой же вид, как если бы невидимая строка была удалена, за исключением того, что в конце предыдущей видимой строки появляется многоточие (только одно, независимо от того, сколько невидимых строк следует дальше). Команды редактирования, работающие со строками, такие как C-n и C-p, трактуют текст невидимой строки как часть предыдущей видимой. Уничтожение полной видимой строки, включая ограничивающий её знак новой строки, на самом деле уничтожает вместе с ней все следующие невидимые строки. Второстепенный режим Outline предоставляет те же команды, что и основной режим Outline, но вы можете использовать его совместно с другими основными режимами. Чтобы включить второстепенный режим Outline в текущем буфере, наберите M-x outline-minor-mode. Вы также можете указать это в тексте файла с помощью локальной переменной в форме `mode: outline-minor' (смотрите раздел Локальные переменные в файлах). Основной режим, режим Outline, предоставляет особые
привязки ключей на префиксе C-c. Второстепенный режим Outline
предоставляет похожие привязки с C-c @ в качестве префикса; это
нужно, чтобы уменьшить риск конфликта со специальными командами основного
режима. (Используемый префикс управляется переменной
При входе в режим Outline запускается ловушка
Формат схем текстаРежим Outline предполагает, что строки в буфере делятся на два типа: строки заголовка и строки тела. Строки заголовка представляет тему в схеме текста. Они начинаются с одной или более звездочек; число звездочек определяет глубину заголовка в структуре текста. Таким образом, строка заголовка с одной звездочкой -- это основная тема; все строки заголовка с двумя звездочками между этой строкой и следующей строкой заголовка с одной звездочкой являются её подтемами и так далее. Любая строка, которая не является строкой заголовка, -- это строка тела. Строки тела относятся к предшествующей строке заголовка. Вот пример: * Еда Это тело, которое говорит что-то о еде. ** Вкусная еда Это тело заголовка второго уровня. ** Противная еда Здесь тоже могло бы быть тело на нескольких строках. *** Общепит * Приют Еще одна тема первого уровня со своей строкой заголовка. Строка заголовка вместе со всеми последующими строками тела в совокупности называются вхождением. Строка заголовка вместе со всеми следующими более глубокими заголовками и их строками тела называется поддеревом. Вы можете настроить критерий для различения строк
заголовка, установив переменную Есть возможность изменить правило подсчета уровня строк
заголовка, путем установки переменной Команды перемещения по структуреРежим Outline предоставляет особые команды перемещения, которые передвигают назад и вперёд по строкам заголовков.
C-c C-n ( Более мощные команды
движения понимают уровневую структуру заголовков. C-c C-f
( Команды управления видимостью структурыЧтобы сделать строки видимыми или невидимыми, используются другие специальные
команды режима Outline. Все их имена начинаются либо с
Две команды, которые строго противоположны, -- это C-c
C-c ( Две более мощные противоположности -- это
C-c C-d ( Промежуточное состояние между видимым и невидимым поддеревом --
это когда видимы все подзаголовки, но не видимо ни одно тело. Для осуществления
этого есть две команды, в зависимости от того, хотите ли вы скрыть тела или
сделать видимыми подзаголовки. Это C-c C-l ( Команда C-c C-i
( Две команды производят действие, охватывающее весь файл.
C-c C-t ( Команда C-c C-q
( Команда C-c C-o
( Использование многоточий в конце видимых строк может быть отключено путем
установки Когда наращиваемый поиск находит текст, который скрыт режимом Outline, он делает эту часть буфера видимой. Если вы выйдите из поиска в этой позиции, текст останется видимым. Просмотр одной схемы в нескольких видахВы можете просмотреть два вида одной схемы одновременно в разных окнах. Чтобы сделать так, вы должны создать косвенный буфер, используя M-x make-indirect-buffer. Первый аргумент этой команды -- это имя существующего буфера Outline, а второй аргумент -- это имя, которое будет использоваться для нового косвенного буфера. Смотрите раздел Косвенные буферы. @hyphenation{соз-дай-те} Когда косвенный буфер создан, вы можете показать его в окне, как обычно, с помощью C-x 4 b или других команд Emacs. Команды режима Outline для показа или скрывания частей текста действуют в каждом буфере независимо; в результате каждый буфер может иметь свой вид. Если вы хотите получить более двух видов одной и той же схемы, создайте дополнительные косвенные буферы. Режим TeXTeX -- это мощная программа компьютерного набора, написанная Дональдом Кнутом. Он также является свободным программным продуктом, как и GNU Emacs. LaTeX -- это упрощенный формат ввода для TeX, реализованный на макросах TeX. Он распространяется вместе с TeX. SliTeX -- это особая форма LaTeX. В Emacs есть специальный режим TeX для редактирования входных TeX-файлов. Он предусматривает средства для проверки сбалансированности ограничителей и для вызова TeX для всего файла или его части. Режим TeX имеет три варианта: режим Plain TeX, режим
LaTeX и режим SliTeX (три этих основных режима отличающихся друг от друга лишь
слегка). Они предназначены для редактирования трех различных входных форматов.
Команда M-x tex-mode проверяет содержимое буфера, чтобы определить,
не является ли это входом для LaTeX или SliTeX; если это так, она выбирает
подходящий режим. Если содержимое файла не оказалось ни LaTeX, ни SliTeX, она
выбирает режим TeX. Если содержимого файла оказалось недостаточно для
определения формата, то используется режим, задаваемый переменной
Когда M-x tex-mode делает неправильное предположение, вы можете использовать команды M-x plain-tex-mode, M-x latex-mode и M-x slitex-mode для явного выбора конкретного варианта режима TeX. Команды редактирования режима TeXЗдесь перечислены специальные команды, предусмотренные в режиме TeX для редактирования текста файла.
Знак `"' обычно не
используется в TeX; мы используем `"', чтобы открыть кавычки, и
`"', чтобы закрыть. Чтобы облегчить редактирование с учетом этого
соглащения о форматировании, режим TeX заменяет обычное значение клавиши
" на команду, вставляющую пару одиночных простых или обратных кавычек
( Если вам нужен знак `"' сам по себе в необычном контексте, используйте для его вставки C-q. Также, " c числовым аргументом всегда вставляет указанное число знаков `"'. Вы можете выключить средство раскрытия ", убрав эту привязку из локальной раскладки (смотрите раздел Настройка привязок ключей). Знак `$' имеет в режиме TeX особый синтаксический код, который перетендует на понимание способа, которым ограничители математической моды TeX соответствуют друг другу. Когда вы вводите `$', который используется для выхода из математической моды, на секунду отображается позиция парного `$', который вводил в математическую моду. Это то же самое средство, которое показывает открывающую фигурную скобку, соответствующую вставленной закрывающей. Однако, нет способа узнать, является ли `$' входом или выходом из математической моды; поэтому когда вы вводите `$', который входит в математическую моду, показывается позиция предыдущего `$', как если бы она была они составляли пару, даже если фактически они не относятся друг к другу. TeX использует фигурные скобки как ограничители, которые
обязаны составлять пары. Некоторые пользователи предпочитают поддерживать
фигурные скобки все время сбалансированными, а не вставлять их по отдельности.
Используйте C-c { ( Существуют две
команды для контроля соответствия фигурных скобок. C-j
( Заметьте, что команды Emacs подсчитывают в режиме TeX не только фигурные скобки, но и квадратные и круглые. Для проверки синтаксиса TeX это не совсем корректно. Тем не менее, круглые и квадратные скобки, скорее всего, используются в тексте в качестве парных разделителей, и будет полезно, если различные команды движения и автоматического показа пар будут с ними работать. Команды редактирования режима LaTeXРежим LaTeX и его вариация, режим SliTeX, предоставляют несколько дополнительных возможностей, не относящихся к plain TeX.
В LaTeX для
группировки блоков текста используются команды `\begin' и
`\end'. Чтобы вставить `\begin' и парную
`\end' (на новой строке после `\begin'), используйте
C-c C-o ( (setq latex-block-names '("theorem" "corollary" "proof")) Во входном тексте LaTeX команды
`\begin' и `\end' должны соответствовать друг другу.
Вы можете использовать C-c C-e ( Команды печати для TeXВы можете вызвать TeX как подчиненный процесс Emacs либо для всего содержимого буфера, либо только на область, за один раз. Запуск TeX таким способом только в одной главе даёт удобный метод увидеть, как выглядят ваши изменения, не тратя время на форматирование всего файла.
Вы можете пропустить текущий буфер через подчиненный TeX с
помощью C-c C-b ( Вы можете указать каталог для запуска
TeX, установив переменную Если вы хотите указать,
какие команды оболочки нужно использовать в подчиненном процессе TeX, вы можете
сделать это установкой значений переменных Обычно имя файла, передаваемое этим командам, пишется в конце командной строки: например, `latex имя-файла'. Однако в некоторых случаях имя файла должно быть вставлено в команду; это может понадобиться, к примеру, когда вам нужно предоставить имя файла в качестве аргумента команде, чей вывод направляется другой программе. Вы можете указать, в какое место следует подставить имя файла, с помощью знака `*' в командной строке. Например, (setq tex-dvi-print-command "dvips -f * | lpr") Терминальный вывод TeX, включающий все сообщения об ошибках,
появляется в буфере с именем Наберите C-c C-k ( Вы также можете пропустить
произвольную область через подчиненный TeX, набрав C-c C-r
( Чтобы обозначить границы заголовка в режиме Plain TeX, вы вставляете в файл две специальные строки. Вставьте `%**start of header' перед заголовком и `%*end of header' после него. Обе должны появиться полностью на одной строке, но перед ними или после них допускается другой текст. Строки, содержащие эти фразы, включаются в заголовок. Если `%**start of header' не появится в пределах первых 100 строк буфера, C-c C-r предполагает, что заголовка нет. В режиме LaTeX заголовок начинается с `\documentstyle' и заканчивается `\begin{document}'. LaTeX требует, чтобы вы использовали эти команды в любом случае, так что для определения заголовка не требуется делать ничего особенного. Команды ( Когда вам нужны вспомогательные файлы для перекрестных ссылок, используйте
C-c C-f ( Значение переменной Большие документы TeX часто разбивают на несколько файлов
-- один главный плюс подфайлы. Запуск TeX для подфайла как правило не сработает;
вы должны запускать его для главного файла. Чтобы сделать Наиболее удобный способ использования С LaTeX-файлами
вы можете использовать BibTeX, чтобы обработать вспомогательные файлы для файла
текущего буфера. BibTeX находит библиографические цитаты в базе данных и
подготавливает процитированные ссылки для раздела библиграфии. Команда C-c
TAB ( Вход в любой вид режима TeX запускает
ловушки Режим NroffРежим Nroff -- это режим, похожий на режим Text, но модифицированный для управления командами nroff, присутствующими в тексте. Вызовите M-x nroff-mode, чтобы войти в этот режим. Он отличается от режима Text только несколькими возможностями. Все строки команд nroff считаются разделителем абзацев, так что заполнение никогда не исказит команды nroff. Страницы разделяются командами `.bp'. Комментарии начинаются с обратной косой черты и двойных кавычек. Также предусмотрены три специальные команды, которых нет в режиме Text:
Другое свойство режима Nroff -- это то, что вы можете включать режим Electric Nroff. Это второстепенный режим, который вы можете включать или выключать при помощи M-x electric-nroff-mode (смотрите раздел Второстепенные режимы). Если этот режим включён, то каждый раз, когда вы набираете RET для окончания строки, которая содержит команду nroff, открывающую некоторый вид группы, в следующую строку автоматически вставляется соответствующая закрывающая группу команда nroff. Например, если вы находитесь в начале строки и наберете . ( b RET, то в новую строку, следующую за точкой, будет вставлена соответствующая команда `.)b'. Если с режимом Nroff вы используете второстепенный режим Outline (смотрите раздел Режим Outline), строками заголовков будут строки вида `.H' с последующим числом (уровнем заголовка). Вход в режим Nroff запускает ловушку
Редактирование форматированного текстаРежим Enriched -- это второстепенный режим для редактирования файлов, которые содержат форматированный текст в стиле WYSIWYG, как в текстовом процессоре. На данный момент форматированный текст в режиме Enriched может задавать шрифты, цвета, подчеркивание, поля и типы заполнения и выравнивания. В будущем мы планируем реализовать также и другие возможности для форматирования. Режим Enriched -- это второстепенный режим (смотрите раздел Второстепенные режимы). Как правило он используется вместе с режимом Text (смотрите раздел Режим Text). Однако, вы можете также использовать его и с другими основными режимами, такими как режим Outline и режим Paragraph-Indent Text. Потенциально Emacs может сохранять файлы с форматированным текстом во многих форматах. На текущий момент реализован только один формат: text/enriched, который определяется протоколом MIME. Смотрите раздел `Format Conversion' в the Emacs Lisp Reference Manual, для получения подробностей о том, как Emacs распознает и пребразует форматы файлов. Дистрибутив Emacs содержит файл с форматированным текстом, который может
служить примером. Он называется Запрос на редактирование форматированного текстаКогда вы обращаетесь к файлу, который был сохранён в формате text/enriched, Emacs автоматически преобразует информацию о форматировании из этого файла во внутренний формат Emacs (свойства текста) и включает режим Enriched. Чтобы создать новый файл с форматированным текстом, обратитесь сначала к несуществующему файлу, а перед тем как начать редактирование наберите M-x enriched-mode. Эта команда включает режим Enriched. Делайте это до того, как вы начнёте вставлять текст, чтобы вставляемый текст наверняка обрабатывался правильно. В более общем виде, команда Когда вы сохраняете буфер при задействованном режиме Enriched, Emacs автоматически преобразует текст к формату text/enriched во время записи в файл. Когда вы снова обратитесь к этому файлу, Emacs автоматически распознает формат, преобразует текст обратно и снова включит режим Enriched. Обычно после обращения к файлу в формате text/enriched,
Emacs перезаполняет каждый абзац так, чтобы он умещался по заданному правому
полю. Вы можете выключить это перезаполнение, чтобы сэкономить время, установив
переменную Однако, при обращении к файлу, записанному в формате Enriched, нет нужды в перезаполнении, поскольку Emacs сохраняет установки правого поля вместе с текстом. Вы можете вносить пометки для сохранения дополнительных
свойств текста, которые Emacs обычно не сохраняет, делая добавления к
Жёсткие и гибкие переводы строкEmacs различает в форматированном тексте два разных вида переводов строк: жёсткие и гибкие. Жёсткие переводы строк используются для разделения абзацев, или пунктов
перечня, или везде, где строка должна всегда разрываться вне зависимости от
полей. Команды RET ( Гибкие переводы строк применяются для того, чтобы уместить текст в пределы полей. Все команды заполнения, включая Auto Fill, вставляют гибкие переводы строк, и они удаляют всегда только гибкие переводы строк. Хотя жёсткие и гибкие переводы строк выглядят одинаково, важно помнить об их различии. Не используйте RET, чтобы разорвать строку в середине заполненного абзаца, или иначе вы получите жёсткие переводы строк, которые послужат барьером последующему заполнению. Вместо этого позвольте разбивать строки режиму Auto Fill, чтобы при изменении текста или полей Emacs мог правильно перезаполнить строки. Смотрите раздел Режим Auto Fill. С другой стороны, в таблицах и перечнях, где строки должны всегда оставаться
такими, как вы их набрали, вы можете использовать для завершения строк
RET. Для таких строк вы также можете установить стиль выравнивания в
Редактирование информации о форматеЕсть два способа изменить информацию о формате для файла с форматированным текстом: командами клавиатуры или с помощью мыши. Простейший способ добавить свойства к вашему документу --- воспользоваться меню Text Properties. Вы можете попасть в это меню двумя путями: из меню Edit в полоске меню или с помощью C-mouse-2 (прижмите клавишу CTRL и нажмите среднюю кнопку мыши). Большинство пунктов из меню Text Properties ведут к другим подменю. Подменю описаны в последующих разделах. Некоторые пункты запускают команды непосредственно:
Начертания в форматированном текстеВ подменю Faces перечислены разные начертания Emacs, включая
Если вы используете эти команды с префиксным аргументом -- или, в режиме Transient Mark, если область не активна -- то они задают начертание для следующего самовставляющегося ввода. Смотрите раздел Режим Transient Mark. Это относится как к командам клавиатуры, так и к командам меню. Режим Enriched определяет два дополнительных начертания: Начертание Начертание Начертание Если ваш терминал не умеет отображать разные начертания, у вас не получится их увидеть, но вы все же сможете редактировать документы, содержащие их. Вы даже сможете добавить в текст начертания и цвета. Они станут видимы, когда файл будут просматривать на терминале, который способен их отобразить. Цвета в форматированном текстеВы можете указать цвета букв и фона для фрагментов текста. Есть меню для задания цвета текста и меню для задания цвета фона. Оба меню цветов перечисляют все цвета, которые вы использовали в режиме Enriched в текущем сеансе Emacs. Если вы задаёте цвет с префиксным аргументом -- или, в режиме Transient Mark, если область не активна -- то этот цвет применяется для самовставляемого ввода. Смотрите раздел Режим Transient Mark. В противном случае эта команда относится к области. Оба меню цветов содержат дополнительный пункт: `Other'. Вы можете использовать этот пункт для задания цвета, который не перечислен в меню; имя цвета считывается в минибуфере. Чтобы просмотреть перечень доступных цветов и их имена, используйте пункт `Display Colors' в меню Text Properties (смотрите раздел Редактирование информации о формате). Любой цвет, заданный таким способом или упомянутый в считанном файле с форматированным текстом, добавляется в оба меню цветов и сохраняется там на протяжении всего сеанса Emacs. Для задания цветов нет привязок ключей, но вы можете указывать их при помощи расширенных команд M-x facemenu-set-foreground и M-x facemenu-set-background. Обе эти команды считывают имя цвета в минибуфере. Отступы в форматированном текстеПри редактировании форматированного текста вы можете задать различные величины отступа для правого или левого края целого абзаца или его части. Указанные вам поля автоматически учитываются команды Emacs для заполнения (смотрите раздел Заполнение текста) и разрыва строк. Подменю Indentation предоставляет удобный интерфейс для указания этих свойств. Оно содержит четыре пункта:
Вы можете использовать эти команды несколько раз для увеличения или уменьшения величины отступа. Наиболее частый способ применения этих команд -- изменять отступ целого абзаца. Однако это не единственное их применение. Вы можете поменять размеры полей в любой точке; новые значения проявляются в конце этой строки (для правого поля) или в начале следующей (для левого поля). Это позволяет форматировать абзацы с висящими отступами, что означает, что отступ первой строки меньше отступа последующих строк. Чтобы установить висящий отступ, увеличьте отступ области, начинающейся после первого слова абзаца и продолжающейся до его конца. Отступ в первой строке абзаца делается проще. Установите поле для всего абзаца там, где вы хотели бы видеть его для тела абзаца, а затем увеличьте отступ первой строки, добавив пробелы или знаки табуляции. Иногда в результате редактирования заполнение абзаца сбивается --- части
абзаца могут выйти за левые или правые поля. Когда такое происходит,
воспользуйтесь M-q ( Число столбцов, которые добавляют или удаляют из отступа
эти команды, задаётся переменной Префикс заполнения, если он задан, действует совместно с указанным отступом абзаца: C-x . не включает пропуск из указанного отступа в новое значение префикса заполнения, а команды заполнения ищут префикс заполнения в каждой строке после отступа. Смотрите раздел Префикс заполнения. Выравнивание в форматированном текстеПри редактировании форматированного текста вы можете задавать различные стили выравнивания абзацев. Указанный вами стиль автоматически учитывается командами Emacs для заполнения. Подменю Justification предоставляет удобный интерфейс для указания стиля выравнивания. Оно содержит пять пунктов:
В режиме Enriched вы также можете задавать стиль выравнивания с клавиатуры, используя префиксный знак M-j:
Стили выравнивания применяются к целым абзацам. Все команды для изменения выравнивания действуют на абзац, содержащий точку, или, если область активна, на все абзацы, пересекающиеся с областью. Стиль выравнивания по умолчанию задаётся переменной
Установка других свойств текстаМеню Other Properties позволяет вам добавлять или удалять три других полезных свойства текста: Для добавления каждого из этих особых свойств к области есть пункт меню. Последний пункт меню, `Remove Special', удаляет все эти особые свойства из текста области. На данный момент свойства Принудительное включение режима EnrichedОбычно Emacs знает, когда вы редактируете форматированный текст, поскольку он распознает специальные пометки, использованные в файле, к которому вы обратились. Однако, бывают ситуации, в которых вы должны предпринять особые меры, чтобы преобразовать содержимое файла или включить режим Enriched:
Команда Если вы хотите просмотреть на текст в text/enriched-файле
буквально, как последовательность знаков, а не как форматированный текст,
воспользуйтесь командой M-x find-file-literally. Она обращается к
файлу, как и Назад | Вперед | Содержание |
|
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети