Как стать автором
Обновить

Фетиш LaTeX (или Не пишите в LaTeX! Он только для вёрстки)

Время на прочтение24 мин
Количество просмотров121K
Автор оригинала: Daniel Allington
Сейчас то время года, когда студенты выбирают себе классы для обучающих навыков. Один из навыков, который будет поощряться, — обучение LaTeX. Другие могут придти к использованию LaTeX по другим причинам: кто-то хочет сверстать книгу; кто-то слышал, что LaTeX может иметь отношение к журналу Digital Humanities; ну и так далее. Я написал это эссе в качестве предварительного введения в LaTeX. Оно не научит вас использовать редактор (я не имею квалификации для этого!), но я попытаюсь популярно объяснить тем, кто ещё не использует LaTeX, для чего именно он нужен. Это поможет им понять, стоит ли LaTeX усилий на его изучение (не говоря уже о том, чтобы просто заставить его работать). Почему такое большое эссе? Потому что многие из евангелистов превратили LaTeX в фетиш и распространяют дезинформацию о его истинных достоинствах. Хочу прояснить ситуацию.

1. Что такое LaTeX?


По словам официального сайта, LaTeX — это «высококачественная система набора и вёрстки» и «стандарт де-факто для обмена и публикации научных документов». С этим никто не спорит.

Коммерческая вёрстка книг, журналов и т. д. обычно осуществляется в настольных WYSIWYG-приложениях для подготовки публикаций, таких как InDesign, Scribus или PageMaker, разработка которого уже прекращена. LaTeX работает иначе: вы даёте ему файл, содержащий текст с кодом (т.е. с разметкой), а он выдаёт файл Postscript, который другая программа может конвертировать в PDF (некоторые варианты напрямую генерируют PDF). Если вы уделили некоторое время чтению (a) статей с конференций по информатике, (b) препринтов научных статей в свободном доступе на arXiv.org или (с) документации пакетов R, то вам знаком внешний вид этих PDF: названия отцентрированы (но не заголовки), отступ в первой строке каждого абзаца, выровненные строки, обычно широкие поля, если не используется разметка в две колонки, элегантные междусловные пробелы и всё обычно набрано этим странным, старомодным шрифтом, который называется Computer Modern.

Технически, LaTeX создан на базе TeX: «языка программирования специального назначения, центрального элемента системы набора и вёрстки, которая выдаёт математику (и сопровождающий текст) издательского качества» (TeX Users Group). TeX создал в конце 1970-х легендарный учёный в области информатики Дональд Кнут, разочарованный стандартами набора и вёрстки у своего издателя. Первыми пользователями стали математики, по достоинству оценившие математические символы, недоступные на печатной машинке, и красоту математических формул в новой системе. В начале 1980-х другой выдающийся учёный в области информатики Лесли Лэмпорт расширил TeX и создал LaTeX (добавив к названию первые две буквы своей фамилии). Лэмпорт добавил макросы TeX: программы, которые генерируют код TeX вместо вас, в фоне. Очень немногие пытаются писать документы напрямую в TeX. Это слишком трудно. Писать в LaTeX легче. Но это не значит, что писать в LaTeX — хорошая мысль.

2. Фетиш LaTeX


Многие учёные и математики пишут статьи в формате LaTeX: слова и знаки пунктуации они сопровождают фрагментами кода, компьютерными инструкциями для набора и вёрстки текста вроде «стилизовать этот фрагмент текста как заголовок главы» или «вставить здесь многоточие». Результатом (в идеале) становится приятно выглядящий PDF, который можно отправлять на рецензию в научный журнал. Если журнал примет статью, то автор или авторы могут загрузить более-менее такой же PDF в репозиторий с открытым доступом, а журналу выслать исходный код LaTeX, который будет заново набран и свёрстан. Пользователи LaTeX часто набирают в нём и другие документы: например, диссертации, раздаточные материалы для конференций и резюме. Наверное, так происходит только потому, что хорошо освоив конкретную технологию для некоей конкретной цели, они стремятся применить её для всех остальных задач, где возможно. Но могут быть и более позитивные причины. Набранные в LaTeX документы, как отмечено выше, легко узнаваемы. Отформатированное в LaTeX резюме — это резюме пользователя LaTeX, а пользователя LaTeX воспринимают серьёзно в научных областях, где принято использовать LaTeX. И т.д.

Хотя LaTeX не так неудобен для пользователя, как TeX, написание в нём обычного текста можно считать аномалией. LaTeX — система набора и вёрстки и язык разметки. Системы набора и вёрстки обычно не используются для редактирования текста, и хотя языки разметки вроде XML и HTML часто используются таким образом, обычно это считается плохой идеей. Довольно логично утверждается, что «заставлять людей редактировать XML — это садизм» (Django Project), и хотя на протяжении какого-то времени онлайновый журнал Digital Humanities Quarterly требовал, чтобы все работы присылали в формате XML (и уникальное разнообразие XML-документов создавалось специально для этой цели), сейчас он принимает статьи и в форматах популярных текстовых редакторов. Организация Wikimedia Foundation признала требование использовать разметку wikitext при создании или редактировании статей одним из барьеров для новых пользователей. Впрочем, попытка реформы была сорвана постоянно уменьшающимся сообществом преданных волонтёров Википедии, среди которых «не выходит за рамки общепринятого мнение, что облегчение редактирования документов — это потеря времени». Я пишу этот блог в слегка упрощённой версии HTML, которая используется в текстовом редакторе WordPress, хотя каждый раз, когда эссе превышает некий размер, я думаю, что лучше бы я этого не делал. Разметка хороша для машин, для чтения и записи, но не настолько хороша для людей. Это хорошо понимали создатели текстовых редакторов вроде Microsoft Word и LibreOffice Writer, которые оба хранят текст в форме XML, но никогда не заставляют пользователя разбираться с реальным XML.

Несмотря на всё это, много текстов пишется именно в LaTeX. Я называю «фетишем LaTeX» убеждение, что в LaTeX есть что-то особенное, что помогает писать в нём тексты. Как мы увидим, аргументы в пользу LaTeX неубедительны на рациональном уровне: в LaTeX на самом деле довольно неудобно писать (хотя могло быть и хуже, например, это мог быть TeX). Это не значит, что от использования LaTeX следует вообще отказаться, но людям хотя бы стоит прекратить рекомендовать его в качестве текстового редактора.

3. Аргумент для написания текста в LaTeX


LaTeX лучше подходит для написания текстов, чем TeX, но это немного говорит. Некоторые энтузиасты делают гораздо более громкие заявления, намекая — или прямо заявляя — что написание текстов в LaTeX лучше не только TeX, но даже чем-то лучше, чем набор текста в обычном текстовом редакторе. Например, блог онлайнового редактора ShareLaTeX даёт такой совет студентам, которые пишут диссертацию: «Ваша диссертация может стать самым большим и сложным документом, который вы когда-либо напишете, вот почему хорошей идеей будет использовать LaTeX вместо обычного текстового процессора». Более полный аргумент даёт сам LaTeX Project:
LaTeX — не текстовый процессор! Вместо этого LaTeX поощряет авторов не слишком беспокоиться о внешнем виде своих документов, а сконцентрироваться на правильном содержании. Например, возьмём следующий документ:
Декартово замкнутые траектории и стоимость яиц
Джейн Доу
Сентбярь 1994

Hello world!
Для набора такого текста в большинстве систем вёрстки или текстовых процессорах автору нужно разметить текст, например, выбрать шрифт Times Roman величиной 18 пунктов для заголовка, шрифт Times Italic 12 пунктов для имени и так далее. Это приводит к двум результатам: авторы тратят время на оформление и появляется много плохо оформленных документов!

LaTeX основан на идее, что оформление документа лучше оставить дизайнерам, а авторы пусть сконцентрируются на написании текста. Так что в LaTeX вы введёте такой документ следующим образом:

\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
Hello world!
\end{document}
Это вполне стандартное объяснение, почему люди предпочитают использовать LaTeX вместо текстового процессора. Мне много раз встречались различные варианты такого объяснения. Например, на момент написания этой статьи страница Википедии, посвящённая LaTeX, утверждает следующее: «LaTeX следует философии отделения представления от содержания, так что авторы могут сконцентрироваться на содержании своих текстов, не отвлекаясь одновременно на визуальное оформление». В презентации с подзаголовком «Правильный способ создания документов» сотрудник MIT Research Science Institute однозначно отвечает на вопрос, почему следует использовать LaTeX: «Представление не должно мешать контенту», а затем объясняет этот тезис, сравнивая текстовые процессоры и LaTeX — причём в этих сравнениях неизменно побеждает LaTeX:

  • В текстовом процессоре вы тратите драгоценное время в муках, какой размер шрифта выбрать для заголовков разделов.
    В LaTeX вы просто сообщаете о начале нового раздела.
  • В текстовом процессоре изменение форматирования означает, что вам придётся менять каждый элемент по отдельности.
    В LaTeX вы просто переопределяете соответствующие команды.
  • В текстовом процессоре вам следует аккуратно следовать всем шаблонам.
    В LaTeX вы всегда уверены, что соответствуете всем шаблонам, и легко переключаетесь между ними.
Эти текстовые процессоры выглядят ужасно, правда? А LaTeX выглядит замечательно, разве нет? Теперь я буду с вами честным. Некоторое время я принимал такие аргументы за чистую монету и более-менее часто сам повторял их как часть опубликованных обсуждений академической грамотности:
В то время как на старинных механических печатных машинках трудно изменить внешний вид символов, популярные компьютерные операционные системы поставляются с большим набором цифровых шрифтов, предоставляя миллионам пользователей доступ к современным шрифтам, таким как Helvetica, Gill Sans и Calibri, а также к старинным шрифтам вроде семейства Garamond. Подобные возможности можно считать отвлекающим фактором, вот почему многие учёные отказываются от текстовых редакторов в пользу LaTeX: язык разметки документов, который помогает забыть о том, как будет выглядеть текст, и сконцентрироваться на его концептуальной структуре.
Так что это официальная причина, почему LaTeX считается хорошим редактором. Текстовые процессоры заставляют вас «слишком сильно беспокоиться о внешнем виде [ваших] документов», что является «отвлекающим фактором», а работа в LaTeX позволяет «сфокусироваться на содержании того, что [вы] пишете, не обращая внимания одновременно на визуальное оформление документа». Это полезно, чтобы «забыть, как выглядит текст и вместо этого сконцентрироваться на его концептуальной структуре». Все так говорят. Даже я. (Кстати, мой соавтор ни при чём: я сам написал тот абзац).

4. Критика аргумента


Я был так убеждён в аргументах в пользу того, почему учёные пишут тексты в LaTeX, что и сам начал создавать собственный документ в LaTeX (так никогда и не закончил его, это стало уроком). В конце концов я понял, что хотя этот аргумент (как отмечалось выше) широко распространён и часто повторяется, он неверный. Посмотрим ещё раз на тот пример. Серьёзно, любой, кто думает, что заставлять людей набрать такое…
\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
Hello world!
\end{document}
…вместо этого…
Декартово замкнутые траектории и стоимость яиц
Джейн Доу
Сентбярь 1994

Hello world!
…означает «позволить авторам преуспеть в написании документов», обладает (в лучшем случае) слегка нетрадиционным пониманием слов «позволить» или «написание», или, возможно, «преуспеть». Неужели кто-то из пользователей LaTeX действительно верит, что это истинная причина его использования LaTeX? Возможно, здесь можно провести параллели с тем, что Мэтт Хиллз называет «дискурсивными мантрами» у фанатов культовых сериалов, таких как «Доктор Кто». Эти мантры — стандартные аргументы, которые выдвигаются фанатами снова и снова — согласно анализу Хиллза представляют собой «защитные механизмы, созданные для придания фанатской эмоциональной связи некоего рационального смысла, то есть для… узаконивания любви фанатов к „своей” программе». Попробуйте перечитать это, заменив «фанаты» на «преданных пользователей», а «сериалы» на «компьютерные программы». И это ещё не всё. «Преданные пользователи» используют этот аргумент для убеждения новых поколений авторов научных статей — особенно студентов — осваивать LaTeX.

Так что давайте более внимательно разберём полный аргумент LaTeX Project, процитированный выше:

  1. Для набора такого текста в большинстве систем вёрстки или текстовых процессорах автору нужно разметить текст, например, выбрать шрифт Times Roman величиной 18 пунктов для заголовка, шрифт Times Italic 12 пунктов для имени и так далее.
    В большинстве систем набора и вёрстки — да, бесспорно. В этом их смысл. Но большинство людей не используют на компьютере системы набора и вёрстки. Они используют текстовые редакторы, такие как Word, Writer или Pages. И у них есть установки по умолчанию, которые (в большинстве случаев) можно оставить для использования. Вот почему так много документов набрано шрифтом Times New Roman 12 пунктов (бывший шрифт по умолчанию в Word, мировом лидере на рынке текстовых редакторов) и шрифтом Calibri 12 пунктов (нынешний шрифт по умолчанию там же). Если хотите повозиться со шрифтами и полями в текстовом реакторе — пожалуйста. Но вас никто не заставляет. И определённо нет необходимости принимать осознанное решение о шрифтах перед тем, как начать писать. Поэтому совершенно ложным является утверждение, что «необходимо выбрать шрифт, его размер и прочее», чтобы создать в текстовом процессоре документ из примера. Достаточно просто набрать «Декартово замкнутые траектории и стоимость яиц» и так далее — что гораздо интуитивнее, чем набор \title{Декартово замкнутые траектории и стоимость яиц} (не говоря уже о \documentclass{article}), как должен сделать пользователь LaTeX. Конечно, набор слов «Декартово замкнутые траектории и стоимость яиц» не даст такой же красиво оформленный заголовок, как \title{Декартово замкнутые траектории и стоимость яиц} (когда сработает магия LaTeX) — но решить эту проблему можно так же эффективно, как она решается в LaTeX, и гораздо менее навязчивым способом (об этом мы вскоре поговорим).
  2. Это приводит к двум результатам: авторы тратят время на оформление...
    У авторов есть много способов увильнуть от написания текста, в том числе через возню с оформлением. Нет причин предполагать, что авторы будут меньше уклоняться от работы, если перестанут использовать текстовые процессоры. Они могут уклониться, совершенствуя свои настройки LaTeX. Я знаю много академических авторов, которые тратят на это немалое время. Я не говорю, что это хуже, но разве это лучше на самом деле? Пока не существует эмпирических доказательств, что авторы в LaTeX меньше отвлекаются от работы, чем другие авторы, вышеприведённая цитата остаётся безосновательным утверждением, которое предполагается принять на веру.
  3. …и появляется много плохо оформленных документов!
    Ну, может быть. Но существуют другие способы решить проблему. Например, во всех трёх университетах, где я преподавал, были формальные спецификации для оформления студенческих работ — формальные спецификации, которые близки к настройкам по умолчанию в популярных текстовых редакторах. Если речь идёт о том, чтобы не разрешить студентам набирать документы фиолетовым шрифтом Comic Sans в 28 пунктов, то обучать их всех использовать LaTeX — гораздо менее эффективный способ, чем просто заявить, что вы не принимаете работы, которые не соответствуют установленному стилю оформления. (Также может помочь обучение их правильному использованию текстовых редакторов).
  4. LaTeX основан на идее, что оформление документа лучше оставить дизайнерам, а авторы пусть сконцентрируются на написании текста.
    Задумайтесь об этом на секунду. Если вопрос в том, как авторам преуспеть в написании документов, то разве ответом действительно будет LaTeX? Да, LaTeX в этом отношении лучше, чем TeX. Но если бы их обоих не существовало, вы бы действительно сейчас, в 2016 году, предложили использовать язык разметки?

Аргумент MIT Research Science Institute немногим лучше. Если внимательно посмотреть на три сравнения, то на самом деле в них противопоставляются не LaTeX и текстовые процессоры, а эффективное использование LaTeX и наивное злоупотребление текстовыми процессорами: все три примера, которые, по мнению сотрудника Research Science Institute, великолепно выполняются в LaTeX, на самом деле так же идеально можно подготовить в текстовом редакторе. Мы подробнее рассмотрим их в следующей главе. Сейчас достаточно наблюдения, что людям, которые неумело пользуются определённым инструментом, говорят изучить совершенно другой инструмент на том основании, что это позволит им хорошо делать вещи, которые они могли так же хорошо сделать и с помощью старого инструмента — что (если подумать) представляет собой довольно необычную методику, если вы действительно хотите помочь людям в написании текстов, а не (боже упаси!) просто пропагандируете принятый в сообществе способ написания текстов. Что действительно важно — так это обучить студентов важности написания структурированного текста и использованию функций того инструмента, который они используют, для облегчения работы. А вместо этого мы наблюдаем евангелизм LaTeX с ложным выводом, что текстовые процессоры вообще не поддерживают структурированный текст. Если кто-то размечает заголовки разделов в текстовом редакторе, выбирая жирный шрифт или увеличивая размер шрифта, то он неправильно использует функции текстового редактора. Человеку следует показать режим структуры документа в Microsoft Word и Навигатор в LibreOffice Writer, научить автоматически генерировать содержание, что оба редактора делают одним нажатием кнопки. Сравнение хорошего использования LaTeX с плохим использованием текстовых редакторов несправедливо. Максимум, что можно сказать — это что знакомить с LaTeX вас с большей вероятностью будет человек, который действительно хорошо в нём разбирается, а вот знакомство с текстовыми редакторами с большей вероятностью будет поверхностным под неформальным инструктажем человека, который не очень хорошо в них разбирается. Поэтому число пользователей LaTeX, которые не используют функции структуризации документа, близко к нулю, а среди пользователей текстовых процессоров таких огромное количество.

В итоге, аргумент в пользу использования LaTeX при написании текстов более чем слабый. TeX решил изначальную проблему для учёных и математиков, но усложнял написание сопровождающих текстов рядом с математическими формулами; LaTeX частично смягчил эту проблему в те времена, когда существовало мало других надёжных систем набора и вёрстки и никакие из них не были предназначены для академического использования. Создателем TeX был, пожалуй, самый великий человек в компьютерных науках со времён фон Неймана. TeX и LaTeX стали реальными, работающими примерами свободного программного обеспечения как раз в то время, когда движение за свободное ПО начало набирать силу и появились евангелисты; всё началось с этого. Это хорошие причины для принятия в академических кругах TeX и LaTeX в конце 1980-х. Но никакая из этих причин не имеет ничего общего с предположением, что LaTeX подходит для написания текстов — и тот факт, что большинство людей не умеют правильно использовать текстовые редакторы, тоже не имеет ничего общего с предположением о превосходстве LaTeX.

5. Аргумент против написания текстов в LaTeX


Если вкратце, то документы LaTeX очень сложно читать до вёрстки, что делает неэффективным как написание текстов, так и редактирование. Это тезис, который должен быть понятен программистам: если важна читаемость кода, то не менее важна и читаемость текста. Документы LaTeX могут превращаться в в прекрасные читаемые PDF после набора и вёрстки, но метод их редактирования, мягко говоря, не оптимальный.

LaTeX, как уже отмечалось — это язык разметки. Разметка состоит из текста, перемежаемого кодом. Код встревает в содержание документа. Чтение размеченного текста требует интерпретации или фильтрации разметки, чтобы восстановить в своей голове изначальный текст. Это не является преимуществом при написании или редактировании прозы. Я покажу, что имею в виду.

Вот скриншот некоторого текста, размеченного в LaTeX. Текст взят с небольшой адаптацией из статьи, которую я опубликовал в июне. На скриншоте я редактирую этот текст в версии Emacs, которая поставляется с OS X, это мой привычный текстовый редактор на «маке»:


Редактирование LaTeX в Emacs 22 (с преднамеренной ошибкой)

Как можно заметить (нажмите на картинку для просмотра полноразмерной версии), заголовок внутри фигурных скобок определён как содержащий заголовок (\title{The IF community}), в то время как название раздела внутри пары фигурных скобок определено как содержащее название раздела (\section{A past that it could not transcend}). Это суть разметки. С чем она хорошо справляется — так это с однозначным определением заголовков разделов как таковых, что будет полезно на последующих этапах (например, когда потребуется применить конкретный стиль ко всем заголовкам разделов). Но использование для этого именно разметки (в отличие от альтернативных способов) разрушает восприятие текста человеком (включая редактора и самого автора): глядя на скриншот, мы видим текст, перемешанный с большим количеством служебных символов, которые не являются частью этого текста, и мы должны определить, какие слова и знаки пунктуации увидит конечный читатель. Это мешает понять, действительно ли мы используем правильные слова и знаки пунктуации. Неважно, насколько вы привыкли к этому языку разметки, он представляет собой ненужное когнитивное обременение. Эта специфическая проблема относится к разметке BibLaTeX для автоматической генерации цитат и библиографии, потому что разметка вообще не похожа на текст, который она сгенерирует в итоговом документе.

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

Далее скриншот того же текста в редакторе LibreOffice Writer. Там присутствует та же самая опечатка, но на этот раз её гораздо легче заметить (нужно добавить, что проверка правописания её не заметила; и опять нажмите на картинку для увеличения):


Редактирование текста в LibreOffice Writer (с преднамеренной ошибкой)

Спойлер: опечатка в слове “devotes” (for “devotees”). Может быть, вы заметили её здесь, может и нет, может вы заметили её в разметке — но я думаю, вы согласитесь, что рассматривать документ с визуальной вёрсткой и шрифтом Sans было проще. Должен заметить, что цитаты и библиография сгенерированы автоматически (с помощью Zotero), но именно в таком виде, в каком они появятся в финальном документе (легко читаемом виде): там, где в варианте LaTeX используются \parencite[see][]{bennett_2002} и \printbibliography, в версии LibreOffice указано “(see Bennett 2002)” и реальная библиография.

Также хочу обратить внимание, что заголовки статьи и раздела указаны так же однозначно, как и в документе LaTeX. Когда я делал скриншот, курсор находился в заголовке статьи, хотя его не видно на скриншоте. Если посмотреть в левый верхний угол экрана (прямо под кнопками Zotero), вы увидите слово “Title” в выпадающем меню. Используя это выпадающее меню я указываю LibreOffice, что строка, где находится курсор, содержит заголовок статьи, и точно так же я указал, что строка “A past that it could not transcend” является заголовком раздела первого уровня (“Heading 1”, эквивалент тега HTML H1). Как и LaTeX, LibreOffice делает вывод, что текст за заголовком, который не помечен каким-либо стилем, — это основной текст, который принадлежит этому заголовку (хотя вы можете и явно указать, что это основной текст через то же выпадающее меню, упомянутое выше). Переместите курсор из одной строчки в другую — и значение в выпадающем меню само изменится в соответствии с тем, какой стиль выбран для текущего абзаца. Если хотите изменить стиль заголовков или основного текста по всему документу, то редактируете свойства стиля — а текстовый процессор применяет изменения ко всему документу. Также можно сохранять стили как шаблоны, а затем загружать их в любой документ на своё усмотрение, изменяя его внешний вид в соответствии с шаблоном. И конечно вы можете обмениваться шаблонами с другими пользователями, так что у всех документы будут оформлены в одном стиле.

Так что вопреки заявлениям LaTeX Project, мне не «приходится выбирать, какой шаблон использовать». Я не выбираю ни шрифт, ни его размер, ни стиль. LibreOffice сам делает это, поскольку он знает, как оформлять заголовки, подзаголовки и прочее. И вопреки заявлениям сотрудника MIT Research Science Institute, мне не приходится «тратить драгоценное время в муках, какой размер шрифта выбрать для заголовков разделов» — я просто указываю, что определённые фрагменты текста являются заголовками разделов, а LibreOffice подбирает размер шрифта. И в чём бы сотрудник Research Science Institute не пытался убедить студентов, «изменение форматирования [не означает], что вам придётся изменять отдельно оформление каждого фрагмента» — как вы можете «переопределить соответствующие команды» в LaTeX, так же вы можете переопределить соответствующие стили в LibreOffice (хотя на этом скриншоте я сохранил стили по умолчанию, как обычно делаю). Более того вы не «должны аккуратно следовать предложенным шаблонам», потому что вы можете менять шаблоны LibreOffice так же легко, как и в LaTeX. Всё это поддерживается и в Word. На самом деле сейчас хорошо снова взглянуть на вышеприведённые сравнения текстовых процессоров с LaTeX, потому что теперь понятно, что все они лживые: по сути, это пропаганда LaTeX.

Но вернёмся к процессу редактирования. Ладно, есть не такой вырвиглазный способ вычитывания документов LaTeX, как прочёсывание документа с разметкой. Можно сверстать итоговый документ, открыть и прочитать итоговый PDF, найти все необходимые места для правок и соответствующим образом отредактировать размеченный файл, заново его сверстать, снова вычитать и повторить процесс.

Если вы программист, то для вас может быть понятной аналогия с циклом кодирования-компиляции-отладки. Но не так большинство людей хочет писать тексты. Большинству из нас удобнее видеть на экране лист бумаги со словами и знаками пунктуации, которые в точности так и будут выглядеть в итоговом документе, а не смотреть на команды разметки вроде \parencite[see][]{bennett_2002}. Неважно, начинается шаблонный код с команд вроде \documentclass{article} или \begin{document} в начале документа. Просто наткнувшись посреди абзаца на нечто вроде \parencite[706]{lena_peterson_2008} нужно в уме преобразовать это в “(Lena and Peterson 2008, p. 706)”, и такая остановка прерывает ваш поток мыслей и затрудняет то, что вы в реальности должны делать: читать самому себе слова со знаками препинания и проверять, что они «звучат» как нужно и там нет ошибок.

Возможность редактировать документ, на который вы смотрите (в отличие от просмотра того, что на самом деле является исходным кодом документа), следует принимать как должное. Очевидно, для написания свободной прозы без ошибок лучше редактировать документ, в котором есть ‘…’ на месте многоточия, а не команды \ldots в соответствующих местах.

6. Так для чего подходит LaTeX?


Главными пользователями LaTeX являются учёные. Есть даже некоторые исследователи в области гуманитарных наук, которые тоже используют LaTeX (или какой-то его вариант). Эти люди используют LaTeX не потому что так делают все, наоборот, они идут против толпы. В результате они, вероятно, больше задумываются о реальных преимуществах LaTeX — а не о тех воображаемых преимуществах, перечисленных выше, о которых вещают евангелисты LaTeX.

Насколько я могу сказать, они выбирают LaTeX по причине, которая противположна стереотипному мнению, что нужно концентрироваться на содержимом, а не оформлении. Например, один из пользователь так объясняет свой выбор: «Компьютер должен позволить обычному пользователю создавать элегантно свёрстанную страницу, но в Word этого очень сложно достичь». Это переворачивает с ног на голову вышеуказанные аргументы в пользу написания текстов в LaTeX: такие авторы используют LaTeX (или его варианты), потому что они не верят в то, что «лучше оставить оформление документа дизайнерам»: на самом деле они используют его именно потому что хотят сами стать дизайнерами (в свою очередь, причиной этого является то, что они «беспокоятся… о внешнем виде документов»).

Вот для чего хорош LaTeX: не помогать людям писать тексты, а помогать красиво оформить их. Если для вас важно, то идите и посмотрите на него.

7. LaTeX: инструмент для набора и вёрстки, а не для написания текстов


Как автор я хочу «преуспеть в написании документов», но иногда у меня есть причины поиграть в дизайнера, и в этих случаях я хочу подумать об оформлении.

LaTeX предоставляет один набор функций для таких ситуаций. Настольные издательские пакеты вроде InDesign предоставляют другой набор. На самом деле там даже более богатый набор. Возможно, многие из этих функций не нужны, если речь об обычных научных типах документов, таких как раздаточные материалы для конференций и лекций. Забудьте всю эту чушь, что LaTeX чем-то лучше текстового процессора в написании текстов: это не так. Но он лучше для набора и вёрстки. И он не требует такого внимательного эстетического выбора и опыта дизайна, как настольный издательский пакет, так что в этом смысле LaTeX может сэкономить вам время (и он не даёт так много возможностей облажаться), при условии, что верстаемый документ принадлежит к типу документов, которые люди обычно верстают в LaTeX. Преимущества LaTeX для академического использования состоят в том, что он производит разумно свёрстанные документы, которые хорошо выглядят именно в таком виде, в каком представители научных кругов обычно любят публиковать документы. За пределами этой комфортной зоны у него немного вариантов использования: TeX подходит практически для всего, но макросы, расширяющие TeX в LaTeX, в основном созданы чисто для научного использования. Например, я не запускал его для вёрстки публичного доклада от проекта Valuing Electronic Music, потому что это публичный доклад и я не хотел, чтобы он выглядел как научная статья.

Вот документы PDF, сгенерированные из файла LaTeX (слева) и с помощью функции «Экспортировать как PDF» в редакторе LibreOffice (справа). В обоих случаях я не менял никакие настройки по умолчанию (кроме активации умных цитат в LibreOffice). Версия LaTeX автоматически содержит дату, номера разделов и номера страниц, поскольку это стандартное форматирование документов LaTeX; вы легко можете продублировать эти функции в большинстве текстовых редакторов, но по умолчанию они не включены, так что я решил здесь их тоже не включать.


Думаю, вы согласитесь, что свёрстанная в LaTeX версия выглядит лучше, чем полученная экспортом из текстового процессора. Достаточно ли значительны эти изменения, чтобы оправдать дополнительные усилия при подготовке документа — решать вам.

8. Если мы не пишем в LaTeX, как нам использовать преимущества вёрстки в TeX?


Очевидным решением было бы писать документ в другом формате, а после окончания пройтись по нему и добавить разметку. Например, так я сделал LaTeX-версию параграфа, показанного выше: опубликованная статья не писалась в LaTeX, но я подумал, что следует стилизовать его под LaTeX для задач этого эссе. Но языки разметки лучше подходят для машин, чем для людей, и в наше время вы можете сэкономить время, если отдать разметку LaTeX на откуп компьютеру. Так что одно то, что документ должен быть свёрстан в LaTeX, не означает, что вам нужно писать его в этой программе.

Вот варианты для автоматической разметки текста:

  1. Писать в AbiWord, Scrivener, Emacs Org-mode или Texts. AbiWord (доступен под Windows и Linux), Scrivener (доступен под Windows и Mac) и Org-mode (доступен везде, где вы можете запустить Emacs) экспортируют вашу работу в файл LaTeX; Org-mode и Texts (доступен под Windows и Mac) могут дополнительно сверстать его в LaTeX, если у вас установлен пакет LaTeX. С помощью AbiWord можно также открыть файл, написанный в другом текстовом процессоре, а затем экспортировать его в LaTeX. Я давно не использовал AbiWord и ещё не протестировал Texts, но могу поручиться за Org-mode. Обратите внимание, что версия Org-mode, которая идёт с Emacs в комплекте с Mac OS X такого не делает: вам понадобится более новая версия.
  2. Писать в Word или LibreOffice, затем с помощью Pandoc конвертировать результат в файлы LaTeX [1]
  3. Писать в Markdown вообще в любом текстовом редакторе и с помощью Pandoc конвертировать файлы Markdown в файлы LaTeX (да, Markdown — это язык разметки, но он изначально разработан как простой и читаемый человеком язык; также обратите внимание, что хотя Texts является текстовым процессором, он всё сохраняет в Markdown). Также: расширение citeproc для Pandoc даёт Markdown более интуитивный синтаксис разметки цитат, чем у BibLaTeX, и поскольку knitr работает с Markdown, этот вариант позволяет вам автоматически внедрять сгенерированные таблицы и прочее, если вы используете R. Может быть, стоит почитать детальное руководство Кирана Хили к этому общему подходу.

Не все перечисленные варианты равноценны, и все они предусматривают, что вы корректно структурировали текст, и по-прежнему не помешает некоторое знание LaTeX (особенно если вы хотите сделать нечто вроде внедрения математических формул). Но факт в том, что эти варианты существуют, потому что написание текстов в LaTeX — не то, для чего создавалась эта программа. LaTeX был изобретён, чтобы никому не пришлось писать прозу в TeX, который слишком сложен для простых смертных. Вышеперечисленные варианты придуманы, чтобы никому не пришлось писать прозу в LaTeX, который не так сложен для простых смертных, но всё равно писать в нём — плохая идея.

9. Вёрстка собственной книги


Вы можете рассмотреть LaTeX как вариант самостоятельной вёрстки книги для издательства. Академические издатели ожидают подобного от учёных и также могут примириться с таким вариантом от исследователей в сфере гуманитарных наук. Это то, для чего Кнут изначально изобрёл TeX. Но следует учесть три вещи, прежде чем убеждать своего издателя позволить вам самому верстать свою книгу:

  1. Там уже есть человек, который занимается этой работой.
  2. Если вам так хочется сделать чужую работу, может, вам понравится также собрать физические копии, распечатанные на принтере, отвезти их на склад издателя (эй, они даже могут разрешить вам самому управлять погрузчиком!), провести маркетинговая кампанию со своего телефона и доставить копии покупателям и ритейлерам на своей машине. Погодите — зачем останавливаться на этом? Почему не настоять на личном управлении печатным прессом и машиной для переплёта? На самом деле, почему бы не купить механический ручной пресс, тогда можно напечатать и сделать переплёт дома, как Вирджиния и Леонард Вулфы?
  3. Даже если вы сверстаете свою книгу и вам нет дела до всего остального, теория сравнительных преимуществ Рикардо по-прежнему утверждает, что вы впустую тратите время.

Всё ещё не отказались от плана? Ладно, может быть, вёрстка собственной книги даёт вам личное удовлетворение, или типографика книги должна иметь определённый уникальный вид, который никто кроме вас не способен обеспечить. Хорошо; это в любом случае никому не причинит вреда. (Если бы такая практика распространилась не только на научные монографии и стала стандартной, тогда другое дело. Все дизайнеры книг остались бы без работы, а большинство книг или выглядели бы ужасно или были бы похожи друг на друга. Ничего хорошего).

10. Небольшое предупреждение о бесконечном неудобстве всего, что связано с LaTeX


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

У свободного и бесплатного программного обеспечения есть большая склонность к трудностям в установке и работе. TeX и LaTeX не исключение. Кроме того, если вы решитесь на действительно дикий и сумасшедший поступок — вроде замены шрифта на что-нибудь иное, кроме Computer Modern — то простые базовые TeX и LaTeX не позволят вам это сделать. (Вам действительно захочется использовать другие шрифты, кроме Computer Modern. Это не какой-то универсальный шрифт на все случаи жизни. Это просто цифровая версия шрифта, который по случайности использовался в первой редакции книги, для которой ко второй редакции Кнут создал TeX для вёрстки, и он действительно не подходит для некоторых вариантов использования, которые мне приходилось встречать, особенно для презентаций со слайдами). И всё кроме чистого TeX и LaTeX действительно очень, очень сложно установить. Настолько сложно, что большинство людей не справляются с установкой отдельных пакетов, а вместо этого устанавливают целиком нечто под названием TeX Live. Пакет Tex Live содержит практически всё, что может когда-нибудь понадобиться пользователю TeX или LaTeX, в одном удобном дистрибутиве. Единый удобный дистрибутив после установки занимает более двух гигабайт на диске: если быть точным, 2,4 гигабайта в версии для Mac — MacTeX. Для сравнения, LibreOffice требует примерно полтора гигабайта на диске под Windows или Linux и менее одного гигабайта на Mac. И в состав LibreOffice входят текстовый процессор, электронные таблицы, программа для презентаций, пакет для рисования, база данных, всё в одном. LaTeX — это просто программа для набора и вёрстки. Это безумие — особенно если у вас работает старое или дешёвое железо. И даже если вы решите отяготить свой винчестер установкой TeX Live, придётся приложить ещё немало усилий, чтобы заставить всё работать, и почти никакой вопрос там не объясняется ясно и чётко. Иногда возникает впечатление, что установка и настройка LaTeX превратилась в некий испытательный ритуал, участники которого дали обет страдать в одиночестве.

Вот абсолютно типичный вопль отчаяния какого-то пользователя, который пытается заставить LaTeX нормально работать с BibLaTeX и Biber (две программы из комплекта TeX Live, которые дополняют LaTeX в качестве альтернативы BibTeX, тоже включенной в комплект TeX Live, или для работы BibLaTeX вместе с BibTeX — уже запутались? Это только начало!):

«У меня выскакивают ошибки «Неопределённые ссылки» (There were undefined references) и [я] уже два дня не могу их исправить. Я попытался перейти с редактора Sublime Text 3 на TeXStudio на «маке», потом попробовал оба на PC. Готов попробовать что угодно в данный момент…

Я прочитал о хитрости при компиляции, но не уверен, как это сделать в SublimeText или TexStudio… Я столкнулся со многими проблемами и предпринял много обходных манёвров, которые привели к другим проблемам. Я в растерянности. Может кто-нибудь дать пару советов или ключевых слов, чтобы я поискал решение этих проблем, или полное решение? Не могу запустить даже минимальную рабочую конфигурацию. Готов установить что угодно.
Каждый раз, когда какой-нибудь новичок пытается запустить LaTeX, человек обрекает себя на несколько часов или несколько дней подобных проблем — плюс на всю жизнь возни с причудами TeX и LaTeX, даже если (как этот пользователь) человек использует относительно «дружественные» графические приложения вроде TeXstudio, а не пытаетесь совладать с Emacs или vi и командной строкой. Этот пользователь дошёл до такого отчаяния, что не только поменял программы-редакторы LaTeX, но поменял компьютеры в надежде, что всё заработает. А теперь ответ. Принятый в качестве подходящего ответ тщательно очерчивает решение, а затем объясняет причину проблемы следующим образом:

Существует возможность установить TeXstudio альтернативными способами для достижения такого же эффекта. Суть в том, что вам следует убедиться, что программы идут в следующей последовательности:

  • LaTeX
  • Biber
  • LaTeX

Это делается или вручную (как я это делаю), или можно автоматизировать разными способами. Обратите внимание, что та же основная идея действует с любым редактором: это особенность LaTeX, а не редактора.
Мда, насколько глупым был пользователь, который не догадался, что единственный способ заставить LaTeX правильно работать с Biber — это запустить его дважды, один раз до, а второй раз после! А теперь оцените отзыв на этот (необычно ясный) ответ с решением проблемы: «Подробности вашего ответа будут очень полезны для других неофитов вроде меня. Другие ответы предполагают высокий уровень компьютерной/LaTeX-грамотности, какой не у всех есть».

Это типичная история. Пойдёте по пути LaTeX — и рано или поздно придётся рвать на себе волосы. Вас предупреждали.

Примечания


1. Преобразование файла .odt со сгенерированной в Zotero библиографией в LaTeX при помощи Pandoc слегка сложнее, чем кажется. По моему опыту, лучше всего открыть файл .odt в LibreOffice и сохранить его как .docx (что превращает все ссылки Zotero и библиографию в обычный текст), затем с помощью Pandoc сначала конвертировать файл .docx в файл Markdown, а потом конвертировать файл Markdown в файл LaTeX.
Теги:
Хабы:
Всего голосов 55: ↑33 и ↓22+11
Комментарии71

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань