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

1. Problem
По моему самое распространенное занятие хомосапиенсов, знакомых с компьютерами это набирание текста. Тут вам и подготовка документов, работа над книгой, написание статей, как тупых так и научных (часто тупых) и т.д. Список можно продолжать бесконечно. Такие программы как Microsoft Office, Open Office стоят практически у каждого из нас даже если октрывали мы их только после установки, чтобы посмотреть и воскликнуть "Ах скока кнопак! " или "Ах, крута, какой кружочек слева наверху!". Неважно. Факт остается фактом.

В моем случае дело заходило дальше. Когда я учился и работал в лаборатории прикладной электродинамики мне приходилось, помимо всего прочего, и графоманить, а именно писать статьи для различных конференций, таких как DIPED. Вобщем дело я вам скажу не из приятных. Особенно когда работу, сделанную на лист нужно растянуть на листа 4-5. Приходилось прибегать к исскуству могучего Бога Копипаста и создавать новое из праха старого. Но мы сейчас не об этом.
Самое болезненное во всем этом деле было непосредственное создание документа по образу и подобию научной статьи. Были даны определенные параметры документа, которые надо было соблюдать. Когда колличество листов, напичканных страшными формулами, еще более страшными картинками распределения поля, графиками и т.п. начинало превышать лимит, приходилось заниматься "монтажем" статьи. Вот тут и начиналось интересное. Удалив одну картинку вся статья превращалась в бессмысленный набор слов. Представьте себе, что такое происходило постоянно. К тому же при увеличении объема информации становилось дико сложно делать какие-либо изменения. А написание одной формулы занимало....Вобщем, меня как инжинера, процесс "дизайна" статьи дико бесил (выражаться не буду).

2. Solution
Немного истории, чтоб стало понятно о чем пойдет речь.
LaTeX (чит. латех) - это язык разметки документа, а так же система подготовки документа. В основном используется в научных кругах для создания научных статей, дипломных работ, диссертаций и т.д.
Основным преимуществом этой системы является тот факт, что можно забыть о форматировании!! Более того! Форматировать текст в ЛаТеХе не желательно, так как может возникнуть конфликт с форматированием которое делает сама система.

Буквально два месяца назад мой group-mate решил попробовать эту систему для написания репорта к очередному домашнему заданию. Было начало семестра, так что время можно было уделить на очередной гимор. Когда после двух дней!!!(не двух часов как обычно) работы над репортом он показал мне результат я был просто шокирован работой! Мне казалось что я читаю статью какого-то IEEE журнала! Я признал что усилия были оправданы, так как документ был превосходен. Немного колеблясь я все-же решил последовать его совету.
Так как мой друг работает в Линуксе, то мне, как работающему под Винду, пришлось находить альтернативы всем программам необходимым для работы. В итоге я пришел к следующему решению.
Система TeX: MiKTeX - компиллятор, множество библиотек, стилей, фонтов.
Система сама по себе ничего полезного для редактирования документа не дает. Она является текстовым процессором.
Самым главным является выбор редактора. Вот тут мне пришлось немного поискать, так как человеку избалованному Visual Studio, NetBeans переходить на ноутпад и компиллировать из коммандной строки было влом, я решил найти хороший редактор. И получилось! Внимание! TeXnicCenter! Отличная среда для создания ТеХ документа. Немного правда пришлось попыхтеть над настройками, но в итоге получилось очень даже приятно. Вот мой ТеХникЦентр

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

3. Evaluation
Самая главная фишка работы с системой ТеХ это правильно начать! К счастью, наученный опытом моего друга я не стал наступать на те же грабли и начал читать документацию из правильных ресурсов.
Сайт содержит основную документация по ЛаТеХ-у. Написано очень классно. Напрягаться не надо. Все рассказано и тут же показано. На мой взгляд прекрасное и главное правильное введение в Систему ЛаТеХ.
Скажу так, мне, как программисту, еще никогда не было так приятно писать репорты! Все очень структурированно, логично и просто.
Приведу один пример.
Допустим нужно создать документ в две колонки и параграфами.
Единственное что для этого нужно в ЛаТеХе это просто указание следующих команд
\documentclass[a4paper,english,10pt,twocolumn]{article}

Читаем по словам. Нам нужен документ размером А4, язык по умолчанию английский, размер шрифта 10pt, в две колонки. Стиль - статья. И все! Одной строчкой мы задали структуру документа. Дальше нам ничего делать не надо. Как бы мы не писали текст, в конечном виде он будет иметь структурированную форму.
Система ЛаТеХ помимо форматирования документов так же богата набором библиотек, которые можно использовать в процессе редактирования.
К примеру, я всегда боялся писать псевдокод в документе. Почему? А потому что, для того чтоб придать 5 строчкам вид алогоритма приходилось тратить на форматирование полчаса! В ЛаТеХе эта проблема не стоит. Почему? Потому что есть библиотека позволяющая просто и красиво написать псевдокод.
Вот кусок кода ЛаТеХа,который форматирует псевдокод
\begin{algorithmic}
\IF {$i\geq maxval$}
\STATE $i\gets 0$
\ELSE
\IF {$i+k\leq maxval$}
\STATE $i\gets i+k$
\ENDIF
\ENDIF
\end{algorithmic}

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

4. Conclusion
Я не могу себе представить, как я до этого умудрялся работать в Ворде. Это же так неудобно! ЛаТеХ действительно наилучшее решение для тех кто хочет сделать качественный документ не гиморясь с форматированием. Да что тут говорить, эта система существует уже 30 лет!! А прожить столько времени в софтверном мире это почетно!

4 comments:

Atria said...

)))))
Спасибо за инфу )
Я все боюсь соммандных строк а ЛаТеХ мне казался каким-то диназавром для избранных :)

захотелось попробовать )
Осталось найти уйму времени :)

Palmer Eldritch said...

На самом деле, именно тебе в скором будующем он может ой как пригодиться :) Так что именно тебе я бы посоветовал начать ASAP ;)

Atria said...

а кстате,
я совсем не вкурсе,
как потом смотреть текст написанный в таком вот едиторе ? :))

на другом компе всмысле - во что он сохраняет ?

Palmer Eldritch said...

Ах да, забыл добавить.
Сохраняет или в PDF, или PostScript, или DVI. так что как видишь проблем с портабельностью не будет.
Я позже сделаю более подробный пост про то как писать в ЛаТеХе