TeX/LaTeX vs. все все все
От: Mamut Швеция http://dmitriid.com
Дата: 05.09.08 12:46
Оценка: 5 (2) +3 :)))
В общем, не верю я, что книги набирают в TeX. Или сколько-нибудь приличное количество документации/текстовой информации вообще.

Плюсы TeX'а:
— автоматическая "верстка" для печати
— удобный способ вставлять ссылки на главы/разделы/текст/рисунки/таблицы, находящиеся в любом месте документа — номер и страница подставляются автоматически (команды \label, \ref, \pageref)
— удобно разделять большой документ на несколько маленьких поддокументов и сводить их в один с помощью команды \include
— потенциальная возможность изменить все и вся (общий вид документа, текста, страницы и т.п.)

Минусы TeX'а:
— есть два уровня знания TeX'а.
-- Уровень 1. Not So Short Guide to LaTeX, после которого все, что можешь делать, — это пособия для математики в школе
-- Уровень 2. Гуру TeX'а, который может делать вот такое, но никогда не признается, как

Между этими двумя уровнями ничего нет. Ты или уровень 1 или сразу умеешь делать что-то вроде:
\makeatletter 
    \newlength{\numberheight}
    \newlength{\barlength} 
    \makechapterstyle{veelo}{% 
        \setlength{\beforechapskip}{10pt} 
        \setlength{\midchapskip}{15pt} 
        \setlength{\afterchapskip}{10pt} 
        \renewcommand{\chapnamefont}{\normalfont\LARGE\flushright} 
        \renewcommand{\chapnumfont}{\normalfont\HUGE} 
        \renewcommand{\chaptitlefont}{\normalfont\HUGE\bfseries\flushright} 
        \renewcommand{\printchaptername}{% 
            \chapnamefont\MakeUppercase{\@chapapp}} 
        \renewcommand{\chapternamenum}{} 
        \setlength{\numberheight}{18mm} 
        \setlength{\barlength}{\paperwidth} 
        \addtolength{\barlength}{-\textwidth} 
        \addtolength{\barlength}{-\spinemargin} 
        \renewcommand{\printchapternum}{% 
            \makebox[0pt][l]{% 
                \hspace{.8em}% 
                \resizebox{!}{\numberheight}{\chapnumfont \thechapter}% 
                \hspace{.8em}% 
                \raisebox{25pt}{\resizebox{\barlength}{\numberheight-20pt}{\colorbox{nicered}{}}}}}%
        %        \rule{\barlength}{\numberheight}}
        %} 
        \makeoddfoot{plain}{}{}{\thepage} 
    } 
    \makeatother


Причем по отдельности это все более-менее понятно, а вместе — Как перейти от первого уровня о второму — тайна сия великая есть

— таблицы — это мрак. Они хуже только таблиц в HTML'е, а я думал, что хуже ни ничего нет. И они еще не умеют автоматом переходить на другую страницу! Вот это страница в два ряда и три колонки:
\begin{tabular}
    {| l | l | l | l |}
    \hline SNGL & DBL & TRPL & SNGL + 1 CHLD 0-6 \\
    \hline 10   & 20  & 30   & 10 \\
    \hline 
\end{tabular}


мрак

— можно оформить документ так, как ты хочешь. агащазблин. Доступно два с половиной стиля документов (document class), каждый похож на другой в 90% случаев и абсолютно несовместимый ни с одним на оставшиеся 10%. То есть в article нет setchapterstyle, а в memoir есть, а большая часть команд есть и в том и в другом

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

— о, русский язык. Если бы не TexLive, я бы давно на все плюнул, но в нем есть нужны пакеты. Многоязыковая поддержка? Забудьте. Каждый отдельный язык надо включать/подключать отдельно. Несмотря на UTF-8 и прочие прелести современной цивилизации. Вот эта чудная, удивительно интуитивная команда позволит использовать русский:
\usepackage[T2A]{fontenc}
\usepackage[utf8x]{inputenc}  % more recent versions (at least>=2004-17-10)
\usepackage{ucs}
\usepackage[english,russian]{babel}


Использовать, но не везде. Например, из-за babel я не смог использовать один чудный стиль для memoir, потому что там конфликт настроек пакетов.

И в математических формулах русский нельзя использовать, ошибка

И в листинга кода нельзя. А как комментарии писать? Просто:
\lstset{inputencoding=utf8x, extendedchars=\true}


При этом не факт, что заработает. Например, умляуты (как, вы хотите писать по-немецки???) в таком случае будут смещены на один символ влево. А без той команды будут вызывать ошибки

— ссылки на таблицы и рисунки. Если label в таблице/рисунке стоит до собственно таблицы/рисунка, то \ref будет указывать не на таблицу/рисунок, а на секцию документа, в котором это находится. Чтобы label правильно сработал, обязательно надо ставить label сразу за собственно таблицей/рисунком

— а эти чудесные правила размещения floats! floats — это таблицы и рисунки. Если ты ставишь опцию h (here), и места на странице для рисунка достаточно, то очень вероятно, что рисунок все равно окажется на следующей странице. И если он на той странице будет один, то он будет посередине страницы, даже если у него высота 2 сантиметра и у него стоит опция t (top)

— при разделении на мелкие поддокументы нет никакой возможности просмотреть, как будет (примерно) выгдядеть именно этот поддокумент. Логика понятна (из-за ссылок ссылками в \ref), но не всегда удобно





Вы не поверите, но TeX'ом я сейчас пользуюсь. Довольно удобно писать ТЗ — сразу тебе и сожержание и кросс-ссылки. Но в целом — это, конечно, мрак. Для набора технических текстов на английском языке — самое то. Но не более


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.