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

Верстальная программа TeX: какие изменения сделаны в 2021 году

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров4.6K
Всего голосов 15: ↑13 и ↓2+15
Комментарии62

Комментарии 62

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

Смотря по задачам. Есть задачи для одного и есть задачи для другого.


В ворде трудно сделать газету, а в латехе легко.


В ворде трудно сделать большую и сложную книгу, а в латехе легко.


В ворде трудно сделать библиографию, а в латехе легко.

я так и не смог сделать в техе двойную библиографию. Пришлось список печатать отдельным документом

\usepackage{bibunits}


Приятного аппетита!

А давайте уточнять, что вы понимаете под "сделать большую и сложную книгу". Потому что вы точно подразумеваете "подготовить книгу к печати" и в 99% случаях книга будет академическая. И вообще это задача технического работника - подготовить книгу к печати. Но вот автор non-fiction свою большую книгу будет опять же в 99% случаев писать в чем-то типа Scrivener на маке.

Первый признак. Большая и сложная книга не является свитком, не является одним последовательным потоком текста.


Второй признак. Большая и сложная книга будет прочтена не один и даже не два раза.


Третий признак. Большая и сложная книга не нужна целиком. Разным её читателям нужны разные части этой книги.


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

Изходя из пунктов 1 и 3 - "большая сложная книга" не должна быть книгой на бумажном носителе, а должна представлять собой гипертекст, возможно ещё и со встроенным поиском.

Исходя из этого - точно ли такие книги нужно верстать для и печатать на бумаге? А если они верстаются и печатаются - не является ли такое действие борьбой против их потребителей?

точно ли такие книги нужно верстать для и печатать на бумаге

Вы совершенно правы. Однако пока ещё никто не знает, какими должны стать такие книги. Поэтому живём в силу традиции.

Исходя из этого - точно ли такие книги нужно верстать для и печатать на бумаге? А если они верстаются и печатаются - не является ли такое действие борьбой против их потребителей?

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

В ворде трудно сделать большую и сложную книгу, а в латехе легко.

Тоже так думал. Но как-то начал в LibreOffice набирать большой текст с главами, потом затеялось что-что со сносками, изображениями, библиографией (прямое цитирование источников из БД из Base), списками использованных картинок, таблиц, с полями (переменные!) и разноуровневыми ToC и полноценным аппендиксом — всë, как в лучших домах с LaTeX.

Зауважал после этого LO.

Да ничего оно не легко. Шаг влево-шаг вправо, совершенно неожиданные проблемы. Например, верстал я себе таблицу и горя не знал, пока таблица не перевалила за размер страницы. И вот внезапно оказалось, что нельзя! Почему? А вот потому, подключай другой пакет типа "длинные таблицы" и переходи на него. Или, скажем, листинги. Может, сейчас есть лучшее решение, но на моей памяти приходилось вручную ставить табы с помощю знака ">". А ещё выбешивали длинные строки, которые система не хотела разбивать на кусочки (ну по какой-то причине не работал перенос или ещё что). Само по себе это не трагедия, но как узнать? Компилируй документ, крути до того места, где был в прошлый раз такой инцидент, и смотри, изменилось чего или нет.

Это не к тому, что Word мечта поэта, но в TeXе тоже счастья не так много.

подключай другой пакет

Это обычная ситуация. Хотите опцию — подключаете пакет. Таково устройство программы.

длинные строки, которые система не хотела разбивать на кусочки (ну по какой-то причине не работал перенос или ещё что).

Перенос не работает, если не включён язык переноса или не задан (для необычайных случаев) ручной перенос. Значит, надо подключить язык переноса или задать ручной перенос.

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

Да, это обычная ситуация компилируемых документов. Похоже, что именно это вам не нравится, то есть именно TeX для вас не годится, то есть вам нравятся другие программы. Это тоже обычная ситуация. :-)

Это обычная ситуация. Хотите опцию — подключаете пакет. Таково устройство программы.

Какую "опцию"? Я просто делаю таблицу. Что такого особенного в таблице, которая случайным образом разрослась за пределы страницы -- это что-то неслыханное, почему тут "нужен другой пакет", что изменилось-то? Более того, если в процессе работы у меня изменятся размеры страницы, может оказаться, что половина таблиц больше не отображается, и надо каким-то образом переезжать на другой пакет.

 Значит, надо подключить язык переноса или задать ручной перенос.

Дело не в том, что он "не работает". Он может не работать так, как мне нравится/нужно/подставить третье. И об этом нельзя никак заранее узнать, недаром же в ТеХе можно вручную задавать разбиение строки по кусочкам. Соответственно, вы запускаете, потом ищете это место, редактируете заново и так далее.

Да, это обычная ситуация компилируемых документов. Похоже, что именно это вам не нравится, 

Думаю, надо всё-таки понимать, что понятие "компилируемый документ" не тождественно понятию, скажем, "компилируемый язык программирования". Язык программирования работает по чётко установленным правилам, и ошибка компиляции -- это именно моя ошибка, я нарушил правила, и надо починить. Ошибка при рантайме -- это ошибка моей логики, язык тоже не при чём.

Здесь же мы имеем непрозрачную систему, которая по своим собственным эвристикам располагает плавающие боксы с рисунками, форматирует абзацы, переносит строки и т.п. У меня нет никакого разумного способа предположить, как будет выглядеть итоговый документ. Соответственно, вот этот дурной цикл проб и ошибок является органической частью работы с Техом, и это надо чётко осознавать. Трудно представить, что кому-то эта деятельность может доставлять удовольствие -- типа, тыкаем палкой на входе и смотрим, что получилось на выходе.

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

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

Он может не работать так, как мне нравится/нужно/подставить третье. И об этом нельзя никак заранее узнать.

Этим страдают все программы. Не запустив их, нельзя узнать, как они работают.

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

Всё правильно. Ошибка компиляции документа — это именно ошибка редактора, который нарушил правила работы с программой.

Здесь же мы имеем непрозрачную систему, которая по своим собственным эвристикам располагает плавающие боксы с рисунками,

Только так, как задано в оформлении этих боксов.

У меня нет никакого разумного способа предположить, как будет выглядеть итоговый документ.

И это тоже общее свойство всех текстовых программ. Пока вы не набрали абзац и не прогнали его через программу, вы не можете предсказать, как программа разобьёт его на строки.

Люди делятся на две группы. Людям из первой группы неприятно читать большие таблицы.

Нет, вот давайте докрутим эту мысль. Не будем обсуждать людей и психологию. Есть концепт таблицы. Таблица может быть из трёх строк, из тридцати или из трёхсот. Это всё один и тот же концепт. Есть концепт страницы. Страница может быть большая или маленькая. Если так сошлись звёзды, что таблица вылезла за страницу, почему мне надо отключать стандартный пакет и подключать какой-то другой, в чём тут логика? Для меня это выглядит так же, как, допустим, идея, что рисунок в четверть страницы шириной поддерживается одним пакетом, в половину страницы другим, а свыше половины -- третьим. Это негодное техническое решение, и никакой философии за ним нет.

И это тоже общее свойство всех текстовых программ. Пока вы не набрали абзац и не прогнали его через программу, вы не можете предсказать, как программа разобьёт его на строки.

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

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

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

Есть концепт таблицы. Таблица может быть из трёх строк, из тридцати или из трёхсот. Это всё один и тот же концепт.

И тут он начинает распадаться у нас на глазах.

Сначала таблица состояла из ячеек, но внезапно появляется объединение нескольких ячеек. Причём не только по горизонтали, но и по вертикали.

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

Сначала таблица была из текста, но внезапно оказалось, что в таблице должны быть сноски.

Всё это совершенно не сочетается с концептом таблицы как ячеек с текстом.

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

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

Например, вы говорите про вылезающие строки. Как это сформулировано? На первый взгляд, так: чтобы строки были разложены по строчкам абзаца. Но мы совсем забыли, что строки должны быть разложены так, чтобы ни одна строка не была разреженной, и чтобы последняя строка была длинной. Хорошо, вот теперь помним это. Однако строки перестали умещаться в ширину абзаца.

Как видите, это действительно норма жизни, и чтобы её исправить — надо либо менять условие (менять разреженность слов), либо переписывать текст.

если я форматирую текст сам руками, это моя работа, ок. Для этого существует WYSIWYG интерфейс,

Этот тезис, к сожалению, ошибочный. Давайте разберём его чуть внимательнее.

Чтобы форматировать текст своими руками, пишете вы, есть визивиг интерфейс. Однако этот интерфейс не поддерживается ресурсами компьютера, просто не хватает памяти для работы с визивиг интерфейсом. Следовательно, он существует не для форматирования текста, а для расходования памяти и процессорного времени.

Со своей стороны ТеХ позволяет получать превосходный результат с минимальным расходованием машинного ресурса.

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

Да, такой режим легко включается командой \sloppy. К сожалению, этот режим всегда запрещён в описании ограничений, где прямо говорится, что строки не должны быть разреженными, а ширина пробелов должна быть умеренной, небольшой, и широкие пробелы между словами запрещены.

То есть проблема не в программе. Названные вами противоречия заложены в исходной задаче. Программа всего лишь подчёркивает, выказывает эти противоречия. А решать их должен человек.

Назову ещё один пример такого противоречия. С одной стороны, на странице должно быть ровно 40 строк, высота всех страниц должна быть одинаковой. С другой стороны, нельзя отрывать от абзаца последнюю строку, и поэтому абзац высотой в 41 строку невозможно напечатать. Точно так же нельзя и напечатать группу абзацев из 12, 18 и 11-ти строк, потому что в последнем абзаце одна строка не умещается на страницу, а переносить её на другую страницу запрещено в условии.

Ещё один пример противоречия. С одной стороны, заголовок должен умещаться в 1 или 2 строки. С другой стороны, если в заголовке 20 слов, он не уместится даже в две строки. Переносить часть заголовка на третью строку запрещено в условии.

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

мне в принципе приходится с лупой высматривать, что там на выходе.

Это называется работой технического редактора. В любой книге по типографскому делу сказано, что это необходимо, потому что типографские правила содержат в себе множество противоречий.

Например, в хорошей книге не должно быть никаких переносов, но при этом правая граница абзацев должна быть ровной. Выполнить это условие нельзя. Следовательно, должны быть какие-то переносы. Тогда учебник дополняет: можно один или два переноса на абзац. Это условие выполнить уже попроще, но только в случае, когда страница достаточно широкая. Для узкой страницы учебник добавляет: хотя и нельзя делать широкие пробелы между словами, но в узкой странице иногда можно, а когда — в каждом случае решает технический редактор, ориентируясь на облик полосы.

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

Ещё интереснее получается в случае, когда нужно включить рисунок в оборку, обойдя его текстом. Учебник строго говорит, что это отвратительное уродство и что так делать нельзя вообще никогда. Однако если это необходимо, тогда можно включить рисунок, прижав его к краю полосы. Но если таких рисунков больше одного, тогда нельзя прижимать их все к краю полосы, потому что получится отвратительное уродство. Следовательно, надо прижимать их к разным краям полосы — ко внешним, левым или правым. Но что если в этом месте находится не только рисунок, но и маргиналия? Тогда рисунок надо передвигать в другое место. А что если рисунок шире, чем половина ширины текста?

Как видите, здесь невозможно определить строгое правило, потому что его будут часто нарушать. Все эти задачи решает технический редактор.

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

И тут он начинает распадаться у нас на глазах.

Понимаете, если для вас таблица -- это просто прямоугольный набор ячеек, который умещается на странице, то наличие заголовков, сносок и т.п. нельзя назвать словом "концепт распадается". Это означает, что концепт изначально продуман из вон плохо. Если бы мы так изобретали автомобили, то удивлялись бы на каждом шагу: оказывается, там нужна дверь или тормоз.

Как видите, это действительно норма жизни, и чтобы её исправить — надо либо менять условие (менять разреженность слов), либо переписывать текст.

Совершенно согласен, иногда задача не имеет решения. И это же ошибка компиляции, да? (ну тут мем про "ведь ошибка, да ведь?")

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

Штука в том, что это высказывание из области "крокодила не существует". Эмпирически мы знаем, что если вставить строку любой длины в MS Word, например, она никогда не вылезет за край листа (если вы только специально не захотите сломать систему, поставив текстовое поле с границами за листом). То есть нерешаемая задача при желании так или иначе решается.

Это называется работой технического редактора. 

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

концепт изначально продуман из вон плохо

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

Совершенно согласен, иногда задача не имеет решения. И это же ошибка компиляции, да?

Это ошибка определения условий. Надо менять исходные условия.

Штука в том, что это высказывание из области «крокодила не существует». Эмпирически мы знаем, что если вставить строку любой длины в MS Word, например, она никогда не вылезет за край листа

НО КАКОЙ ЦЕНОЙ ЭТО ПОЛУЧЕНО!!! В ворде строка не вылезет, потому что в ворде разрешено любое, произвольное разреживание строки. Это не решение, а ложь и колдовство Моргота.

ТЕХ навязывает представления об идеальной вёрстке, а ворд не навязывает ничего, тем самым позволяя любые ошибки.

Мы как бы переходим во вкусовщину, но это и вправду вывернутая логика. Произвольное разреживание вёрстки -- это "ложь и колдовство", а представление о том, что строка может быть в четыре раза шире страницы -- как бы "ок", пусть принтер разбирается. Зато таблица, которая "box" не может быть шире страницы, потому что строка за пределами страницы не колдовство, а бокс -- ну всё, харам. Надо обладать очень изощрённым представлением о прекрасном, чтобы эту логику принять.

С пакетами проблема, разумеется, не в необходимости их подключения, директива типа "#include" меня не смущает. А именно в том, что у каждого автора такого пакета своя непостижимая логика. Один будет считать, что таблица может вылезать слева, другой -- справа, третий -- сверху, а пишущему в этой каше как-то жить. То есть это не "удивляющая логика" -- это "у каждого автора своя логика", покупайте хрустальный шар.

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

Произвольное разреживание вёрстки — это тяжелейшее нарушение типографской культурной традиции.

Если строка шире страницы, ТЕХ сообщит об ошибке в логе.

Честно говоря, таблица может быть и шире страницы, и длиннее страницы. Но вам-то нужно, чтобы таблица была на несколько страниц. Для этого написан специальный пакет, который прекрасно выполняет задачу.

Вы правы, у пакетов своя логика. Вместе с тем посмею сказать, что у индизайна вообще никакой логики нету, а в винворде вместо логики поместили визивиг.

И вы правы, ТЕХ дисциплинирует и заставляет делать лучше и лучше, требует внимательней относиться к облику документа, провоцирует стараться. В этом смысле он наследует традицию Яна Чихольда, Джамбаттисты Бодони и Альда Мануция.

Будем же лучшими, как ТЕХ!
почему мне надо отключать стандартный пакет и подключать какой-то другой, в чём тут логика?

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

Вас же не удивило, что в «стандарном пакете» нет русского языка и нет удобных для вас колонтитулов?

Разумеется, удивило! Ведь это средство набора документов, и в нём (та-да) нельзя набрать документ. Однако вы лукавите: возьмём любой мануал по Теху, напр., здесь, где читаем:

8.23 tabular
Synopsis:

\begin{tabular}[pos]{cols}
column 1 entry &column 2 entry ... &column n entry \
...
\end{tabular}
or

\begin{tabular*}{width}[pos]{cols}
column 1 entry &column 2 entry ... &column n entry \
...
\end{tabular*}
Produce a table, a box consisting of a sequence of horizontal rows. Each row consists of items that are aligned vertically in columns.

Всё, ровно это мне и надо: a box consisting of a sequence of horizontal rows. И однако ж начиная с какого-то количества rows всё это дело ломается. Где логика?

Обычно box (ящик) находится внутри страницы. Вам же нужен такой box, который находится снаружи страницы. Здесь противоречие. Ваше ожидание не совпадает с моделью документа, принятой в программе.


Если вас удивляет отсутствие русского в «стандарном пакете», то следующим шагом будет удивительный способ подключения шрифтов. Да, ТЕХ штука необычная, удивляющая. Здесь вы правы.

При всей моей любви к LaTeXу, работа с таблицами там действительно реализована максимально всрато. Какую бы теорию под это ни подгоняли.

Да даже набирать вручную html-тэги table/th/tr/td/rowspan/colspan для разметки таблицы и то было бы в разы проще, быстрее и интуитивно понятнее.

Но есть упрощающие и украшающие пакеты.

Ну я думаю, мы друг друга услышали, и незачем ходить по кругу, но всё же добавлю :) Трагедия в том, что Кнут, быть может, думал о "традициях Чихольда и Мануция", но система по факту даёт очень большую свободу авторам пакетов, шаблонов и расширений.

То есть следите за руками. В теории у нас есть система, позволяющая получить красивую вёрстку, и те её части, которые изначально в системе были (формулы, например), действительно выглядят хорошо. Однако исходных средств не хватает, и система позволяет создавать расширения.

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

На практике это также выливается в то, что совет типа "читайте лог, чтобы увидеть ошибки вёрстки" тоже слабо работает, так как пустой документ на основе чужого шаблона прямо с первой строки легко может выдать вам кучу warning-ов, потому что у автора шаблона не очень прямые руки, и ничего с этим сделать нельзя.

То есть система нужна, но по-хорошему её бы переосмыслить и написать какой-нибудь NewTex, но шансов на это немного.

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

Понятие удобства может быть разным. Удобство Ворда заключается в наличии нормального графического интерфейса. Работа же со сложными документами с ссылками и подобным - уже будет неудобно в нем.

Не подскажите программу с нормальным и удобным интерфейсом для редактирования TeX документов? Одной из наиболее нормальных программ, которыми я пользовался - это LyX.

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


Например, в Ворде интерфейс вообще недоступен, он полностью скрыт за визуальными кнопками и оконными меню. Глядя на документ, я не вижу, где один стиль переключается на другой. Не могу различить, где в документе расставлены заголовки, а где жирные крупные строки. Даже такие простые вещи, как оформление списка, упрятаны в глубине бесконечных окон. Когда мне нужно вставить символ, я вынужден искать его в таблицах Unicode и копировать из браузера. А если нужно изменить пропорции этого символа или наложить два-три символа один на другой, я прямо-таки теряюсь.


С другой стороны, очень удобным интерфейсом я считаю текстовое окно, где все символы одинаковой ширины, а команды и числа окрашены разными цветами. Очень удобно, если интерфейс сам показывает, какая открывающая скобка сочетается с закрывающей. Великолепно, если интерфейс позволяет различать A или А.


Итак, что такое удобный для вас интерфейс?

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

Да, согласен со всеми пунктами что вы назвали про Ворд и сложности с любым оформлением и изменением стиля вне того что уже вынесено на панель. Именно по этой причине и пишу диссертацию в Тех. К сожалению, не смотря на, как кем-то ниже сказано, подключаешь шаблон и не думаешь - думать нужно. Как минимум у меня остаются все те же проблемы форматирования формул с правильными отступами и подобное.

В данной ситуации хотел спросить какие, может быть, вам известны редакторы Тех с графическим интерфейсом для более простых документов, т.е. где вам не нужно "форматировать книгу". Самый простой пример - это сразу видеть написанную формулу без компиляции документа заново.

PS: В Ворде можно включить панель отображения использованных в тексте стилей.

Overleaf в режиме Visual editor - это как раз наиболее близкое из всего что я видел. Studio фактически только добавляет кнопки для быстрой вставки команд что не облегчает его использование обычному человеку.

У меня главная претензия к TeX-подобным языкам разметки — необходимость постоянного переключения раскладки для ввода этих тегов. Система просто не предназначена для удобной работы с кириллическими текстами.
Тот же Markdown например продуман так, что позволяет размечать текст оставаясь в пределах выбранной раскладки, а при работе с TeX руки от Alt+Shift не отлипают вообще.

Тот же Markdown например продуман так, что позволяет размечать текст оставаясь в пределах выбранной раскладки,

Это как это? Курсив, жирный и подчёркивание допустим универсальны и вообще во многих редакторах живут на отдельных комбинациях клавиш. А если заголовок / подзаголовок? Или код какой? № и ё не помогут. Формулы теховские из той же оперы.

Alt+Shift не отлипают вообще.

предлагаю перебиндить капс на смену раскладки. жить после такого становится заметно легче.

необходимость постоянного переключения раскладки для ввода этих тегов

Совет бывалого соискателя — используйте редакторы со встроенной поддержкой синтаксиса LaTeX, автодополнениями и клавиатурными макросами. И ещё попробуйте использовать нециклическое переключение раскладок. Это существенно ускоряет набор.

Система просто не предназначена для удобной работы с кириллическими текстами.

Ну почему же... Поддержка UTF там есть, шрифтов тоже.

Глядя на документ, я не вижу, где один стиль переключается на другой.

Помню эту студенческую боль, когда пишешь диплом, а он тебе автооглавление не делает, потому что у тебя где-то заголовок по стилю не совпал в подразделе.

Не, ну когда за тебя шаблон и нужные либы подключат, вообще кайф, пишешь текст и ни о чём не думаешь.

Встречайте.

Я в LaTeX делал свою докторскую диссертацию, от и до. А перед этим отцовскую докторскую верстал в MS Word. Разница по удобству и возможностям -- небо и земля, не в пользу ворда, при том что ворд я тоже хорошо знаю.

Я написал диплом за пару недель на LaTeX, который с первого раза прошел нормоконтроль.

Боюсь представить, сколько у меня ушло бы времени на это в word. И меня бросает в пот при мысли версионирования и сравнения изменений.

Главный минус, который я приметил на винде - довольно жирный (4Гб) дистрибутив TeX Live, часто рекомендуемый к установке. Но у него есть альтернатива - легковесный MiKTeX, и онлайновый Overleaf.

Привет, будем знакомы.

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

Для публикации статей в некоторых научных журналах вёрстка в TeX или LaTeX — необходимое условие.

В 90-х годах я сверстал при помощи LaTeX докторскую диссертацию по радиофизике для моей тещи. Это несколько сотен страниц со сложными формулами, некоторые из которых были на страницу или больше.

Сделать это при помощи Word было бы гораздо сложнее.

Хотя для работы с TeX, если и не быть программистом, нужно хотя бы обладать программистским мышлением.

Верстальная программа...

Дожили. Система верстки вообще-то. Но спасибо за хорошую новость про отличную программу.

Вопрос терминов. Я не понимаю, почему система вёрстки это не программа. Если вы расскажете подробнее, я исправлю статью. Спасибо!

TeX is a typesetting system

Вроде во всех российских переводах так. По крайней мере, в учебнике Львовского и в вики.

P. S. Еще нашел «издательская система».

Очень хорошо. Что ещё входит в эту систему, кроме сложной программы, состоящей из подпрограмм?

Вы прочли систему, сложенную из отдельных абзацев. Это была не статья, а дайджестная система.


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


Всё вокруг нас можно считать системой. Итак, вопрос сводится к терминам, поэтому все правы.

Возьму на вооружение сей метод версионирования)

Ну вы же сами перечислили список. Это багфиксы, нужные и полезные. Совсем не то что "давайте напихаем больше фичей" ?

Мой тезис в том что приложения которые фокусируются на стабильности (literature programming) конечно существуют, но являются редким исключением.

P. S. Рад видеть что за вами не заржавеет, респект ?

Чтобы напихать побольше фичей в программу for или в команду echo, придуманы batch файлы. Этаким путём можно до бесконечности развивать фичи, потому что уже непонятно, где граница программы.

Здесь исправлен не вполне естественный способ определения макросов. Впрочем, они все там не вполне естественные.

Хорошо сказано! В С23 фикс на эту тему не планируется? )

Несколько лет назад мне поручили написать руководство пользователя. Работа показалась скучной и что-бы избавиться от рутины решил попутно освоить LaTex и сверстать в нём руководство. Получилось очень даже не плохо. Удобно разбил документ на файлы - разделы. Использовал Git...

Закончилось тем, что руководство решил подправить мой коллега... Теперь мне не доверяют писать документацию.

А у меня было наоборот — коллега осознал силу LaTeX, подхватил мой документ с интересом.

Остальные коллеги — да, нифига не поняли, и почему pdf, есть же Confluence…

почему pdf, есть же Confluence

А и правда, чем же не хватало конфлюэнса?

Есть контент, который идеально втыкается в Confluence, а есть контент, для упорядочивания которого лучше pdf.

Использовал Git...

Вот этим мне в своё время и понравился TeX, что это просто текст. Работаешь привычно, как с кодом. Мы писали тонны документации, статей, отчётов, а средства совместного редактирования тогда были совсем не развиты. А с TeX сделали репу, отпочковал свою ветку, написал раздел, абзац и pull request. И тебя не волнует форматирование, нумерация рисунков, формулы, библиография - всё само замечательно "отрендерится".

В 98-м году освоил TeX/LaTeX для написания статей на конференции, ну и диплом магистерский заодно на нём же сверстал. Пришлось конечно потратить некоторое время для изучения, но оно окупилось многократно. Изумительнейшая вещь. Всё чётко, понятно, удобно. Скачал файлы формата с сайта конференции, применил к своему тексту - и вуаля, форматирование почти готово. Вносить коррективы - да за минуту: поправил исходный текст, обработал и получай результат. А уж какое качество на выходе!

А вот для одной конференции нужно было присылать статью в Word, с большим списком требований к оформлению. Я перематерился, пока готовую статью сделал – постоянно что-то куда-то норовило съехать. А уж формулы в Word набивать и потом корректировать мышкой – это было отдельное долгое мучение, по сравнению с простым и понятным способом в TeX))

LaTeX особенно хорош там, где работа с текстом ведётся совместно. Например, готовите вы сборник статей. В случае с Word/LO вам придётся во-первых перевалить на авторов каждой статьи обязанность форматирования их части документа в соответствии с единым для всех стандартом. При этом нет никакой гарантии, что они где-нибудь не схитрят или не забудут что-то отформатировать "так, как надо", отсюда следует "во-вторых" - форматирование документа придётся перепроверить и, возможно, переделать, при этом обязательно что-то да "слетит". Да, конечно, и в MS Word, и в LOW есть такая удобная штука, как стили - при правильном подходе (когда сам всё пишешь) настраиваешь их один раз, чистишь таблицу стилей - и форматирование документа становится невероятно удобным (на практике это требует больших затрат времени и тщательное продумывание системы стилей), но, позвольте, разве в LaTeX делается не то же самое?

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

В любом случае, какой инструмент удобнее - дело даже не вкуса, а навыков обращения с этим инструментом. Помнится, в одной из книг начала нулевых была глава, где рассказывалось, как в Excel нарисовать картину с горами и лесом...

P.S. В своё время в LaTeX верстал свою кандидатскую - очень понравилось собирать документ из глав, а главы - из разделов, когда каждый из них был в своём текстовом документе, а оформление - также в своём отдельном файле... Как говорится, лучше один день потерять, зато потом за пять минут долетишь.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории