Перейти к содержимому
Topos Uranos

Текст: итоги и задачи повышенной трудности

Краткое содержание

Этот урок завершает второй раздел курса, посвящённый тексту. Он восстанавливает цепочку соглашений и приёмов, ведущую от абзаца и его знаков к сноскам, цитатам и стихам, и указывает в каждом звене, какой принцип используется и в каком уроке он установлен; соотносит достигнутое с планом курса и уточняет, какие вопросы, лишь намеченные, остаются следующим разделам; повторяет в итоговом тесте навыки входного теста; и заканчивается шестью задачами повышенной трудности, более сложными, чем задачи отдельных уроков, которые требуют соединить несколько уроков, чтобы диагностировать плохо набранные тексты, предсказывать результат в документах с несколькими языками и планировать документы по их описанию.

Цели обучения

  1. Восстановить порядок соглашений и приёмов раздела, указав принцип, на который опирается каждый из них.
  2. Объяснить, как связаны объявленный язык, шрифты, логическая разметка и решения, которые движок принимает в конце каждого абзаца.
  3. Отличать то, что раздел установил, от того, что он лишь наметил и что разовьют следующие разделы.
  4. Диагностировать тексты, которые компилируются, но плохо набраны, отделяя то, о чём предупреждает журнал, от того, что обнаруживает только чтение.
  5. Планировать преамбулу и тело документа с несколькими языками, сносками и цитатами по его описанию.

Чего достиг раздел

Раздел ставил целью перейти от документа, который компилируется, к тексту, набранному по правилам типографики и каждого языка. Цель достигнута с опорой на то, что введение объявило известным из предыдущего раздела: правила, по которым движок читает исходный текст, область действия объявлений, разделение содержания и формы, LuaLaTeX с Unicode и проходы компиляции. Поэтому пройденный путь можно прочесть как одну цепочку из четырёх отрезков.

Абзацы, пробелы и знаки

Урок об абзацах, пробелах и знаках отличил абзац, который открывается пустой строкой или командой \par, от разрыва строки, который его не открывает, и установил, что форму абзацев и вертикальный пробел между ними определяет класс. Он разделил пробелы по их назначению: растяжимый пробел, допускающий разрыв строки, тильду, которая его запрещает, и узкий пробел между разрядами; показал, что babel для русского языка сам включает \frenchspacing и выравнивает пробел после точки. Он различил дефис, короткое тире, тире и знак минуса; набрал кавычки нескольких уровней, вручную или с \enquote, и многоточие; и показал, что babel для русского языка не трогает ни десятичные дроби, ни проценты: запятую в формуле защищают фигурными скобками, а узкий пробел перед знаком процента пишут сами.

Языки и шрифты

Урок о языках и шрифтах объяснил, что определяет объявленный язык: перенос слов, названия, дату и некоторые сокращения клавиатуры; различил три способа сменить язык по тому, что они меняют, и применил их к греческому и латыни. Он представил три семейства шрифтов, команду \babelfont, назначающую шрифт каждому языку, и самые полезные возможности OpenType; и научил проверять, что не недостаёт ни одного символа и ни одного начертания, и предпочитать шрифты TeX Live, когда документ должен компилироваться на других компьютерах.

Оформление со смыслом

Урок об оформлении со смыслом довёл разделение содержания и формы до подробностей текста. Он различил логическую и визуальную разметку; изучил выделение, которое при вложении меняется на противоположное; три атрибута шрифта с их формами команды с аргументом и объявления; и размеры, которые существуют только как объявления. Он установил, что межстрочное расстояние и выравнивание абзаца определяются в момент его окончания, откуда следует, что группа, меняющая то или другое, должна охватывать конец абзаца. Он предложил определять команды, которые называют функции, представил списки с enumitem и выравнивание и закончил тем, чего делать не стоит.

Сноски, цитаты и стихи

Урок о сносках, цитатах и стихах собрал аппарат научного текста: сноски, со знаком сноски перед знаком препинания по правилам русского набора, со знаком и текстом по отдельности и со сносками в заголовках; цитаты в строку с \enquote и выделенные с quote, quotation и \blockquote; эпиграфы; стихи в окружении verse; и нумерацию строк пакетом lineno, ссылки которого, как и всякая ссылка, требуют двух проходов.

Следующая схема соединяет четыре отрезка в одну цепочку. Каждый узел столбца есть соглашение или приём, пронумерованный в том порядке, в каком они опираются друг на друга, и соединённый дугой с предыдущими звеньями, которые он использует; вокруг расположены опоры, то есть принципы, к которым цепочка обращается снова и снова, и каждая соединена сплошной линией со звеньями, которые на неё опираются, и пунктирной со звеном, где она устанавливается, кроме установленных в предыдущем разделе, которые изображены кольцами. При нажатии на опору выделяются все звенья, которые её используют, а каждое звено ведёт к уроку, где оно изучается.

Опоры цепи

  • AЧтение исходного текста. Несколько пробелов равны одному, конец строки равен пробелу, а пустая строка завершает абзац; управляющие слова поглощают следующий за ними пробел. Устанавливается в предыдущем разделе. В этом модуле принимается без доказательства.
  • BОбласть действия объявлений. Объявление действует до конца группы, в которой стоит, и фигурные скобки после него его не ограничивают. Устанавливается в предыдущем разделе. В этом модуле принимается без доказательства.
  • CСодержание и форма. Автор объявляет, что есть каждая вещь, а решение, принятое в другом месте, определяет, как она выглядит. Устанавливается в предыдущем разделе. В этом модуле принимается без доказательства.
  • DUnicode и шрифты. LuaLaTeX читает исходный текст в Unicode, а символ, которого нет в шрифте, отсутствует в PDF, и журнал об этом предупреждает. Устанавливается в предыдущем разделе. В этом модуле принимается без доказательства.
  • EПроходы. Ссылки записываются во вспомогательный файл на одном проходе и используются на следующем. Устанавливается в предыдущем разделе. В этом модуле принимается без доказательства.
  • FЯзык решает. Язык, объявленный в babel, определяет перенос слов, названия, дату, некоторые сокращения и, в русском, одинаковый пробел после точки. Устанавливается в: 8. Что определяет язык.
  • GВ конце абзаца. Межстрочное расстояние и выравнивание абзаца определяются в момент его окончания, по значениям, действующим в этот момент. Устанавливается в: 18. Размеры.
  1. Участок 1 Абзацы, пробелы и знаки

    • Разделять абзацы пустыми строками и оставлять разрыв строки для случаев, когда единицей служит строка.
    • Выбирать между обычным пробелом, тильдой, узким пробелом и отсутствием пробела.
    • Писать дефис, короткое тире, тире и знак минуса там, где им место.
    • Набирать кавычки нескольких уровней, многоточие и числа.
    1. Абзац и разрыв строки. Пустая строка и \par завершают абзац, форму которого определяет класс; разрыв строки завершает только строку, без отступа и без защиты для следующей.

      Опирается на: A (Чтение исходного текста). Доказывается в уроке: Абзацы, пробелы и знаки.

    2. Вертикальный пробел. Растяжимые пропуски и \vspace добавляют пространство между блоками и отбрасываются в начале страницы; ими пользуются умеренно, потому что пробел между абзацами определяет класс.

      Использует: 1. Абзац и разрыв строки. Опирается на: C (Содержание и форма). Доказывается в уроке: Абзацы, пробелы и знаки.

    3. Тильда и узкий пробел. Тильда есть обычный пробел, на котором строка не разрывается; узкий пробел узок, неизменен и неразрывен и разделяет группы цифр.

      Опирается на: A (Чтение исходного текста). Доказывается в уроке: Абзацы, пробелы и знаки.

    4. Пробел после точки. LaTeX увеличивает пробел после точки, которую считает концом предложения; русская типографика этого не делает, и \frenchspacing, который babel для русского включает сам, выравнивает пробелы.

      Использует: 3. Тильда и узкий пробел. Опирается на: A (Чтение исходного текста). Доказывается в уроке: Абзацы, пробелы и знаки.

    5. Дефисы и тире. Дефис соединяет части сложных слов; два дефиса дают короткое тире диапазонов; три дают тире вставок; знак минуса существует только в формуле.

      Опирается на: D (Unicode и шрифты). Доказывается в уроке: Абзацы, пробелы и знаки.

    6. Кавычки и многоточие. Русский набор употребляет по уровням ёлочки и лапки, а \enquote выбирает их и закрывает; многоточие есть один знак.

      Опирается на: D (Unicode и шрифты), C (Содержание и форма). Доказывается в уроке: Абзацы, пробелы и знаки.

    7. Десятичные дроби и проценты. В формуле запятая есть знак препинания и защищается фигурными скобками; разряды отделяются узким пробелом, как и знак процента.

      Использует: 3. Тильда и узкий пробел. Опирается на: A (Чтение исходного текста). Доказывается в уроке: Абзацы, пробелы и знаки.

  2. Участок 2 Языки и шрифты

    • Объявлять основной язык и дополнительные и объяснять, что определяет каждый.
    • Выбирать между \foreignlanguage, otherlanguage и \selectlanguage.
    • Набирать греческий и латынь по их правилам и подходящим шрифтом.
    • Назначать шрифты и возможности, проверять, что ничего не недостаёт, и предпочитать переносимые шрифты.
    1. Что определяет язык. babel применяет для каждого языка шаблоны переноса, названия, дату и сокращения; последний язык списка является основным.

      Использует: 4. Пробел после точки, 6. Кавычки и многоточие, 7. Десятичные дроби и проценты. Доказывается в уроке: Языки и шрифты.

    2. Смена языка. \foreignlanguage меняет перенос и сокращения в коротком фрагменте; otherlanguage меняет также дату и названия и закрывается; \selectlanguage меняет всё дальше по тексту.

      Использует: 8. Что определяет язык. Опирается на: F (Язык решает), B (Область действия объявлений). Доказывается в уроке: Языки и шрифты.

    3. Греческий и латынь. Латынь есть опция babel; древнегреческий объявляется командой \babelprovide и требует шрифта с политоническим греческим.

      Использует: 9. Смена языка. Опирается на: F (Язык решает), D (Unicode и шрифты). Доказывается в уроке: Языки и шрифты.

    4. Семейства и fontspec. Основной шрифт, шрифт без засечек и моноширинный назначаются по имени, с возможностями в квадратных скобках.

      Опирается на: D (Unicode и шрифты). Доказывается в уроке: Языки и шрифты.

    5. Шрифт для каждого языка. С языком в квадратных скобках \babelfont назначает шрифт, который действует только в том, что отмечено как этот язык.

      Использует: 11. Семейства и fontspec, 9. Смена языка. Опирается на: F (Язык решает). Доказывается в уроке: Языки и шрифты.

    6. Возможности OpenType. Старостильные или прописные цифры, пропорциональные или моноширинные, капитель и лигатуры включаются как возможности, в объявлении шрифта или в группе.

      Использует: 11. Семейства и fontspec. Опирается на: B (Область действия объявлений). Доказывается в уроке: Языки и шрифты.

    7. Покрытие и переносимость. Шрифт покрывает лишь некоторые письменности и начертания; о недостающем предупреждает журнал, а шрифты TeX Live компилируются в любой полной установке.

      Использует: 12. Шрифт для каждого языка, 10. Греческий и латынь. Опирается на: D (Unicode и шрифты). Доказывается в уроке: Языки и шрифты.

  3. Участок 3 Оформление со смыслом

    • Предпочитать логическую разметку визуальной.
    • Предсказывать вложенное выделение, сочетания начертаний и размеры.
    • Определять команды, которые называют функции.
    • Набирать списки и выравнивать фрагменты, избегая визуальных пометок.
    1. Логическая разметка. Каждая пометка оформления отвечает функции текста, а её вид определяется в одном определении.

      Опирается на: C (Содержание и форма). Доказывается в уроке: Оформление со смыслом.

    2. Выделение. \emph выделяет контрастом: в прямом тексте ставит курсив, в курсиве возвращает прямое начертание, а в полужирном добавляет курсив.

      Использует: 15. Логическая разметка. Опирается на: B (Область действия объявлений). Доказывается в уроке: Оформление со смыслом.

    3. Семейство, насыщенность и начертание. Три атрибута шрифта независимы и сочетаются; у каждой команды есть своё объявление, а недостающее начертание заменяется с предупреждением.

      Использует: 11. Семейства и fontspec, 16. Выделение. Опирается на: B (Область действия объявлений). Доказывается в уроке: Оформление со смыслом.

    4. Размеры. Размеры существуют только как объявления; группа, меняющая размер абзаца, должна охватывать его конец.

      Использует: 17. Семейство, насыщенность и начертание, 1. Абзац и разрыв строки. Опирается на: B (Область действия объявлений). Доказывается в уроке: Оформление со смыслом.

    5. Команды со смыслом. Собственная команда для каждой функции, определённая в преамбуле, позволяет изменить её вид в одной строке.

      Использует: 15. Логическая разметка, 16. Выделение. Опирается на: C (Содержание и форма). Доказывается в уроке: Оформление со смыслом.

    6. Списки. Маркеры, номера или метки по смыслу; enumitem задаёт метки, интервалы и нумерацию, а \setlist делает это для всего документа.

      Использует: 15. Логическая разметка. Опирается на: C (Содержание и форма). Доказывается в уроке: Оформление со смыслом.

    7. Выравнивание. Окружения выравнивания добавляют вертикальный пробел; соответствующие объявления нет и должны охватывать конец абзаца.

      Использует: 18. Размеры, 1. Абзац и разрыв строки, 2. Вертикальный пробел. Опирается на: G (В конце абзаца), B (Область действия объявлений). Доказывается в уроке: Оформление со смыслом.

    8. Чего делать не стоит. Расставлять пробелы вручную, изображать заголовки полужирным и подчёркивать значит подражать текстовому процессору, и всё это отказывает молча.

      Использует: 1. Абзац и разрыв строки, 20. Списки, 19. Команды со смыслом. Опирается на: C (Содержание и форма). Доказывается в уроке: Оформление со смыслом.

  4. Участок 4 Сноски, цитаты и стихи

    • Ставить сноски со знаком на своём месте, в том числе в таблицах и заголовках.
    • Цитировать в строку и выделять длинные цитаты.
    • Набирать эпиграфы и стихи.
    • Нумеровать строки текста и ссылаться на них.
    1. Сноски. Знак сноски примыкает к слову и по правилам русского набора стоит перед точкой или запятой; \footnotemark и \footnotetext разделяют знак и текст.

      Использует: 1. Абзац и разрыв строки, 4. Пробел после точки. Опирается на: A (Чтение исходного текста). Доказывается в уроке: Сноски, цитаты и стихи.

    2. Сноски в заголовках. Сноска в заголовке переходит во вспомогательные файлы и вызывает ошибку; необязательный аргумент оставляет оглавление чистым, а \thanks снабжает примечанием заглавие документа.

      Использует: 23. Сноски. Опирается на: E (Проходы). Доказывается в уроке: Сноски, цитаты и стихи.

    3. Цитаты в строку. \enquote ставит кавычки языка и уровня и по умолчанию допускает два уровня.

      Использует: 6. Кавычки и многоточие, 8. Что определяет язык. Опирается на: F (Язык решает), C (Содержание и форма). Доказывается в уроке: Сноски, цитаты и стихи.

    4. Выделенные цитаты. quote служит для коротких цитат, quotation для цитат из нескольких абзацев, а \blockquote выделяет цитату, если она занимает больше трёх строк.

      Использует: 25. Цитаты в строку, 1. Абзац и разрыв строки. Доказывается в уроке: Сноски, цитаты и стихи.

    5. Эпиграфы и стихи. В verse команда \\ разделяет стихи, а пустая строка разделяет строфы; эпиграф открывает раздел вместе с источником.

      Использует: 1. Абзац и разрыв строки, 26. Выделенные цитаты. Опирается на: A (Чтение исходного текста). Доказывается в уроке: Сноски, цитаты и стихи.

    6. Нумерованные строки. lineno нумерует строки, а \linelabel и \lineref ссылаются на них без написания номеров, за два прохода.

      Использует: 27. Эпиграфы и стихи. Опирается на: E (Проходы). Доказывается в уроке: Сноски, цитаты и стихи.

К структуре. Цепочка останавливается там, где текст, уже хорошо набранный, нуждается в архитектуре: главах, оглавлении, внутренних ссылках и собственной преамбуле, которые составляют предмет следующего раздела.