LINUX.ORG.RU

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


0

0

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

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

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

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

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

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

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

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

Будьте немного снисходительным. Онанимусов много, а Евгений один. В запарке можно и запутаться.

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

>И это ни в какой системе не делается просто и сложность программирования здесь совершенно не причём.

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

>Расшифруйте.

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

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

>> всё-таки хотелось бы увидеть форматирование

> http://pqrty.narod.ru/report2002.pdf

И? Что именно Вас восхитило? То, что люди стилями пользоваться умеют? Это нормально.

На стр. 14 и 35 куда-то делись уравнения (смотрю Acrobat Reader 7 под Linux), картинки жуткого качества, ну и некоторое количество мелких и не очень косяков (типа короткого минуса). Хотя это отчёт, так что пойдёт. То, что там описано, на сколько я понимаю, реализуется до сих пор без особого успеха.

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

>Вы хоть поняли, на что вы отвечали? Вы отвечали на пост, в котором говорилось, что использовать латех трудно из-за отсутствия стилей на сайте универа, в котором засилие ворда.

В Российских универах гостовская библиография и стиль dissert вполне прокатывают.

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

> Вы хоть поняли, на что вы отвечали? Вы отвечали на пост, в котором говорилось, что использовать латех трудно из-за отсутствия стилей на сайте универа, в котором засилие ворда.

Дайте угадаю: а стили для альтернативного текстового процессора на сайте универа присутствуют? Или там всё-таки набор рекомендаций типа печати через два интервала?

Берёте абсолютно любой класс (например класс disser или scrbook из KOMA-script) и незаморачиваясь пишите текст. Прокатывает. А в конце можно организовать печать через два интервала.

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

>В Российских универах гостовская библиография и стиль dissert вполне прокатывают.

Ха=ха-ха, мне была уготована участь использовать стиль "напиши, приходи, посмотрим, подкорректируем".

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

>Дайте угадаю: а стили для альтернативного текстового процессора на сайте универа присутствуют?

Нет.

>Берёте абсолютно любой класс (например класс disser или scrbook из KOMA-script) и незаморачиваясь пишите текст.

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

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

>мне была уготована участь

И что - в этом виноват Евгений?

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

ну там из таинств стиленаписания только двойной межстрочный интервал и оформление первой страницы вроде.

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

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

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

>>И это ни в какой системе не делается просто и сложность программирования здесь совершенно не причём.

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

IMHO lout нельзя сравнивать с LaTeX. Его можно сравнить с tex (компилятором), да и то боюсь многие особенности (математика однозначно) будут не в пользу lout, хотя есть и обратные примеры типа простых графиков и гистограмм - это уже реализовано в LaTeX. Если в нём легче создавать свой стиль, то это можно считать за плюс, хотя и не сильно большой по сравнению со спектром готовых решений имеющихся в LaTeX.

Если Вы используете lout и считаете, что это решение, то никто не запрещает Вам написать свою серию статей или книгу. Я, лично, не считаю это подходящим решением.

>> Расшифруйте.

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

Не понимаю. По-моему всегда сначала идёт типовая задача, а затем описание её решение. Задача сделать таблицу - описание что такое таблица - возможности по её созданию и оформлению.

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

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

А в чём смысл этого стиля, особенно если он уже есть?

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

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

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

Я хочу иметь свой личный стиль, где бы по дефолту стоял бы двойной межстрочный интервал. Чтобы я мог просто написать \documentclass{mystyle} и понеслась...

Я же не прошу чего-то сверхъестественного?

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

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

А что мешает просто выложить преамбулу?

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

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

>IMHO lout нельзя сравнивать с LaTeX. Его можно сравнить с tex (компилятором), да и то боюсь многие особенности (математика однозначно) будут не в пользу lout, хотя есть и обратные примеры типа простых графиков и гистограмм - это уже реализовано в LaTeX. Если в нём легче создавать свой стиль, то это можно считать за плюс, хотя и не сильно большой по сравнению со спектром готовых решений имеющихся в LaTeX.

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

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

Кстати, тот ужас готовых решений, что сейчас есть под Latex, приводит только к проблеме - необходимо полное описание пакетов, чтобы были положительные стороны их наличия. Меня, к примеру, удивляет, что для простого отступа первой строки нужно иметь пакет (IndenfFirst) с таким же неудобоваримым снтаксисом ,как и у стилевых файлов Latex, а не подать в преамбуле встроенную команду.

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

>>Вы хотите что-то сказать мне, но сбиваетесь на эмоции.

> Нисколько. Я пытаюсь вам сказать, что Латех+емакс+ауктех+рефтех+... хорошее средство для создания публикаций, но не нужно создавать у новичков иллюзии. Если целью является именно публикация, а не написание собственных мемуаров в назидание потомкам, то в большинстве случаев возникает необходимость конвертирования tex->rtf(или doc).

Вы IMHO не правы, потому что для назидания потомков, а не для создания книжек-однодневок нужен именно инструмент для создания книги от начала и до конца. Этим инструментом и является LaTeX. А то что его можно использовать и для создания публикации - это приятное дополнение.

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

>Написание стиля ради стиля не очень осмысленное занятие чтобы его поощрять.

Ещё бы, с таким синтаксисос стилевого файла. ;)

Это заявление примерно такого типа: забудьте о языках программирования, всё, что уже нужно, уже написали. Это касется как самих программ, так и скриптов. Вы ищете скрипты в сети при необходимости выполнить нужную вам работу или пишете их сами? Так вот, написание "скриптов" для Latex равносильно написанию их на brainfuck.

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

> lout - это именно высокоуровневый процессор аля latex. Узнал я о нём довольно недавно, поэтому пока изучаю. Из особенностей - прекрасный синтаксис стилевого файла. И lout был приведён в пример того, как в принципе стилевой файл может и должен выглядеть.

Понятно. Не спорю, но набора готовых решений это не заменит. И говоря LaTeX я имел в виду не программу, а совокупность решений - то есть дистрибутив LaTeX. Это, кстати, проблема как и с Unix - он уродлив, но работоспособен и чтобы вытеснить его недостаточно лучшего решения - нужно много лучшее. lout IMHO не является даже просто лучшим хотя бы по математике.

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

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

> Кстати, тот ужас готовых решений, что сейчас есть под Latex, приводит только к проблеме - необходимо полное описание пакетов, чтобы были положительные стороны их наличия. Меня, к примеру, удивляет, что для простого отступа первой строки нужно иметь пакет (IndenfFirst) с таким же неудобоваримым снтаксисом ,как и у стилевых файлов Latex, а не подать в преамбуле встроенную команду.

С indentfirst у меня такое подозрение что это скорее идеологическая проблема. Некоторые уважаемые в LaTeX-сообществе люди предпочитают не использовать его (и некоторые базовые учебники свёрстаны без него). А так IMHO ему место в misccorr если уж в babel запихать не получилось.

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

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

>Вы ищете скрипты в сети при необходимости выполнить нужную вам работу или пишете их сами? Так вот, написание "скриптов" для Latex равносильно написанию их на brainfuck.

Не правильная аналогия - лучше аналогия с модулями perl. Вы ведь не пишите свой модуль перл по каждому чиху? И IMHO слишком Вы всё демонизируете.

И все необходимые за очень редким исключением пакеты LaTeX лежат на Вашем жёстком диске и искать их нет особого смысла.

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

>Вы ведь не пишите свой модуль перл по каждому чиху?

Ну, я не использую перл ;)

Смотря какой чих. Если большой, то есть я знаю, что это - известный и качественный модуль, что, естессно, я его загружу. Но если нужен довольно специализироанный, то лучше напишу свой. Ибо, как уже не раз утверждалось (не мной), помойка CPAN содержит весьма некачественные модули, которые проце написать заново, чем переписать, особенно для такого синтаксически сложного языка как перл. Кроме того, поиск нужного модуля, документация на который может не совпадать с возможностям - нудная и опасная затея. Затея гораздо лучше - стандартная библиотека, как у python или C.

Доказать "некачество" можно, к примеру, номерами версий ниже 1, которыми пестрят модули со cpan.

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

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

Только сейчас сообразил - вы смотрели как устроен стиль indentfirst? Он работает неправильно и его нужно исправлять? Если нет, то загрузка в стилевом фале осуществляется с помощью команды \RequirePackage - нет необходимости копировать код. Аналогично при создании своего класса можно использовать команду \LoadClass чтобы загрузить уже существующий, а затем чуть модифицировать его.

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

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

Про python и C воспринял - но не считаю это правильной аналогией. С другой стороны Вы же не будете переписывать стандартную glibc с нуля - Вы сэкономите свои силы.

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

>Только сейчас сообразил - вы смотрели как устроен стиль indentfirst?

Именно.

>Он работает неправильно и его нужно исправлять?

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

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

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

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

У вас слишком тривиальные проблемы - вы же физик.

>С другой стороны Вы же не будете переписывать стандартную glibc с нуля - Вы сэкономите свои силы.

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

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

> Уже объяснял - он слишком сложен для такой простой операции. 

Вообще-то весь код стиля indentfirst.sty:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{indentfirst}
         [1995/11/23 v1.03 Indent first paragraph (DPC)]
\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue
\endinput

В каком месте сложно?


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

А как это реализовано в lout?

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

>В каком месте сложно?

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

>А как это реализовано в lout?

Правкой строки "Название значение".

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

> В каком месте сложно?

> Пять строк для элементарного действия, содержащие непонятные, да ещё и слитные команды вместо одной строки, разрешающей первую красную строку не есть сложно?

IMHO, команды совершенно понятные и каждая делает своё дело. Кроме двух строк, которые собственно составляют код остальные составляют обёртку для создания модуля гарантирующую совместимость в будущем.

>>А как это реализовано в lout?

>Правкой строки "Название значение".

А код?

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

>>Правкой строки "Название значение".

А что мешает в latexe в преамбуле скзать:

\makeatletter \let\@afterindentfalse\@afterindenttrue \@afterindenttrue \makeatother

\makeat... просто эскейпит знак собаки.

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

> >А как это реализовано в lout? > Правкой строки "Название значение".

А почему просто не использовать @PP, который делает отступ по-умолчанию?

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

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

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

>>@ParaIndent { 2.00f @OrIfPlain 5s }

А потом эти люди нам про брейнфак рассказывают.

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

"Гхмм - поясните пожалуйста Вашу логику."

"И вообще, разве нас может интересовать мнение человека лысого, с таким носом?" (C)

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

> Вы будете смеяться, но я бы купил.

А никто и не говорил, что это смешно или плохо. При условии, что
название отражает содержание.

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

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

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

Типа

\documentclass[1line]{mystyle}

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