LINUX.ORG.RU

LaTeX - компьютерная типография


0

0

По согласованию с редакцией Linux Format выложил "Всё о таблицах" (сейчас уже понимаю что не всё, но базовый функционал присутствует :) ) или девятая часть из цикла "LaTeX - компьютерная типография" в открытый доступ.

LaTeX (произносится как "латех" или "лэйтех") - наиболее популярный набор макрорасширений к TeX, который значительно облегчает набор сложных документов.

В случае проблем, вопросов, замечаний и пожеланий обращаться непосредственно автору, то есть ко мне (e-mail есть в тексте).

P.S. Есть предварительная договорённость с издательством bhv (БХВ ?) о выпуске книги на основе этих статей. Книга выйдет ориентировочно в начале следующего года. Размер - примерно в 250 страниц только про LaTeX. Я смотрю на то, что получается и позиционирую это как начальный учебник + краткий справочник по пакетам (будет каталог примерно в 30 страниц почти всех сколько-нибудь с моей точки зрения полезных пакетов и стилей, присутствующих в TeX Live - я постарался прошерстить всё). Договорённости пока только предварительные и не совсем понятно что же в конце получится.

>>> Подробности

Ответ на: комментарий от anonymous

>>"lout, lout, lout",-шёпотом подсказывают из зала.

А много издательств принимают текст в loute? Или его можно легко и без потери форматирования конвертировать в rtf?

anonymous
()
Ответ на: комментарий от anonymous

>А много издательств принимают текст в loute? Или его можно легко и без потери форматирования конвертировать в rtf?

А есть для него приличный редактор класса emacs+auctex или, на худой конец, kile? Или мы опять обсуждаем сферического коня в вакууме, который реально никто и не использует?

ptarh ★★★★★
()
Ответ на: комментарий от anonymous

to anonymous (*) (16.09.2007 15:46:15)

Никогда больше не задавай таких вопросов. Ими можно убить
наповал. У меня мозг чуть не закипел ;)

annonymous ★★
()
Ответ на: комментарий от ptarh

> А есть для него приличный редактор класса emacs+auctex или, на худой конец

Есть только на толстый конец. МИкросос Врод называется.

annonymous ★★
()
Ответ на: комментарий от annonymous

Это твои проблемы.

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

anonymous
()
Ответ на: комментарий от ptarh

>А есть для него приличный редактор класса emacs+auctex или, на худой конец, kile?

- А для него есть дефрагментатор оперативки и винта?

- Нет, ибо там это просто не нужно - система такая.

(Из разговоров о преимуществе Linux).

anonymous
()
Ответ на: комментарий от anonymous

Гхы-гхы, а любая задача на функциональном языке делается в 100 строк (из разговоров о преимуществах функционального программирования)

anonymous
()
Ответ на: комментарий от anonymous

>Мдя. Это просто чемпионат по скоростному сливу.

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

dn2010 ★★★★★
()
Ответ на: комментарий от dn2010

>>Неудовлетворённость жизнью вообще и отдельными её проявлениями в частности за версту видно.

не переживай. Первое место за тобой с большим отрывом.

anonymous
()
Ответ на: комментарий от anonymous

Задачу сложения 2-х чисел сделаешь на 100 строк? Ну ты монстр.

anonymous
()
Ответ на: комментарий от ptarh

> А есть для него приличный редактор класса emacs+auctex или, на худой конец, kile? Или мы опять обсуждаем сферического коня в вакууме, который реально никто и не использует?

Да это вполне нормальная система - её вполне можно использовать. Проблема в том, что она сравняется с LaTeX по количеству решений лет через двадцать и тогда же она перестанет влезать на DVD :)

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

>>s/\documentclass{mystyle}/\input{mypreheader}/

>Нет так не годится. Я хочу ещё option, чтобы оно могло отключать удвоенный интервал ;)

>Типа

>\documentclass[1line]{mystyle}

Ну тогда две строчки:

%\input{mypreheader}

\input{mypreheader-1line}

или

\input{mypreheader}

%\input{mypreheader-1line}

В зависимости от настроения :)

А кроме шуток - если нужно всего навсего загрузить набор определённых пакетов с определёнными опциями и завести свои опции - достаточно разобраться с пятью страницами приложения А.3 "Путеводителя по пакетам LaTeX и его расширениям".

А вот если хочется что-то запрограммировать, то да - рекомендую убойный учебник: "Всё про TeX" от мастера - мозги прочищает замечательно. Я правда смог за первый раз прочтения осилить только первый уровень сложности - по всей видимости мне надо почитать ещё :)

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> @ParaIndent { 2.00f @OrIfPlain 5s }

IMHO число набранных сущностей совпадает с тем, что есть в LaTeX. LaTeX-переменные более длинные. Это может быть плюс - более информативные, а может быть минус - больше приходится клавиатуру топтать. IMHO данный пример совершенно одинаков и там и там по затратам. Если конечно не рассматривать \usepackage{indentfirst}.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Речь шла про красоту синтаксиса, а не по сущности. Просто загрузи стилевые файлы Latex и Lout, помести их рядом и сравни.

В первом случае - каша из слов. Во втором - потрясающий (по сравнению с Latex во всяком случае) по структурированности конфиг.

Может lout и проигрывает Latex по функциям, зато представляет из себя пример того, как надо писать программы (и здесь я не про код, а про пользовательский интерфейс и масштабы программы).

anonymous
()
Ответ на: комментарий от anonymous

> Речь шла про красоту синтаксиса, а не по сущности. Просто загрузи стилевые файлы Latex и Lout, помести их рядом и сравни.

LaTeX - красивее :) Всё там достаточно понятно и главное работает абсолютно надёжно.

> Может lout и проигрывает Latex по функциям, зато представляет из себя пример того, как надо писать программы (и здесь я не про код, а про пользовательский интерфейс и масштабы программы).

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

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> Для тех кто занимается хотябы наукой под линухом. И пишет статьи на конференции

да почти на всех наших научных конференциях требования: формат doc, 14й шрифт Times New Roman, полуторный интервал

и где тут место latex'у ?

vadiml ★★★★★
()
Ответ на: комментарий от Evgueni

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

>>А вот если хочется что-то запрограммировать

Вопрос-то, не в этом. 

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mystyle}
 ...
\newcommand{\Interval}{\linespread{1.3}}
\DeclareOption{1line}{\renewcommand{\Interval}{\linespread{1}}}
\DeclareOption{2line}{\renewcommand{\Interval}{\linespread{1.6}}}
\DeclareOption*{%
    \PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass[a4paper,12pt,notitlepage,portrait]{article}
...
\Interval
...

Просто эти пляски с саблями требуются для такой простой вещи, 
как поменять ширину интервала в стилевом файле.

anonymous
()
Ответ на: комментарий от vadiml

> да почти на всех наших научных конференциях требования: формат doc, 14й шрифт Times New Roman, полуторный интервал

IMHO это пример неверного "простого" решения. И эту ситуацию очевидно нужно исправлять.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

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

Если бы у бабушки было бы то, что у дедушки, то она бы не была бы бабушкой. Следует сформулировать настоящую задачу. В данном случае я совершенно не вижу смысла в Вашем упражнении. IMHO, вместо того чтобы городить кучу опций 1line, 2line достаточно воспользоваться стилем setspace, где всё это уже сделано.

А для стоящей задачи и часа не жалко, тем более если Вы её собираетесь решить окончательно.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

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

Евгений, ну признайте, что архитектура Latex, касающаяся работы со стилями (по крайней мере их создания) ужасна.

anonymous
()
Ответ на: комментарий от annonymous

>>не путай риторику с обычной глупостью.

Вы я вижу не успокоились и пытаетесь возразить что-то содержательное?

Ну, тогда пара подсказок. Издательство Elsevier принимает статьи в lout? А для журнала LinuxFormat я могу конвертировать статью написанную в lout в rtf или doc?

anonymous
()
Ответ на: комментарий от Evgueni

>>достаточно воспользоваться стилем setspace, где всё это уже сделано.

А вы не покажете, как это делать? Интересует процесс передачи опций класса этому стилю.

anonymous
()
Ответ на: комментарий от anonymous

> На каждый пук свой стиль? Это как на каждого юзера свой конфиг. Конфиг ужасно запутан, и поэтому создали кучу решений в виде DVD-диска на все случаи жизни.

А почему Вас это напрягает? Какой конфиг и зачем он нужен?

> Евгений, ну признайте, что архитектура Latex, касающаяся работы со стилями (по крайней мере их создания) ужасна.

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

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

>>достаточно воспользоваться стилем setspace, где всё это уже сделано.

> А вы не покажете, как это делать? Интересует процесс передачи опций класса этому стилю.

? Документация к пакету setspace. В главе вёрстке я рассматривал этот пакет.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Поправка: документация к setspace отсутствует. Пакет описывается во втором путеводителе заведомо, также можно посмотреть на комментарии в коде пакета.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

а) Зачем Вам это делать? Используйте в преамбуле

б) Опции пакетам скармливает команда \PassOptionsToPackage{список опций}{имя пакета}, а затем загрузка пакета с помощью \RequirePackage{имя пакета} (по хорошему нужно передать и номер версии через необязательную опцию - чтобы гарантировать что более старый пакет загружен не будет)

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>Какой конфиг и зачем он нужен?

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

>А почему Вас это напрягает?

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

>Не признаю - эта система доказала свою работоспособность и поэтому не может быть ужасной.

No comments...

anonymous
()
Ответ на: комментарий от anonymous

> No comments...

Что поделаешь - Вы же сами сказали что я физик и я как физик люблю рабочие решения, а не красивые.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>Вы же сами сказали что я физик

Гениальная фраза...

anonymous
()
Ответ на: комментарий от annonymous

>Есть только на толстый конец. МИкросос Врод называется.

А что с ним можно делать? Создавать документы с второсортным форматированием и видом? :)

ptarh ★★★★★
()
Ответ на: комментарий от anonymous

Писать без элементарной подсветки синтаксиса и поддержки структуры документа - удел мазохистов :)

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

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

anonymous
()
Ответ на: комментарий от anonymous

Это что, всё что можете предложить? Вы хоть вообще смотрели, какой функционал предоставляют редакторы типа kile и emacs для редактирования документов в latex? Но в общем, и так всё ясно - ничего подобного для lout не было и не намечается. Пишут его адепты(если они вообще есть, ибо таковых я нигде не встречал) очевидно в блокноте от винды. Для проекта 84 года что-то маловато. Evgueni совершенно прав - рабочие решения на красивые не меняют. Не говоря уж о том, что красота - вещь субъективная.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

>Вы хоть вообще смотрели, какой функционал предоставляют редакторы типа kile и emacs для редактирования документов в latex?

Смотрел, ничего особенного.

http://www.lorquotes.ru/view-quote.php?id=160

>Но в общем, и так всё ясно - ничего подобного для lout не было и не намечается.

Ну, если кто-то не знает про vim...

>Evgueni совершенно прав - рабочие решения на красивые не меняют.

Айда всем на винду. Рабочее, после сотни подпорок, решение, мейнстрим. В отличие от красивого, но для адептов, Linux.

anonymous
()
Ответ на: комментарий от anonymous

>Ну, если кто-то не знает про vim...

Что-то я не вижу ничего, кроме подсветки синтаксиса. Это вся поддержка? Вы в свободное время, видимо, клоуном подрабатываете. Итак, ещё раз, для непонятливых - где редактор под lout с фунционалом, сравнимым с kile и emacs+auctex?

>Айда всем на винду. Рабочее, после сотни подпорок, решение, мейнстрим. В отличие от красивого, но для адептов, Linux.

Передёргиваем? Впрочем, чего ещё ожидать от анонимуса. Практически в каждом универе есть своя TUG. Ни одной L(Lout)UG ещё в природе не видел. Ещё раз, разницу между между работающим решением с пакетами на все случаи жизни, помощью на каждом углу и академическим концептом, который очевидно никто толком и не использует(отсутствие LUG и приличных редакторов/расширений для имеющихся - лучшее доказательство) понимаете? Если не понимаете, то незачем на вас и время тратить - вы же сюда всё-равно только флеймить ходите.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

>Практически в каждом универе есть своя TUG. Ни одной L(Lout)UG ещё в природе не видел. Ещё раз, разницу между между работающим решением с пакетами на все случаи жизни, помощью на каждом углу и академическим концептом, который очевидно никто толком и не использует(отсутствие LUG и приличных редакторов/расширений для имеющихся - лучшее доказательство) понимаете? Если не понимаете, то незачем на вас и время тратить - вы же сюда всё-равно только флеймить ходите.

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

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

anonymous
()
Ответ на: комментарий от anonymous

>Какая близкая аналогия.

Совершенно никакая аналогия. Линукс - вполне рабочее решение и примеров тому достаточно. Можете сходить к Novell, Red Hat, IBM и т.д. да осведомиться. А вот ваше предложение - менять линукс/винду на какой-нибудь Hurd или minix, ибо там де концепты более стройные, конфиги симпатичные, да костылей нет. Оно может и так, только никого это не интересует. Можете поугадывать, почему. Вот и ваш lout из тех же степей. Или можете мне показать, как мне делать вещи, аналогичные тем, что я могу сделать с latex-beamer или dinbrief? Можете мне пакеты с аналогичным функционалом самому для них писать, или вы для меня их напишите? Если напишите, тогда можете и приходить, я не фанатик, мне всё-равно на чём писать - лишь бы результат был приемлим. Пока я, правда, не вижу, чем lout должен мне облегчить жизнь в сравнении с latex, если аналогов используемым расширениям там просто нет, да и писать на нём толком на в чём. Фанат - пишите и развивайте, флаг вам в руки и зелёный свет. Агитировать же переходить на lout с latex - что-то из царства фантазий.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

>Линукс - вполне рабочее решение и примеров тому достаточно.

Ага, на серверах да в правительственных структурах с ограниченным кругом задач. А в науке, отличной от математики и физики, решение никакое.Не стоит проталкивать, ограничившись виндой, или всё-таки лучше подпилить недостающее ПО?

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

anonymous
()
Ответ на: комментарий от anonymous

>Ага, на серверах да в правительственных структурах с ограниченным кругом задач. А в науке, отличной от математики и физики, решение никакое.Не стоит проталкивать, ограничившись виндой, или всё-таки лучше подпилить недостающее ПО?

Всякое решение хорошо в своей нише. Или вам кто-то рассказал, что винда хороша во всех? Вас жестоко обманули. Мне вот только хочется знать, в какой нише lout превосходит latex с кучей докуменатации, ctan с решениями почти на все случаи жизни(да, бывают среди них и не особо прямые, так для lout и таких нет) и мощнейшими редакторами?

>Вообщем вы, батенька, ретроград.

Я, батенька, практик, а не вьюноша с горящими неземным красными светом глазами. И я решаю имеющиеся задачи подходящими и имеющимися инструментами, а не питаюсь байками о превосходстве сферических коней в вакууме над работающими решениями. Ибо кони в вакууме мне документы писать не будут. Ещё раз говорю - мечатает о мировом превосходстве lout? Развивайте, флаг вам в руки и барабан на шею. Когда его можно будет использовать для тех же задач и так же просто, как latex, с удовольствием перейду, при условии что синтаксис понравится. А байки о светлом будущем можете другим рассказывать - мне документы писать надо, а не сказки слушать.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

>Мне вот только хочется знать, в какой нише lout превосходит

Где шла речь о превосходстве lout? Читать комменты внимательно как бы не нужно, ибо лор? Может, следует посмотреть, в связи с чем начались разговоры про lout?

>Я, батенька, практик

Практики используют, но не создают. Не практики продвигают новшества, а фанаты. Так было с Linux, так есть со всем новым. Ибо хорошие вещи, как показывает история, бех фанатов могут затеряться в тени хорошо разрекламированных.

Но я не фанат lout. Я лишь проливаю всет на его положительные стороны, о коих говорилось выше, и кои кое-кто не читал ;)

anonymous
()
Ответ на: комментарий от anonymous

>Практики используют, но не создают. Не практики продвигают новшества, а фанаты.

Бох ты мой, кто же вам запрещает быть фанатом lout, писать под него, раз больше нравится, и его развивать? Только учите, что фанаты разные бывают и все фанаты всегда что-нибудь найдут в оправдание своей точки зрения, поэтому фанат lout ничем не лучше фаната latex или ворда. И это, конечно, ничего не меняет в том факте, что вещи, которые я делаю в латехе за 5 минут в lout за это время невозможны, ибо расширений просто нет. Но в ваших руках шанс изменить ситауцию и написать сходное кол-во расширений к lout, чтобы мы, реалисты и практики, немедленно ахнули и на него перешли. Только будьте к себе откровенны - не напишите и не измените ведь :) А поэтому конца гегемонии latex в этой нише пока не видно.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

>А поэтому конца гегемонии latex в этой нише пока не видно.

В какой нише? Создание физико-математических статей и презентаций? Ибо в остальном случае преимущества перед тем же вусивугом сильно меркнут. Невелика же ниша.

>Только будьте к себе откровенны - не напишите и не измените ведь :)

Естестно. Если мне начать переписывать всё, что плохо в мире ГНУ, я буду этим не один век заниматься.

anonymous
()
Ответ на: комментарий от anonymous

>В какой нише? Создание физико-математических статей и презентаций? Ибо в остальном случае преимущества перед тем же вусивугом сильно меркнут. Невелика же ниша.

В основном научные публикации, презентации - не такая уж и маленькая ниша. Что у wysiwyg она больше, нас волновать не должно - lout ведь метит в ту же нишу, что и latex, а не оспаривает первенство у ворда. Впрочем, с тем же dinbrief я пишу нормированные письма в кратчайшие сроки - задача под OO мне непосильная, ибо там я таких шаблонов просто не нашёл. У каждого пользователя latex наверняка найдётся пара таких приятных мелочей, и пока их нельзя будет удовлетворить под lout, никуда они не поползут - ибо синтаксис это одно, а красивое решение своих имеющихся задач - совсем другое.

>Если мне начать переписывать всё, что плохо в мире ГНУ, я буду этим не один век заниматься.

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

ptarh ★★★★★
()
Ответ на: комментарий от Evgueni

a) Я хочу странного, чтобы у меня преамбула имела девственно чистый вид, типа:

\documentclass[...]{}
\title{...}
\author{...}
\begin{document}
...

а все настройки осуществлялись опциями \documentclass

б) Вы попробуйте написать то, что вы советуете, и вы увидите, что всё равно потребуются команды вида \DeclareOption{onehalfspacing}. Просто чтобы отличать их от опций базового класса (article или что вы считаете правильным), которые перехватываются catch-all командой \DeclareOption*

anonymous
()
Ответ на: комментарий от anonymous

>>классом article пользоваться не стоит

> Каким же классом тогда стоит пользоваться?

В статье "Путеводитель по классам" я рассматривал их некоторое количество. IMHO или scrartcl из KOMA-script или ncc.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> a) Я хочу странного, чтобы у меня преамбула имела девственно чистый вид, типа:

И кто Вам мешает? Я вижу Вы сами знаете что нужно делать.

> б) Вы попробуйте написать то, что вы советуете, и вы увидите, что всё равно потребуются команды вида \DeclareOption{onehalfspacing}.

Ну во первых - я ответил на тот вопрос который был задан - моя телепатия в последнее время даёт сбои.

Во вторых - я надеюсь, что со временем Вы поймёте, что _не это_ основная проблема при программировании в том числе и на TeX/LaTeX. Часто удобством приходится поступаться ради прошлой и будущей совместимости и это в подавляющем большинстве случае оправдано.

Evgueni ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.