войти зарегистрироваться

LaTeX whois

индекс
161,48

Что такое LaTeX

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



Что такое LaTeX


LaTeX — это набор макросов к TeX — издательской системе, разработанной Дональдом Кнутом. Кнут и его ученики развивали данную систему, в частности были разработаны пакеты описания шрифтов (MetaFont) и программирования рисунков (MetaPost).

Верстка в LaTeX происходит следующим образом: в исходный текст добавляются специальные команды, описывающие его оформление. В некотором роде это напоминает верстку в HTML, но синтаксис конечно другой. Также сходство придает то, что бОльшая часть оформления выносится в так называемые стилевые файлы, которые группируются по выполняемым функциям в пакеты. Примерами могут служить пакеты русификации, наборы шрифтов, математических символов, химических формул, работы с таблицами, многостраничными таблицами и т.д. Так как статья обзорная — подробно на этом останавливаться не будем.

После того, как текст набран и сохранен в файле (рекомендуемым расширением является .tex), его нужно обработать специальными утилитами. Набор утилит зависит от используемой вами реализации LaTeX, но обычно это:
latex <имя файла> — создает dvi-файл, это фактически скомпилированное представление текста, но без шрифтов. dvi-файл можно перегнать в PostScript-формат для печати на принтерах, поддерживающих PostScript, либо в банальную pdf-ку. В используемой мной системе PDF генерировалось с помощью команды dvipdfm dvipdfm -p a4. Удобно, что файлы с исходным текстом можно инклудить друг в друга. Это позволяет некоторые файлы (например, список литературы) генерировать с помощью различных утилит.

Здесь самое время поговорить о реализациях LaTeX.

Реализации LaTeX


В мире Linux (и прочих *nix) систем пользуются популярностью дистрибутивы teTeX (как его поставить хорошо расписано здесь, правда данный продукт заморожен с 2006 года, за комментарий спасибо adrianopol ) и texlive.

В мире Windows единственный дистрибутив с которым у меня получилось работать — MiKTeX.

Обычно дистрибутивы LaTeX не содержат средств для работы с верстаемым текстом, поэтому приходится использовать дополнительные редакторы или интегрированные оболочки. Многие хвалят Lyx (кроссплатформенная), TexMaker (кроссплатформенный), Kile (*nix) и WinEdit (Windows). Я в работе использовал связку Far+Colorer+bat-файл под Win и Emacs под FreeBSD. Также существует плагин для Eclipse — texlipse.

upd:
Под Windows есть еще TeXnicCenter (спасибо zimer ) и LEd (спасибо orybak ).

Преимущества LaTeX


Не хочется устраивать священные войны. Напишу, чем лично мне нравится LaTeX.

1. НеWYSIWYG-подход. WYSIWYG-подход ограничивает мою свободу. Я обязан делать не так как мне надо (например не так как указано в стандарте оформления), а так как реализовано в визивиг-редакторе, шаг влево, шаг вправо — побег. Данный фактор скорее идеологический, но кто имеет богатый опыт верстки (например HTML) тот со мной согласится.

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

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

4. Переносимость результата. Не всегда документ, набранный в 2007-м ворде будет корректно отображаться в 2003-м, а тем более из него печататься. В случае использования LaTeX проблема решается конвертацией в PDF. PDF гарантирует однозначную печать вашего документа в любом центре оперативной печати. Интересным следствием такого решения является борьба с любителями халявы. Да, вы всегда дадите одногруппнику посмотреть свой курсач, но использовать его как шаблон он уже не сможет.

5. Оглавление и список литературы. Автоматическая генерация оглавления есть и в ворде, но многие так и не научились ею пользоваться. И, как показал опыт оформления диплома в ворде вид оглавления слабо кастомизируем. Еще одной интересной фичей является автоматическая генерация ссылок на источники. Т.е. при создании ссылки на источник мы указываем его понятное нам имя (например roga — Самолысов Павел Евгеньевич, «Рога и Копыта»). Далее мы компонуем список литературы, сортируя источники по некоторому признаку и наша символьная ссылка заменяется номером источника. Меняем порядок следования источников — номера пересчитываются. Также если список литературы большой, то мы можем использовать для работы с ним внешние утилиты. Вплоть до генерации .tex-файла со списком литературы из БД.

6. UPD: В LaTeX мы работаем с текстовыми файлами, соответственно легко можно хранить эти файлы в репозитории системы управления версиями (например SVN). Соответственно, расширяются возможности коллективной работы. Да, 2007й офис тоже хранит файлы в XML-формате, но попробуйте сравнить diff непонятных XML-ек и LaTeXовских файлов. За замечание спасибо in8finity .

7. В последнее время становится актуальным и для России — большинство LaTeX пакетов бесплатны.

Русификация LaTeX


Для русификации LaTeX необходимо поставить пакет, осуществляющий поддержку используемой вами кодировки, в случае Windows-кодировки это будет пакет cp1251.

Можно использовать пакет t2 для поддержки кириллических шрифтов, но если вы сгенерируете PDF, то увидите, что шрифты какие-то корявые и рубленые. Это недостаток шрифтов t2. Для его исправления следует поставить другой набор шрифтов, наиболее симпатичными и часто используемыми является пакет PSCyr — коллекция русских шрифтов в формате Type1. Пакет PSCyr не входит в состав MiKTeX, в teTeX вроде бы входит, но установить его все равно нужно руками. Если в ваш дистрибутив LaTeX данный пакет не входит — следует скачать два архива: этот и этот. В Windows распаковать архивы можно с помощью WinZip. Далее следует воспользоваться авторской инструкцией, которая поставляется вместе с пакетом. Инструкция правда написана для teTeX, но и в случае MiKTeX замечательно подходит, единственное, в MiKTeX нет файла config.bat, но и без него все работает.

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

\documentclass[12pt]{article}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\usepackage{pscyr}



Литература по LaTeX



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

  1. Не очень краткое введение в LaTeX 2e, перевод Б. Тоботрас.
  2. С. М. Львовский — LaTeX: подробное описание — культовая книга, должен прочитать каждый.
  3. Набор математических формул в LaTeX 2e — все средства LaTeX 2e и AMS-LaTeX для печати математики в документах на англ. и русском языке. Очень много внимания уделяется российским стандартам оформления формул.
  4. Включение рисунков в LaTeX 2e — графики, диаграммы и просто картинки.
  5. Гипертекст в PDF-документе — как сделать функциональное оглавление с помощью LaTeX.
  6. Цвет в LaTeX — раскрашиваем текст и таблицы.
  7. Русский язык в LaTeX — кодировки шрифтов, стандарты оформления русских текстов, формул. Все о номерах, кавычках и тире.

UPD:

Полезные ссылки



За первые две ссылки спасибо adrianopol , за третью — EugeneKudashev .

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

комментарии (262)

  • поставил плюс, только хабракат всуньте
    • Самое главное то я и забыл. fixed.
  • Я так и не понял, как правильно читать.

    Вы пишете:
    LaTeX (латех)

    Читать как «латех» или «латэкс»?
    • TeXником обычно называют человека владеющего TeX :-)))
      • раскрыть комментарий
        • Человек же сказал «называют», а не «читают».
        • Латех. Львовского почитайте.
          • Лучше уж Кнута и Лэмпорта :-)
        • От греческого ΤεΧ.
        • Вы уж извините, но есть языки и помимо английского.
    • Ещё tex более православное написание!
      • Только, кажется, заглавными буквами. \TeX и \LaTeX в том же латехе покажут, как правильно.
      • Ни разу не правильное.
  • Правильно читать Латех, считается что это греческое слово.
    • раскрыть комментарий
      • Простите, но не вам указывать как читается это слово! И кстати правильно оно пишется как TeX.
        А как вы такое слово прочитаете!?
        • простите, а откуда сразу какое-то резкое «не вам указывать»?
      • en.wikipedia.org/wiki/LaTeX
        LaTeX (pronounced /ˈleɪtɛk/ or /ˈleɪtɛx/)


        Так что всё-таки лейтек или лейтех, но никак не латекс.
      • Простите, но автор этого программного средства ясно говорил, как это слово читается.
        А насчет происхождения — ну почему же неважно? Почему вы к греческому слову пытаетесь применить английские правила чтения? Потому что вам так привычнее?
      • Character читается не как черектер, а как кэрэктер, потому что это греческое слово.
      • В английском языке ровно одно правило прозиношения: слова всегда звучат именно в зависимости от происхождения слова — ровно так, как они произносились в языке-родителе слова. Например, «doors» произносится именно как «доорс», а вовсе не «дуурс», а «chaos» — «кейос», а не «хаос».
        И «latex» произносится (авторами) как «лейтех». Спросите у Donald Knuth, автора системы TeX, как это произнести, если сомневаетесь :)
      • А штат Иллинойс, который пишется как Illinois, почему-то читается «илиной».
      • НЛО прилетело и опубликовало эту надпись здесь.
    • раскрыть комментарий
      • Hello, my name is Donald Knuth and I pronounce Linux as Leeno-okh. А если серьезно, то чтобы латекс не прилипал надо тальком мазаться.
        • Don't feed the troll.
    • раскрыть комментарий
      • Вначале был TeX…
      • НЛО прилетело и опубликовало эту надпись здесь.
    • Правильно и так и так :)
      Писал курсач на эту тему, нужно было введение сделать на пару страниц больше — изучал Кнута. Он об этом говорит явно.
  • НЛО прилетело и опубликовало эту надпись здесь.
  • Латех — это дадено нам свыше :) В сочетании со связкой Емаксом + AucTex + CDLatex + RefTex превращается в абсолютный инструмент всевластия :)

    Благодаря тому, что для составляения документа можно просто генерировать исходный файл, написание и многочисленные переделывания моего диплома превратились в рай; особенно на фоне моих Windows-based одногруппников.

    Единственное, что напрягает — обилие атавизмов и ненужных тонкостей. Таблицы тоже потребовали некоторой сноровки, но как нашел table-mode, так стало совсем хорошо.
    • Тоже самое. Пока одногруппники мучались с переделыванием списков литературы, оглавлений и таблиц я мог заниматься другими вещами. Правда я тоже был Windows-based ))

      Про таблицы также полностью согласен. Правда я не нашел table-mode, поэтому пришлось помучаться.
    • Хм. А про стили Ваши одногруппники, судя по всему, не слышали?
    • Диплом был в этом году. Сначала набил текстовку и в самый последнпй момент уже подгонял всё под нормы и стандарты. Был очень и очень доволен. Большинство одногруппников пользовало Ворд, самые продвинутые юзали стили в Ворде, но были очень недовольны, т.к. глючило.

      Что касается проблем, то напрягает полное отсутствие нэймспейсов, т.е. порой всплывали глюки, которые исчезали, стоило поменять порядок подключения пакетов. Ну и таблицы и вставка рисунков доставляет некоторые проблемы, а так в целом — это великолепный инструмент
    • А можно поинтересоваться чтовы подразумевает под table-mode?
    • А что вы подразумеваете под table-mode?
      • ну это такая штука в Емаксе, которая позволяет быстро и легко создавать таблицы и экспортировать их в html, latex и еще что-то.

        Кроме того, она может выхватывать закономерности в тексте, и на их базе составлять ту же таблицу.

        Аналогичный причандал есть в органайзере для Емакса — Org Mode; там вообще довольно крутая интерактивная таблица.

        Вообще, если по секрету, еще до того, как обнаружил эти режимы — просто делал таблицы на легком и быстром AbiWord — и вставлял в текст.

        Еще один вариант, когда много единообразных данных, которые надо оформить в виде таблице — то проще написать на Elisp скриптик, пишущий в нужное место текст таблицы.

        Во как.
        • А. Понятно. Я все-таки предпочитаю вручную.
          Пакет longtable — наше все)
          • и makecell
            • Да, запамятовала)
  • из редакторов под винду есть еще TeXnicCenter. удобен, но в принципе far'а с подсветкой вполне хватает (:
    • НЛО прилетело и опубликовало эту надпись здесь.
    • LEd помнится мне был удобен. Под убунтой с удоовльствием пользую Kile
  • а нас заставляли лабораторные и курсовые в tex делать
    • Я думаю это вам очень повезло. У нас были проблемы, что преподы вообще не знали что такое LaTeX и заставляли приносить электронную копию работы в Word (продают они их чтоли).
      • У на с Латех — это как введение в линух!
        • Странно, что Latex, а не DocBook
      • Проблема ещё, когда в универском издательстве не знают, что такое LaTeX. Сами они Word'ом прекрасно обходятся…
  • печатный вариант хранится в архиве, а с электронным все неопределенно
  • Из удобных программ еще TeXnic Center и LEd.
    Я пользовался в-основном последним. к нему спокойно прикручивается ASpell и словари, так что, наряду с подсветкой синтиксиса TeX, получаем spellcheck.
    • Только Техникцентр не понимает юникода.
    • похоже и LEd не понимает юникод… не серьезно это :(
  • раскрыть комментарий
  • Для Windows есть дистрибутив, включающий в себя весь набор программ, необходимый для вёрстки в ТеХ'е: MikTeX с большим набором пакетов (может быть, там весь CTAN даже, не проверял), TeXnicCenter, Ghostscript и GSview. Называется этот дистрибутив proTeXt.
    Кроме того, в конце статьи о ТеХ'е в Википедии есть ссылки на сайты, где можно скачать учебники. В том числе и те, о которых рассказал автор.
    • Автор статьи написал: «В мире Windows единственный дистрибутив с которым у меня получилось работать — MiKTeX.»

      Да, действительно, MiKTeX — лучший дистрибутив для Windows.

      Я на днях поставил TeXLive 2008 — документы компилируются нормально, но не работают средства просмотра PostScript и DVI. Причём штатную смотрелку DVI — программу dviout версии 3.18.1 — в Windows надо прикручивать вручную; для этого прилагается readme-инструкция, но мне прикрутить пока не удалось — не видит сгенерированные шрифты. В MiKTeX для просмотра DVI используется программа yap, которая нормально работает сразу после установки. Наверное, придётся ставить её.

      Ghostscript и GSview для просмотра PS-файлов, вероятно, тоже надо будет поставить вручную.

      Минус MiKTeX, в отличие от TeXLive 2008, в том, что с сайта и СТАN-a нельзя скачать образ диска (можно только купить за деньги). Предлагаются только инсталлер и минимальный дистрибутив, всё остальное установщик будет тянуть из интернета. Можно, наверное, где-то найти или даже собрать для себя, но это уже возня.

      Можно даже собрать MiKTeX Portable. Разработчика не раз об этом просили, но он только отсылает к инструкции, как это сделать:
      sourceforge.net/tracker/index.php?func=detail&aid=1910727&group_id=10783&atid=360783
      оттуда ссылка на инструкцию:
      ftp://ftp.fu-berlin.de/tex/CTAN/info/MiKTeX+Ghostscript+GSview+USB-drive-HOWTO.txt
  • да, в в ТеХе можно презентации кашерные делать.
    • Да, пакет beamer наше все.
  • Иногда материалы на конференции просят присылать как раз в техе. Тогда на помощь приходит OpenOffice.org, который умеет делать экспорт, после чего результат подвергается некоторой ручной корректировке, дабы соответствовал требованиям.

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

    p.s. между прочим, OOo умеет составлять список литературы из БД без танцев с бубном ;-)))

    p.p.s. интересует вопрос с поддержкой юникода — все же cp1251 это в некотором смысле антиквариат… ;-)
    • UTF-8 читается и не жужжит. С соответствующими командами, конечно.
      • Да какие там команды, \usepackage[utf-8]{inputenc} хватает, если я не ошибаюсь
        • Кто скажет, что это не команда, пусть первый бросит в меня камень ;)
      • Можно поподробнее про команды? При использовании utf-8 были какие-то проблемы (в частности, с оглавлением), которые достаточно сложно отловить. Т.е. всё компилируется, но не так, как надо.
        • Я не самый большой знаток латеха, но вот такой набор только что отработал без запинки (Texlive):
          \documentclass[a4paper,10pt]{book}
          \usepackage[utf8]{inputenc}
          \usepackage[english,russian]{babel}
          \author{...}
          \title{...}
          \begin{document}
          \maketitle
          \tableofcontents
          \chapter{...}
          ...
          \end{document}
          

          Вариант комментом ниже с ucs/utf8x прошел с тем же результатом.
          • Не, это всё было. Как-то неправильно верстались определённые части текста в элементах оглавления, точнее не помню, но посмотрю. Знакомые по тем же причинам от utf отказались. Поэтому приходится извращаться с koi8-r…
            • Да, было бы интересно взглянуть.
            • Живу с utf8 полгода — за это время было сделано около 10 работ, вроде багов не нашлось.
            • Немного не то, но всё же:
              $ pdflatex main.tex
              .........
              ! Package inputenc Error: Unicode char \u8:�\global not set up for use with LaT
              eX.
              
              See the inputenc package documentation for explanation.
              Type  H <return>  for immediate help.
               ...                                              
                                                                
              l.57 Больш\'
                                �я часть времени преподавателей...
              .........
              
              $ more 1_chapter.tex | grep Больш
              Больш\'ая часть времени преподавателей уходит на проверку самостоятельных и
              
              • Это лечится доустановкой пакетов. Каких именно пакетов, зависит от дистра, но если места не жалко, можно на всяких случай вытащить все со словами cyrillic и russian :)
              • А, пардон, поторопился с ответом. Кириллическая «а» с акцентом вообще в юникоде определена? ucs выдал malformed utf-8 sequence. Может, поискать способы использовать комбинирующуюся диакритику вместо диграфов? Или добавить свой глиф?
                • Пардон, ударение и есть диакритический знак (который в LaTeX ставится командой \'), а диграф — это что-то связанное с транскрипцией, насколько я помню. В любом случае, хочется посмотреть какой-то некостыльный вариант использования ударений и проч с utf.

                  (Проблему с оглавлением пока не смог найти/воспроизвести...)
              • Извините за флуд, но я сегодня пишу быстрее, чем думаю.
                Команда \' в короткой форме, видимо, не юникодоспособна и выхватывает после себя только один октет, ломая поток utf8. Это исправляется полной формой \'{} (т.е. \'{а}), в таком виде все заработало.
    • > p.s. между прочим, OOo умеет составлять список литературы из БД без танцев с бубном

      MS Word, пожалуй, тоже, но блог же не об этом, правда? ;)

      > p.p.s. интересует вопрос с поддержкой юникода

      \usepackage{ucs}
      \usepackage[utf8x]{inputenc}
      • На самом деле вопрос вордом открыт, как я понял в техе возможностей для работы со сносками куда больше.
        • Сначала хочу сказать, что люблю ТеХ всей душой, иногда набираю с его помощью документы и вообще очень хорошо к нему отношусь :)
          Если по делу, то я считаю, что большое количество возможностей у ЛаТеХ'а появляется благодаря большому же числу пакетов. В Ворде тоже есть макросы на тот случай, если штатными средствами функциональность реализовать не удастся. Но штатных средств в Ворда очень много. Другое дело, что нередко пользователи этой программы не подозревают даже о существовании стилей.
          Да, и если такое возможно, приведите, пожалуйста, несколько примеров со сносками, где ТеХ уделывает текстовый процессор компании Майкрософт. Мне это интересно, другим читателям, думаю, тоже.
          • Хм.

            Интересная постановка вопроса. :) Мне вот нужно доказывать, зачем грамотному человеку использовать Word вместо Latex.

            Из простого:

            1) Формулы;
            2) Можно использовать любой редактор;
            3) Язык скриптования;
            4) Не надо грузить убийственную, глючную и ненасытную в смысле ресурсов программу;
            5) Радикальных изменений в интерфейсе быть не может;
            6) BibTex (говорят, стоит того, но мне не пригодилось);
            7) Встречается практически под любыми платформами;
            8) Стоит в бесконечное количество раз дешевле — потому что бесплатна;
            9) Набор текста остается набором текста, так как не требуется трогать мышку. Вы же вслепую печатаете, да?

            Из сложного:

            1) Файлы-исходники можно генерить чем угодно: скрипт на Питоне, Bash, your-fav-scripting-lang легко соберет для вас отчет, который в дальнейшем не стыдно будет отослать куда угодно;

            2) Формулы можно создавать автоматически. К примеру, мне надо было вставлять в отчет формулы и подставлять вместо них числа, и потом — окончательное значение. Все это производилось скриптами; НИКАКИХ СПЕЦИАЛЬНЫХ API или уродливых языков;

            3) Настоящий язык программирования как бэкэнд;

            4) Специальные редакторы (и некоторые неспециальные) поддерживают рисование формул on the fly, что вообще очень удобно.

            Главное препятствие — некоторая нетривиальность в освоении. Но мы-то знаем, что и Офис тоже не дается без боя?
            • Нетривиальность в освоении меркнет, когда осознаешь удобство чисто текстового режима. Можно не отрываться, собственно, от процесса изложения мысли на движения мышкой и т.п.

              Особо радует то, что разметка документа, оглавление, перекрестные ссылки, положение рисунков на странице никак не зависят от навыков точного позиционирования мыши =)
    • Поддерживает. Заместо cp1251 пишите в руссификации — utf8.
      На самом деле, если организаторы конференций, редакторы журналов и иже с ними потрудились сделать стилевой файл с документацией к ней — хватит пары-тройки дней, чтобы разобраться и сделать.
      Другой вопрос, когда стилевого файла нет и пользователю приходится совмещать два уровня — пользователя LaTeX и программиста LaTeX.
      На ЛОРе была хорошая цитатка «пользователи LaTeX обратно не возвращаются».
      Из ссылок сильно рекомендую вот это — mydebianblog.blogspot.com/
      А на самом деле страшно — только первую серьезную работу делать.
      • Полностью согласен про «страшно — только первую серьезную работу делать», поэтому начинать осваивать стоит пораньше — оформляя курсовые или несложные лабы. Тогда оформить диплом будет сильно проще. Я заметил, что многие начинают знакомиться с LaTeX уже при оформлении диплома. Диплом все же слишком серьезная задача для начинающего TeXника, поэтому возникают проблемы.
        • Да, мелкие детали, которые приходится долго править руками.
          Если начать оформлять по ГОСТам курсовики можно выловить все такие недосмотренности. В качестве базы рекомендую стиль eskdx.
          • Про него я и планирую написать. Точнее — передать свой опыт кастомазинга этого стиля.
            • Хорошо, я свой стилевик почти допилила, но поскольку допилка производилась по ходу дела сейчас очень чешутся руки все переписать)
      • Если я не ошибаюсь проблема осложняется тем, что ВАК до сих пор не предлагает единый стиль для оформления диссертаций.
        • И диссертаций, и ГОСТы на дипломы в каждом ВУЗе свои, как ни странно.
          И никто ведь не пишет стилевики для студентов…
          Да и ГОСТы зачастую выражаются в терминах «пропустить одну строку».
          • ГОСТ == настроение нормоконтролера. Мы своего убить хотели после защиты…
            • У нас такой страшный зверь не водится. И соответсвие ГОСТам оценивается на глаз.
    • > p.s. между прочим, OOo умеет составлять список литературы из БД без танцев с бубном ;-)))

      имхо BiBTeX все же удобнее.
      • Вы поддерживали базу бибтеха? Мне не понравилось :(
        • Что именно Вам в нем не понравилось? По-моему отделить библиографическую информацию от её представления представляется весьма разумным. Это дает возможность генерировать различные виды представления ссылок, требования к оформлению которых различается в различных журналах и издательствах. Разумеется эффект достигается при многократном использовании одного и того же библиографического материала. Но и при однократном использовании тоже может быть полезно.
          • Ну муторно это как-то.
          • Блин, ctrl+enter нажал :(

            Муторно это. На кафедре у нас был проект — посадить кого-нибудь из студентов-магистров поддерживать базу бибтеха. Если бы это было реализовано, это было бы удобно.

            А в одного — очень неудобно.
            • Ну вот Вы сами говорите, что дело не в удобстве использования, а в том, что Вам лень набить базу.
              Мне кажется стоит один раз помучиться, зато потом сэкономить кучу времени.
              • Набить мало, её надо поддерживать. Актуальные-то статьи выходят и выходят, и их немало.
                • Для меня была сложность набить, а поддерживать — это уже по ходу дела. Все равно новые ссылки придется вбивать в статью, так какая разница в каком формате это делать.
    • Смотря что имеется ввиду под «составлять список литературы». Если набрать список авторов книжек и вручную проставить на них ссылки, а потом вручную же менять, если нужно добавить автора с фамилией например на «А», то это и Word может.

      Про танцы с бубном. Танцы нужны если у вас список литературы на 300-500 наименований и вам нужно их по-разному сортировать. Для обычного диплома в LaTeX никаких танцев не нужно.
      • Под «составлять список литературы» имелось в виду, что ООо позволяет вставлять в текст линки на библиографические источники, внесенные в локальную (для документа) или общую БД. При вставке списка литературы упомянутые в тексте источники форматируются в список, на месте линков вставляются соответствующие номера. Формат вывода настраивается. Сортировка по порядку упоминания, либо по полям таблицы с библиографией.
  • В дальнейшем ожидается цикл статей по верстке диплома в LaTeX.

    Вот это очень актуально, буду ждать. Спасибо за статью.
  • Пару комментарий:
    2. В Word 2007 в линейном режиме можно тоже без мышки формулы набирать. Правда конечно специальные символы вставлять в нем неудобно.
    4. На сайте Microsoft есть бесплатный Add-in для Word 2007 позволяющий сохранять в PDF
    www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=en
    • Ух ты… Тридцать лет спустя они нечто подобное научились делать в Office. Это даже забавно. Сначала демонстративно отказываются от чего-то, потом с помпой подают как большое достижение… :)

      Но все равно… Не получится так легко собирать документ произвольным внешним инструментом. Код в форме простого текста — он в этом смысле имеет абсолютное преимущество над любым сложным форматом.
      • Тридцать лет спустя они нечто подобное научились делать в Office.
        Если мне не изменяет мой склероз, то «подобное» появилось ещё в Office 97(95?) вместе с редактором Equation. Там можно было набирать простенькие формулы с помощью одной лишь клавиатуры. А если поставить MathType — тогда начинался полный праздник. Если Ворд/ещёктототам не начинал вылетать от обилия внедрённых объектов.
        • мачтайп выдаёт НЕКРАСИВЫЕ формулы. Эстетически они — неприятны. Скажем, не «по ководству»: там символы наползли, тут наоборот какой-то разрыв возник. Так верстают только сами знаете кто.

          ТеХ безусловный лидер по качеству вывода.
          • Против наползания-разрывов, помнится, помогало обновление/перерисовка объекта. Впрочем, лично мне уже всё равно — последний раз я пользовался Equation/MathType давно, а в следующий раз это будет LATEX — т.к. с Linux обратно на Windows переходить я уже не буду.
            • Какая ещё перерисовка? Вы про пляски с бубном? :)
              • Ну, при изменении положения/размеров объекта-формулы в приложении-сервере он перерисовывается (-лся?) некорректно — с теми самыми разрывами-наползаниями. Возможно, сейчас всё не так — пользователи MS Word меня поправят. Приходилось открывать-закрывать его правку, чтобы он перерисовался и выглядел в документе красиво. В общем, да — к пляскам с бубном отнести вполне можно.
        • Зуб даю, вы никогда особо не платили за MathType. И еще один даю, что вам никогда не доводилось на Equation набирать что-то больше a^2+b^2=c^2.

          Не-е-е-е, для научного или технического набора текстов эти штуки ну совершенно не годяться. Я ото всех Офисов отошел не от хорошей жисти. :)
          • Да, не платил. Если бы пользовался сейчас — купил бы. Этот зуб оставляю вам.
            И еще один даю, что вам никогда не доводилось на Equation набирать что-то больше a^2+b^2=c^2.
            Не угадали — доводилось. Курсовая работа по ТОЭ. Забодался — по самое нехочу. И, кстати, я нигде не говорил, что они годятся для набора научных/технических текстов. Более того, исходя из моего небольшого, признаться, опыта, я здесь вас поддержу — эти штуки для набора технических/научных текстов не годятся. Максимум — набрать решение домашнего задания. И то.
    • На днях набирал статью в Word 2007 (издательство требует).
      Да вставлять формулы стало удобнее чем каждый раз 'Вставка->Объект->Ms Equation'. Ho есть 2 момента, которые все усилия M$ сводят на нет:
      1) Греческие буквы помещены в огромнейший выпадающий список. Опять мышку в руки и понеслась
      2) Допустим я хочу вставить формулу по центру (когда 4х-уровневая дробь — по-другому никак), и после формулы я хочу объяснить входящие в нее обозначения. Я ставлю после формулы запятую, и Word автоматически сбрасывает выравнивание по-центру. Опять, мышку в руки и как обычно
      • по п. 1. Греческие буквы не пробовали вставлять по Ctrl+G,?
        • Ctrl+G, буква
          • Спасибо, попробую.
            Не дружу я как-то с Word'ом =)
      • Ещё Word 2007 стал понимать какую-то пригоршню команд из TeXа. Набрав в редакторе \int^10_20 сразу получаете интеграл. Греческие буквы тоже понимает.
        • Когда он ещё и рендерить формулы научится так же, как и TeX…
    • За этот Add-in с PDFом готов Вам памятник ставить!
      *Ушёл в профиль, ставить памятник.* ;)
      • Спасибо за памятник :-D
  • Хорошая статься. Хотелось бы увидеть продолжение.
    Я как раз несколько дней назад начал писать диплом в LaTeX.
    Но опыта и знаний пока маловато
  • Латех — хорошая штука, помню нас заставили на первом курсе набирать странички из матана в нём! :)
    Пожже мне эти знания здорово пригодились!
    • А ко второму курсу препод выпустил методичку?
  • А мой первый опыт с Латехом начался с момента, когда матери сказали набирать текст к публикации в ТеХ'e.
  • Я диплом верстал в OOo + плагин к нему, дабы формулы latex'ом генерить (они выглядят лучше), а еще использую для редактирования нот lilypond.
    • А по мне так, формулы — не главное, что есть в Латех.

      Больше всего удовольствия доставляет тот факт, что не надо запускать монстроидальную программу в форме любого офиса, будь то бесплатные OOo или Lotus Symphony, или Ms Office. Они медленные по определению, там куча всякого вспомогательного добра ежесекундно насилует процессор, достовляет массу секунд ожидания… Ну их :)
      • К сожалению у нас на кафедре проблемы с поддержкой документов в LaTeX в плане совместной работы. А я его задействовал для того, чтобы обозначения быстро менять можно было и генерить сложные формулы с разными индексами… Вобщем, для меня он реальный язык программирования. Все ни как руки не дойдут до полноценного освоения lilipond — в нем интересно получается, возможности TeX + scheme. Много нового узнаешь о произведении пока верстаешь (в плане композиции).
        • О! Про совместную работу хорошо что напомнили. Все же текстовый документ легко хранить в каком-нибудь SVN и работать с ним совместно.
          • Это хорошо, когда вторая сторона к этому готова, а вот когда этой стороне 70 лет и пользуется она исключительно вордом, вот тогда начинается веселье. А вот как раз схему с хранением в SVN и хотелось реализовать, уж больно не хотелось кидаться друг в друга версиями документа.
            • Еще хуже, когда вторая сторона готова только ставить ручкой пометки на полях :)
      • Ну да, а ТеХ не монстроидален, не тащит за собой горы совершенно непонятного мусора, не требует на каждую более-менее нестандартную функцию качать откуда-то расширения и потом ломать голову, как их установить, потому что они написаны под другой дистрибутив латеха (которых тоже дохрена и больше), или под другую версию нашего дистрибутива…

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

            Для примера — попробуйте поставить миктех 2.7 и применить к нему pscyr, пользуясь рекомендациями данной статьи. Не получится. Оно просто не работает. _На самом деле_ надо качать последнюю версию pscyr (а не ту, на которую тут ссылка) и творчески копаться в miktex/bin, потому что с версии 2.4 там все названия тулзов поменялись.

            И то я вот сейчас его более-менее допинал, но шрифт «Лазурский» всё равно не работает, а в остальных шрифтах всё печатается кроме макросов \TeX и \LaTeX…

            И вот такая херня на каждом шагу.
            • Неправда ваша. Я не берусь утверждать что у вас не было проблем с настройкой MikTeX, может и были, но заметьте — они были у вас. У меня все встало без ковыряния в miktex/bin и именно с той версией pscyr, на которую ссылка. Поэтому, собственно, я и привел эти ссылки. Единственное исключение я описал в статье.
              • Миктех какой версии? И в Вашем блоге Вам совершенно правильно посоветовали упомянуть волшебную команду mkfntmap, про которую ни в readme pscyr ни в Вашем топике ни слова.

                Да, «тот факт, что надо обновить шрифты описан в документации» — это означает, что человек, чтобы _пользоваться_ системой, должен знать, как в неё производить администраторские действия. Именно об этом я и пишу.
                • Именно версии 2.7
                  Заметьте я и не позиционировал LaTeX как инструмент для людей, которые не могу прочитать документацию и освоить систему. Такие пусть покупают MS Office, если они думают, что там им будет легче — это их выбор. Лично для меня LaTeX же удобный инструмент, который я использовал для оформления курсовых и диплома. Я его освоил, я про это пишу.
                  • ОК. Я просто хочу сказать (не Вам лично, читателям), что система TeX/LaTex достаточна сложна в настройке, не имеет устоявшегося набора дистрибутивов, может иметь проблемы с совместимостью разных составных частей. Это медицинский факт, с этим спорить глупо. Вот и всё. Я понимаю, что формально хабр — для гиков, и их не должно это пугать… но хотя бы предупредить.

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

                    К сожалению, внятной альтернативы теху не видно, так что я его, конечно, допинаю…
        • Насчет монстроидальности… Я имел в виду то, как раскладывается в памяти и ресурсах процессора программа. В старые добрые у меня Офис с одним большим документом занимал места столько же, сколько Firefox с двадцатью документами после целого дня непрерывного использования.

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

          Да и ничего особенного она не тянет. Скажем, ставишь пакет tetex в debian или Ubuntu, а все остальное уже там в комплекте будет. Если же чисто в мегабайтах разговор вести, то вообще не приходится сравнивать, сами понимаете.

          Повторюсь, ничего особенного. Для того, чтобы с программу настроить и в ней разобраться — Так обычно специальный человек вопросами администрирования занимается, его проблемы. А для личного пользования обычно его в любом случае только более-менее образованные люди используют.

          А пользоваться… Вы действительно думаете, что без специального обучения секретарша сможет грамотно пользоваться Офисом?

          С Латехом же поставил tortoiseSVN, показал, какие кнопочки жать. Сказал, что для параграфа — то-то, для картинок — то-то; и все — вперед.
          • См. мой ответ выше: habrahabr.ru/blogs/latex/46073/#comment_1173163

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

            Насчёт чисто-в-мегабайтах — вчера поставленный миктех сейчас у меня занимает 240 Мб и содержит 12000 файлов. По мне так это дохренищща и вполне сравнимо с *Office. Ничего я с ним не делал — только позволил скачать всё что он считал нужным для работы с русским языком.

            А так, если ничего кроме параграфов, заголовков и формул не надо и есть специальный человек — то да, отличная система…
            • Хм. Под русский я использую utf-8, с каким-то фонтом… Не помню уже, каким. Где-то неделю-две пристреливался к оформлению отчетов, курсовых… А потом у меня сформировались стандартные шаблончики…

              Ну и все. Дальше — на поток уже это дело поставил.
            • 240 мегабайт — это фигня-с :) Полный (упакованный) дистрибутив TeX Live 1.15 GB. (Правда, туда чего только не засунуто, GhostScript, ImageMagick, каждого редактора по штуке и т. д. «Урезанный» Basic TeX, где ничего этого нет, всего 48 MB, и вполне рабочий.)
    • несколько моих одногруппников пытались верстать диплом в OO, плевались еще сильнее, чем от ворда. Сам я ОО использую только для просмотра doc-файлов, поэтому сравнивать с ним LaTeX для себя не считаю уместным.
  • 4. Переносимость результата. Не всегда документ, набранный в 2007-м ворде будет корректно отображаться в 2003-м, а тем более из него печататься. В случае использования LaTeX проблема решается конвертацией в PDF.
    Преимуществом по отношению к ворду это считать нельзя, вордовский документ точно так же конвертится в PDF.
    • У ворда это не является встроенной функцией, попытка тремя средствами переконвертировать собственный диплом в PDF в свое время не получилось. Может конечно, руки кривые…
  • Очен хорошо что появился такой блог! Будет стимул написать сюда.
  • Если уж решиться произносить правильно, то лэйте[кх].

    А то и ни стандартное английское прочтение, и ни оригинальное авторское — мутант какой-то :^)
  • В отличие от многих комментаторов, я не отношусь к поклонникам Латеха (предпочитаю Ворд). Также не не устраивая священных войн, хочу отметить, что указанные объективные «преимущества» Латеха являются достоинствами, но никак не уникальными фичами. Ради справедливости:

    > WYSIWYG-подход ограничивает мою свободу. Я обязан делать не так как мне надо (например не так >как указано в стандарте оформления), а так как реализовано в визивиг-редакторе
    Спорно — аналогично, в латехе шаг вправо или влево — ошибка компиляции. Многие, казалось бы, несложные вещи решаются лишь с помощью сторонних (неочевидных) средств. Например, в своё время отняла довольно много времени необходимость сделать многостраничную таблицу.

    >Набор формул — один из основных факторов. Набрать в ворде какую-нибудь сложную формулу бывает >очень не просто
    Мсье не знает про MathType. Хотя уже вроде как шестая версия вышла. Там тоже есть язык формул (по-моему, даже ТеХ-совместимый).

    >Богатейшие возможности макропрограммирования.
    Верно, но не будем забывать про макросы в Офисе.

    >проблема решается конвертацией в PDF
    Это не задача переносимости, а задача печати. В ПДФ можно сконвертировать что угодно — от картинки до документа Ворда. И здесь Латех не уникален.

    >Оглавление и список литературы. Автоматическая генерация оглавления есть и в ворде, но многие так и не научились ею пользоваться
    Те, кто не научился — те и в Латехе не сумеют. Это легко.

    >большинство LaTeX пакетов бесплатны
    ну это факт :)

    Ещё есть полезная вещь — автогенерация библиографии (в Ворде лучше всего решается с помощью EndNote).

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

    Вот чего я до сих пор в Ворде не научился делать (а в Латехе это делается легко) — так это плавающее размещение рисунков. Если нужно вставить рисунок после какого-либо абзаца, в Латехе можно указать «плавающее» размещение — и рисунок поместят где это возможно. В ворде же можно наблюдать такой эффект: рисунок не влезает на страницу, переносится на следующую, а прямо после абзаца куча пустого пространства. Вот это плохо.

    • Мсье знает про MathType и знает, что она стоит 97$, LaTeX же бесплатен.

      По остальным замечаниям:
      1. Я написал, что озвучиваю субъективное мнение. Я программист и мне не привыкать решать ошибки компиляции, у меня даже это хорошо получается. А вот ровно двигать границы таблички — не всегда. Может быть руки кривые, не знаю.

      2. Автогенерация оглавления легко, но попробуйте автосгенерить оглавление по ГОСТ.

      3. Макросы и стили могут творить чудеса и в LaTeX, я не ставил своей целью унизить пользователей ворда или хаять ворд. Ворд хорошая штука, если им уметь пользоваться. Но вот я не умею, мне LaTeX освоить оказалось проще. Поэтому и пишу о нем.
    • И еще, не дописал ссори. LaTeX для академической среды хорош тем, что имеет пакеты (разного правда качества) для оформления документации (курсовых, дипломов, дисертаций) по ГОСТ. Я не знаю как с этим обстоит дело у MS Word, но есть мнение, что хуже.
      • По поводу ГОСТ — действительно я не компетентен рассуждать, верю на слово.
        Насчёт МафТайпа — тоже верно, хотя речь о бесплатности не шла, шла речь о возможностях :)
        Хотя есть какие-то бесплатные аналоги (например, www.rusedu.ru/detail_262.html), но я не пользовался, поэтому их рекламировать не буду.
    • >Верно, но не будем забывать про макросы в Офисе.
      Макросы? В Ворде? Не смешите!

      В ТеХе есть полноценный язык, вы можете хоть модуль свой написать при необходимости, не то, что макрос! И конечно, все нормальные люди объявляют себе несколько команд для удобства ;)

      По сравнению с ТеХом, в Ворде вообще нет никакой автоматизации.

      > Ещё есть полезная вещь — автогенерация библиографии (в Ворде лучше всего решается с помощью EndNote).
      man bibtex

      > Вообще в Ворде макросы+стили могут творить чудеса. Например, я активно использую автоматическую нумерацию заголовков, рисунков и таблиц.
      А ссылаетесь вы на них как? Я — по удобным меткам. Если номер картинки съедет (был 1, стал 2), ссылки на неё типа «см. рис 1» тоже съедут (станут «см. рис. 2»). То же самое с формулами, таблицами, а также разделами, секциями, параграфами и т. д. — вообще со всеми объеками.

      В Ворде, чтобы этого надо добиться, нужно ещё найти, как на них ссылаться. В ТеХе это работает искаропки.

      Про стили я не говорю — если в ворде 99% документов делаются безо всяких стилей. А в LaTeXе без них сделать просто невозможно — там нет команд «шрифт жирный» или «размер 19 пойнтов» — только «стиль boldface» или «текст крупный», которые, конечно, являются стилями и определены вообще в классе документа.
      • 1. Про макросы напраслину наводите. Язык VBA — более чем полноценный. Дать ссылку на Тетрис в Экселе? Или на «Space Invaders», или на пакмена? Очень смешно — «можно модуль написать».
        На VBA можно и модуль, и класс, и WinAPI поюзать, и DLL и вообще что угодно… Хоть я сам и не особый поклонник VBA, но не будем недооценивать возможности.

        2. «А ссылаетесь вы на них как?» — я ссылаюсь по коду объекта. В Ворде можно сослаться на любой именованный объект (коим может быть, например, рисунок), и при изменении подписи к рисунку или его номера уникальное имя сохраняется. Короче говоря, примерно так же, как и Вы. И с таблицами, и с разделами.
        То, что это неудобно реализовано — согласен, но мне плевать — потому что ещё пару лет назад обернул всё это в удобную макросовую обёртку и вынес кнопки на панель. Щелчок мыши — и всё готово.

        3. Насчёт того, что пользователи не хотят работать со стилями — верно, не хотят. Но это не значит, что надо заставлять из-под палки. Я пользуюсь стилями активно, а кто этого не делает — его проблемы.
        • Ваш пост в очередной раз подтверждает, что в современном мире лучше тот инструмент, который лучше знаешь.
        • Хм. Вам действительно нравится VB или VBA?

          Не хочу наводить напраслину, но язык-то ужасный. Моей сестре большую курсовую на нем задали делать: экономическая игра в Excel на VBA. Разумеется, я принимал в этом участие. Там каша мутная, а не программирование!
          • Нет, мне он не нравится. Но (продираясь сквозь его кривизну) можно сделать многое.

            На самом деле для меня большое разочарование, что VB.NET — уже вполне пристойный язык (по сравнению с VB — точно), а вот в Офисе языковую начинку не трогают уже лет десять точно. Я думаю, давно пора делать реальный апгрейд, а не новые кнопочки рисовать…
            • Кнопочки можно подать как новое свершение для миллионов леммингов, а что такое «языковая начинка» знают на порядки меньше людей. Маргетинг.
    • Во тчем мне нравится LaTeX, так это возможностью засунуть документ в систему контроля версий и легко видеть его эволюцию. Файл-то текстовый :-)
      • Хе, а мне актуальна другая задача — рецензирование. Т.е. когда редактор читает текст, вносит правки, а я смотрю правки и действую соответствующим образом… В Ворде очень удобно.

        Через репозиторий, конечно, можно работать, но мне не кажется, что это очень удобно…
        • В LaTeX есть например комментарии
          • Понимаю, но, скажем так, процесс в целом не очень удобен. Т.е. я посылаю текст на рецензию, человек его открывает, вносит правки.

            А в ЛаТехе рецензент должен отдельно открыть PDF (чтобы видеть текст в нормальном виде), а правки вносить в исходный .tex файл. Если рецензентов несколько, ещё сложнее понять, кто что делал. Если мы работаем над одним проектом, надо всех из заставить использовать общий репозиторий.

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

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

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

    Второе — для быстрого набора формул в Word и т.п. откройте справку по шорткатам.

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

    С четвертого по седьмое — просто смешно. Как сделать человека счастливым? Сначала сделать ему плохо, а потом как было.

    Мое резюме — если вы еще думаете, использовать это чудо или нет, то однозначный ответ — нет.
    • Вы как минимум тролль (про бородатость, лживость и девственность не знаю — не буду утверждать).
      • Я как минимум четыре года поддерживаю сборку документации у нас в фирме, которую решили делать в Latex. И это не диплом (диплом я сам в Latex делал), а на порядки по объему и сложности больше.
        • Сейчас уходим от Latex на DocBook, слава тебе господи.
          • Ну что ж… DocBook обычно парсится в TeX и рендерится потом с его помощью
            • Нет, DocBook обычно конвертируется в FO и потом рендерится XEP.
        • Не знаю как «на порядки по объему и сложности больше», но я писал в основном про диплом.
    • Маленький шаг в сторону. Посмотрите, что простота исполнения сделала с качеством презентаций?
      А теперь к делу. Визуальное редактирование проще, но оно не побуждает использовать весь спектр возможностей невизуальных, таких как стили, написание макросов и т.д.
      В результате большинство документов сверстано так, что смотреть страшно.
      • А править ещё страшнее. Каждый заголовок из пятнадцати — вручную… Каждую формулу из пятидесяти — вручную… И т. д.
      • Использование всего спектра возможностей побуждается правилами написания текста, которое разрабатывает технический писатель со специалистом.

        Если рассматривать Latex, как способ чем-то занять студентов на долгое время, то он вне конкуренции. Только рано или поздно юнешеский максимализм проходит, когда приходится решать реальные задачи в ограниченное время.
        • Разные задачи — разные решения, оптимальные для каждого конкретного случая.
          LaTeX — стандарт для некоторых зарубежный изданий и от этого тоже никуда не уйдешь.
        • Думаю, что если сравнивать Latex и какой-нибудь из Офисов, то Латех все же выиграет.

          Но ему безумное количество лет; давно пора либо закончить работу над третьей версией, либо представить нечто альтернативное и более эффективное в том же ключе.
          • Само по себе количество лет вообще ничего не значит. И, кстати, тот факт, что за такое время до сих пор ничего лучше не написали, свидетельствует о том, что ТеХ совершенен :)
        • Ох уж эти «реальные задачи» — ultima ratio всех споров о применимости той или иной технологии. Почему-то реальными всегда считаются только те задачи, которыми когда-либо занимался автор.
          Помимо технической документации есть масса других применений текстовых процессоров. Латех — стандарт де-факто для научных публикаций, как минимум.
          • Тогда первой строчной статьи и нужно написать, что Latex — только для научных журналов.
            А применение его в других областях под большим вопросом, т.к. есть более адекватные инструменты.
            • Хм.

              У меня для Латеха четыре области:

              1) научный текст с обилием формул и иллюстраций;
              2) специальный текст с кучей исходного кода и блок-схем;
              3) художественный текст средних размеров без специальных иллюстраций, или с малым их количеством;
              4) небольшие шаблонные документы на самые разные темы.

              Эти задачи он решает отлично. Какие неподходящие области предложите вы?
              • Любую, в которой результат нужно выводить не только на печать.
                • Вообще-то TeX разрабатывался именно как издательская система — автору нужно было корректно вывести на печать свою книгу. Как уже разобрались — для решения этой задачи он является практически идеальным инструментом. Использовать же инструмент для решения задач, для которых он не предназначен.., ну так и гвозди можно микроскопом забивать — в чем проблема?
                  • для решения этой задачи он является практически идеальным инструментом

                    Простите, вы с чем сравнивали-то? Относительно чего — это идеальный инструмент?
                    • Идеал — на то и идеал, что он абсолютен, т.е. не относителен чего-либо. Впрочем, здесь есть известная доля субьективизма, кому-то и notepad.exe идеал.
                      • Давайте без фанатизма, ладно?
                    • Относительно того, что в мире вообще не существует другой такой издательской системы. В принципе.

                      Кнут он крут, чтоб его. :)
                      • В мире все издательские системы уникальны.
                • хе… Это что, почту писать? :-D

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

                  а совсем мелкие задачи… так для них и Word не вполне подходит.

            • Вы видно не оформляли курсовые, где формул больше, чем слов)
              • Курсовыя я в Latex не делал. А в дипломе, да, у меня слов намного больше, чем формул.
                • Значит, вам повезло)
    • для быстрого набора формул в Word и т.п. откройте справку по шорткатам
      шорткатов для доброй половины шаблонов Equation там нет. И настраиваются они то ли через реестр, то ли правкой ресурсов приложения (ЕМНИП, именно так). Так пользователей Office стимулируют покупать MathType.
      Если что, я набирал в Equation курсовую работу по ТОЭ.
      это не программирование, а насилие мозга [эмоции skipped]
      Приведите аргументы. Например: «Я, мол, такой-то такой-то, такого-то года рождения, не понял, почему/как работает/с какого перепугу в LATEX то-то и то-то; в связи с этим считаю вышеописанный язык тем-то и соответственно к нему отношусь».
      • По п.2 (насилие мозга), похоже, у вас есть основания так считать.
      • Вот, например:

        \def\f@ncyhf#1[#2]#3{%
        \def\temp@c{}%
        \@forc\tmpf@ra{#2}%
        {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}%
        {}{\edef\temp@c{\temp@c\tmpf@ra}}}%
        \ifx\@empty\temp@c\else
        \@fancyerrmsg{Illegal char `\temp@c' in fancyhdr argument:
        [#2]}%
        \fi
        \f@nfor\temp@c{#2}%
        {\def@ult\f@@@eo{eo}\temp@c
        \if@twoside\else
        \if\f@@@eo e\@fancywarning
        {fancyhdr's E option without twoside option is useless}\fi\fi
        \def@ult\f@@@lcr{lcr}\temp@c
        \def@ult\f@@@hf{hf}{#1\temp@c}%
        \@forc\f@@eo\f@@@eo
        {\@forc\f@@lcr\f@@@lcr
        {\@forc\f@@hf\f@@@hf
        {\expandafter\fancy@def\csname
        f@ncy\f@@eo\f@@lcr\f@@hf\endcsname
        {#3}}}}}}
        • Пожалуй, DocBook — меньшее зло. Но есть нюанс:
          Следует отметить, что в Docbook практически нет средств описания математических формул, но со временем можно ожидать поддержки MathML в XML-версии Docbook.
          Как быть с формулами посложнее a2 + b2 = c2?
          • Т.к. DocBook основан на XML, я могу написать препроцессор, который найдет все места (допустим, с формулами в теховском форматы), отрендерит их и вставит на их место ссылки на картинки.
            • Мда, похоже от теха никуда не деться. Ещё вопрос — сложные формулы в Техе так же страшно выглядят?
              • Примерно. Но, наверное, от этого никуда не деться. Если многоэтажную формулу развернуть в строку, она сильно теряет в наглядности.
                • А рендерить MathML вместо LATEX внутри DocBook вы не пробовали? С помощью XSLT, например? Если да, то почему отказались?
                  • У нас мало формул и хватает подготовленных картинок.
                • Разве это не зависит от человека, который пишет?

                  Вот Perl regexps — в наипростейшем исполнении жуть непотребная. Но при желании им можно придать очень и очень читаемую форму даже банальными переносами.

                  • Наверное можно и с формулами ухитрится, но не думаю, что этим кто-то пользуется.
              • Нет.
                • Здесь говорят, что вроде как да. Можно пример + результат?
                  • Давайте формулу, сверстаю.
                    • Test1: upload.wikimedia.org/math/e/0/1/e01c8e0247e594965d1492357338c593.png

                      Test2:
                      upload.wikimedia.org/math/5/f/7/5f7762fd6d56047f18ea43f55c1f85ff.png
                      • Жаль, что в комментариях не поддерживается хабракат :)
                        \documentclass[12pt]{article}
                        
                        \begin{document}
                        Test 1:
                        % Можно было бы определить команду для
                        % \frac{\partial A}{\partial B}, но будем считать, что это учебный пример
                        \[
                          \rho \left(\frac{\partial v_i}{\partial t}
                            + v_k\frac{\partial v_i}{\partial x_k}
                            \right)
                          =
                          - \frac{\partial P}{\partial x_i}
                          + \frac{\partial}{\partial x_k}
                            \left\{
                                \mu\left(
                                     \frac{\partial v_i}{\partial x_k}
                                    +\frac{\partial v_k}{\partial x_i}
                                    -\frac{2}{3}\delta_{i,k}\frac{\partial v_l}{\partial x_l}
                                   \right)
                           \right\}
                          + \frac{\partial}{\partial x_k}
                            \left( \zeta \frac{\partial v_l}{\partial x_l} \delta_{i,k} \right),
                        \]
                        
                        Test 2:
                        \[
                          \varepsilon_{ijk\ldots} \varepsilon^{pqr\ldots}
                        = \det \left |
                                     \begin{array}[]{cccc}
                                        \delta_i^p  & \delta_i^q & \delta_i^p & \ldots \\
                                        \delta_j^p  & \delta_j^q & \delta_j^p & \ldots \\
                                        \delta_i^p  & \delta_k^q & \delta_k^p & \ldots \\
                                        \vdots      & \vdots     & \vdots     & \ddots
                                      \end{array}
                               \right |
                        \]
                        \end{document}
                        

                        А выглядит результат точно как на картинках — ведь Википедия использует TeX для вёрстки формул :)
                        • Хм, вполне терпимо. Спасибо.
          • Фишка в том что в латехе можно писать трехэтажные дроби с интегралами и т.п. вообще без проблем.
            Его делали для научных статей.
            • Из проблем. Для начала, нужно запомнить названия, к примеру, греческих букв. Далее, пока не скомпилируешь статью, не узнаешь, есть ли в формулах (и вызове команд) синтаксические ошибки или нет. Если есть, иногда бывает сложно понять, в чем конкретно поблема, то ли в не там закрытой скобке, то ли еще в чем…
              • На linux.org.ru были прошлогодние скриншоты человека из новосибирска, где он показывал предпросмотр формул в emacs. Я так понял там фишка была в том, что компилились только формулы и отображались так как они будут вызваны.
              • Попробуйте редактор с подсветкой синтаксиса.
                • Подсветка синтаксиса это что, замена синтаксическому анализатору?

                  Посмотрите, например, на программирование на Java в Eclipse, которая в фоне компилирует исходник. Вот так должна выглядеть современная система.

                  На выходе получается исходник, который гарантированно скомпилируется. Так же, как корректный документ получается в MSWord, OpenOffice, DocBook, Dita и т.п.

                  Мы живем в 21 веке, а не в 60-70 годы прошлого.
                  • Двадцать первый век — это когда ты в обязательном порядке используешь последние разработки тех или иных компаний? Нет, в этом слишком много коммерции, надо иначе рассматривать такие вопросы.

                    Ваша проблемы с Латынью решается любым серьезным редактором. В Емаксе можно подключить всякие подсказки, предпросмотр кода, формул, таблиц и все такое…

                    В Емаксе также можно компилить код на фоне…

                    ну и так далее.
                    • Даже кофе можно варить!?
                      • Хм. Кофе не пью, поэтому вопрос не интересовался. Да и вообще, кофе — это скорее про Эклипс ;)

                        Емакс — все больше по делу :)

                    • 21 век — это когда не ты работаешь на компьютер, а компьютер на тебя.
                  • >>Мы живем в 21 веке, а не в 60-70 годы прошлого.

                    Это не повод выбрасывать старые, проверенные временем технологии, которые к тому же до сих пор успешно используются и замены им не видно.
                    • А вот авторы Latex'а считают иначе:

                      \ifnum\count@>30
                        \typeout{^^J%
                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
                      !  You are attempting to make a LaTeX format from a source file^^J%
                      !  That is more than two years old.^^J%
                      !^^J%
                      !  If you enter <return> to scroll past this message then the format^^J%
                      !  will be built, but please consider obtaining newer source files^^J%
                      !  before continuing to build LaTeX.^^J%
                      !^^J%
                      !  LaTeX is re-issued every year in June.^^J%
                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
                      }
                         \errhelp{To avoid this error message, obtain new LaTeX sources.}
                         \errmessage{LaTeX source files more than 1 year old!}
                      \fi
                      


                      И это не единственная подстава в «идеальном» продукте.

                      • Из чего следует, что латех не совсем проверенный временем продукт, непонятно…
                        Вполне ясно написано, что используются слишком старые исходники латеха и лучше бы их обновить.
                        Вполне естественное и нормальное поведение для любой программы.
                        • Это не просто пишется, Latex от этого отказывается работать. За такое поведение программы, извините, надо яйца отрывать.
                          • Вообще-то, судя по всему, это предупреждение не латеха, а программы, которая его собирает.

                            Видимо вы невнимательно читали предупреждение:

                            >>If you enter to scroll past this message then the format^^J%
                            ! will be built, but please consider obtaining newer source files^^J%
                            ! before continuing to build LaTeX.^^J%
                            >>>

                            Перевод:
                            Если вы нажмете ентер чтобы пропустить это сообщение, то формат соберется, но пожалуйста найдите исходники поновее, перед тем как собирать латех.

                            З.Ы. Вы собирали латех из исходников годовой давности, при наличии новых, лежащих в свободном доступе??!!! OMG!!!
                            • Я прекрасно умею читать. А теперь попробуйте это воспроизвести на практике, теоретик хренов.
                              • Не надо было собирать латех из исходников. Пользуйтесь пакетным менеджером вашего дистрибутива.
                                • Он сам себя собирает из исходников. Компилируется в fmt-файлы, при установке, например. В автоматическом режиме никаких Enter и т.п. нет, просто не работает и все.
                                  • Жесть. Где тогда вы умудрились найти такой древнющий пакет для вашего дистрибутива?? О_о. Я тогда к такому дистру на шаг не подойду.
                                    • Вы, видемо, не совсем в курсе, как современный latex работает. Он производит прекомпиляцию системных пакетов в fmt-файлы, что бы работать быстрее. Это то, что делает команда «fmtutil.exe --all». Есть она в вашем дистрибутиве?

                                      У меня TexLive
                                      • Нет, как раз я в курсе. В __нормальных__ дистрибутивах невозможно использование настолько устаревших исходников все еще разрабатываемой программы. И это ни в коем случае не проблема латеха.
                                        А команды fmtutil.exe у меня увы нет. Есть только fmtutil.
                                        • fmtutil.exe и fmtutil — это одно и тоже.
                                        • Каких устаревших исходниках, о чем вы?
                                          • Ладно,… переведу еще раз.

                                            >>>
                                            You are attempting to make a LaTeX format from a source file^^J%
                                            ! That is more than two years old.^^J%
                                            ----------skipped--------------
                                            \errhelp{To avoid this error message, obtain new LaTeX sources.}
                                            \errmessage{LaTeX source files more than 1 year old!}
                                            >>>

                                            Вы пытаетесь собрать формат латеха из исходных файлов, которым старше на более чем 2 года.
                                            -----------пропущено-----------------
                                            Чтобы не получать это сообщение об ошибке, достаньте новые исходники латеха.
                                            Исходники латеха устарели более чем на год!

                                            ?????..

                                            • Там написано: «которые старше двух лет», а не «устарели» (outdated). А это не одно и тоже. Вот вы старше двух лет, вы уже устарели? Или Windows Vista старше двух лет, она тоже устарела? Слово «устаревшие» вы домыслили сами.

                                              Потом, не дело программы решать за пользователя, что с какого-то момента она не должна работать. Хороши тоном является предупредить «warning», а не вывести сообщение об ошибке «error».
                                              • Понимаете… как бы издательская система латех и ОС это несколько разные вещи. Если для ОС допустимо быть старше на 2 года, то для формата латеха это недопустимо, ибо они развиваются, как это ни странно.
                                                При использовании устаревших форматов есть вероятность того, что dvi файл на выходе будет отличаться от того, который был бы получен с новым форматом, что недопустимо для латеха. В __нормальных__ дистрибутивах, повторюсь, использование такого старья ___в принципе___ невозможно.
                                                Кроме того, использование вытащенных неизвестно с какой антресоли древних исходников, при наличии новых ___в свободном доступе___ кажется мне просто верхом идиотизма. Такое ощущение, что это сделали намеренно для разжигания флейма в этом треде.
                                                Посему обсуждать далее вопли «вот какой Латех нехороший, он не дает пользователю использовать устаревшии версии» считаю бессмысленным.
                                                • Извините, но это бред. Время вам разъяснит, почему. Сейчас оставайтесь на своей точке зрения.
                  • Вы видимо статью не внимательно читали :)
                    Обычно дистрибутивы LaTeX не содержат средств для работы с верстаемым текстом, поэтому приходится использовать дополнительные редакторы или интегрированные оболочки. Многие хвалят Lyx (кроссплатформенная), TexMaker (кроссплатформенный), Kile (*nix) и WinEdit (Windows).
                    Как видите, для теха есть и визуальные редакторы, так что проблем с компиляцией не возникает даже у новичков.
                    • Я вам сейчас расскажу страшную историю про WinEdit.

                      Не знаю как сейчас, а в его старых версиях была встроена деструктивная функция: при кривой регистрации он портил прозвольные файлы на диске.
                      • Пользуюсь Lyx :)
  • НЛО прилетело и опубликовало эту надпись здесь.
  • Скачал книжек, описанных в посте, буду учить. Надеюсь к следующему топику освою основы. Спасибо за блог.
  • Кстати, добавьте в преамбулу помимо 12pt ещё и a4paper. По умолчанию, если мне не изменяет склероз, размер бумаги letter?
    • Кстати, о литературе: я не читал новые издания книги Львовского, но ранее он использовал нестандартную классификацию (потому что стандартной не было), не совместимую с нынешним стандартным пакетом babel. Я учился по книге Котельникова и Чеботаева «Издательская система LaTeX2e».
    • я компилил pdf-ку так: dvipdfm -p a4 diplom.dvi, поправил статью.
      • А поля-то всё равно на letter, не так ли?
        • А это как настроите в стиле.
  • Еще есть vim и плагин к нему vim-latex (кроссплатформенно) с огромным количеством шорткатов, которые лично мне кажутся очень удобными.
  • Есть ещё оболочка WinShell (http://www.winshell.de/). Не знаю, насколько она хороша по сравнению с другими, но вполне работает. Когда мне внезапно надо было переделать статью из ворда в Tex или Latex (вообще ничего не зная о последних), WinShell очень помогла.
  • beq, tetex заморожен с 2006-го года. Теперь только texlive. Поправьте, пожалуйста.

    Некоторые полезные ссылки:

  • LaTeX online;
    Львовский online.
    • Внес изменения в статью, спасибо.
  • у меня вот были очень серьезные проблемы с TexMaker`ом. Не могу сказать какая версия, но платформа Gentoo Linux. Файл сверстался хорошо, и в pdf сконвертился, и сохранился… но когда захотел его открыть в нем же, то… не смог этого сделать. Потом специально повторил эксперемент — тоже самое. Теперь верстаю в Kile — все что нужно там есть, а WYSIWYG в данных вещах не очень нужен — лучше уж выучить синтаксис LaTeX
  • а как обстоят дела с поддержкой unicode?
  • Хорошее начало.
    Про LEd отдельное спасибо.

    Итак, учитывая все выше сказаное — хотелось бы узнать следующие.
    У меня задачи довольно банальные. Мне надо генерировать всякие архитектурные документы для печати (типа инженерные нагрузки и т.п.). Понятно, что для этого нужен пакет ESKD. Хочется побольше узнать о генерации текста из разных шаблонов.
    И второе — хочется приспособить LaTex для печати договоров — подскажите мне стиль и класс подходящий для этого.

    Всем спасибо.
    Да и еще хотелось бы побольше примеров связанных с коммерческим использованием, то есть не для написания диссертаций и т.п. А именно для реального применения в фирме.
  • Круто! Ещё! Только не используйте в дальнейших примерах cp1251 — будущее за UTF-8.
  • Латех действительно очень крутой. Кнут изобрел его «походя»
  • Вобще-то у меня никогда не возникало потребности в решении таких задач, но написано хорошо и читать интересно. Так что продолжайте в том же духе.
  • Я латехом пользовался когда учился ибо в некоторые журналы брали статьи в нем и действительно штука очень удобная — у меня только положительные впечатления от процесса создание документа вида «статья научная» которую в ворде задолбишся набирать со всеми формулами (что особенно круто в латехе это написание формул и автоматическое проставление ссылок на литературу и выделение абстракта и авторов сразу по всем правилам)

    Но конечно же большой минус это то что сходу его ничем не просмотриш на неподготовленом компе, по моему формат бы ожил если бы позволял генерить PDF (может сейчас уже до этого кто то додумался).
    • Не совсем понятно, что имеется ввиду под «позволял генерить PDF»? PDF и сейчас можно сгенерить любой реализацией LaTeX. Проблема как я понял в том, что на машине на которой не установлена эта реализация .tex — файл не посмотришь. Минималистичный набор утилит, который можно было бы скачать и им сгенерить pdf-ку по моему не выход. Могут понадобиться пакеты и тогда все равно придется качать тот же MikTex. Это действительно некоторый недостаток, но с другой стороны — если надо обмениваться файлами — лучше обмениваться pdf-ом.
  • Было бы очень здорово, если бы автор в одном из следующих выпусков блога, уделил внимание обзору и сравнению редакторов (возможно точнее подет сказать IDE) для LaTex, в том числе и под Windows.
    • В данной теме я не компетентен. Под Windows пользовался только связкой Far+Colorer+bat-файл, а также немного texlipse.
  • создатель MiKTeX, кстати, молодец. сделать под винду рабочий дистрибутив со всем, что только есть, и что работает без всяких плясок с бубном — это надо иметь призвание имхо.
  • Добавьте к средам разработки latexsuite для vim, иногда называемый vim-latex. Работает везде.
  • Предлагаю добавить ссылку на раздел научного форума dxdy.ru/texnicheskie-obsuzhdeniya-f33.html
    Спасибо за основание блога, сейчас напишу сюда топик =)
    • Добавил ссылку и благодарность )
  • Вот ссылки:
    vim
    vim-LaTeX
  • Только не WinEdit а WinEdt. Ну и стоит все же отметить, что она платная.
  • Только что запостил топик про графические возможности LaTeX. К сожалению, из-за недостатка кармы в общем блоге его разместить не смог. Так что переходите по ссылке, кому интересно:
    http://kotomanov.habrahabr.ru/blog/48099/
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.