Dmitri Pavlov - TeX
April 29th, 2010
10:50 pm

[Link]

TeX
И снова я возвращаюсь к теме TeXa.

Вот здесь: http://mathoverflow.net/questions/23019/why-does-the-arxiv-produce-a-messed-up-dvi-when-the-pdf-is-fine
я просвещаю людей, как надо делать PDF из TeXa.

Если вкратце, есть программа dvipdfm, которая является
непосредственным аналогом dvips для PDF.
Именно ей и надо пользоваться.
Всё остально, что я знаю — pdftex/pdflatex, ps2pdf,
и всякие экзотические методы вроде запуска Distillera,
гораздо хуже.

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

Что касается pdftex/pdflatex, то их лучше вообще на запускать — они известны тем,
что получающийся PDF файл не везде можно прочесть, а кроме того, они имеют
ряд возможностей, несовместимых с обычным TeXом — что означает, что
когда формат PDF выйдет из моды, все такие тексты внезапно окажутся некомпилируемыми.

Вообще, как я пишу по ссылке, математические работы
должны существовать больше, чем 10–15 лет
(время жизни типичного формата).

Кто знает, может, через 10–15 лет PDF отправят на помойку,
а все математические тексты будут использовать
в качестве промежуточного формата представления HTML вместе с CSS и SVG, тем
более что современный CSS и HTML предоставляют возможность точного
позиционирования текста на странице, а также позволяют подгружать шрифты — то
есть ни чем не отличаются по возможностям от DVI/PostScript/PDF.
(Не то чтобы я рад такой перспективе,
но она не более отвратительна, чем нынешние PDF/PostScript.)

Что в таком варианте делать с кучей текстов на TeX,
заточенных под под возможности pdftex/PDF, вообще непонятно.

Один чудак по ссылке вообще предлагает делать
TeX-файлы некомпилирующимися нигде, кроме pdftex.
Ну и что с такими делать?

Это, кстати, ещё одна причина, по которой я категорически
отвергаю LaTeX в пользу Plain TeX.
Текст, набранный в Plain TeX в 1982 году,
скомпилируется сегодня и будет выглядеть
точно так же, как и в 1982 году.
Текст набранный в LaTeX в 1995 году,
сегодня может запросто не скомпилироваться
(по причине того, что LaTeX и его многочисленные пакеты постоянно меняются
и новые версии несовместимы со старыми),
а может скомпилироваться и выглядеть по другому, нежели чем в 1995 году.


Тем временем, после длительных колебаний я сделал поддержку
математических символов Plain TeX в кодировке UTF-8.
Я не поклонник Unicode и UTF-8, но, кажется, это единственный
распространённый способ набирать математические символы в тексте.
Текущий экспериментальный макропакет можно наблюдать на моей странице Plain TeX:
http://dmitripavlov.org/tex/
Теперь можно писать в формулах $a≤B∩C∪D⊗D≠E$,
и математические символы Unicode в кодировке UTF-8
правильно отобразятся в макросы Plain TeX.

Tags:

(53 comments | Leave a comment)

Comments
 
From:[info]nz-phone.livejournal.com
Date:April 30th, 2010 - 09:48 am
(Link)
Хм. А какого лешего в латехе нет обратной совместимости? (И почему pdflatex не понимает eps? И как менять количество колонок не завершая страницу? -- Это уже, впрочем, риторические вопросы).
From:[info]dmitri_pavlov
Date:April 30th, 2010 - 11:56 am
(Link)
>А какого лешего в латехе нет обратной совместимости?

Это только у Кнута есть обратная совместимость. У него, собственно, ничего не меняется уже лет 28.
А остальные не столь дальновидны.
From:[info]nz-phone.livejournal.com
Date:April 30th, 2010 - 12:05 pm
(Link)
Отсутствие обратной совместимости без веских причин, имхо, заслуживает намного более жестких слов, чем "недальновидность". Мир не совершенен.
[User Picture]
From:[info]udod
Date:April 30th, 2010 - 10:14 am
(Link)
>PostScript в качестве промежуточного формата, то качество
шрифтов в силу неизвестных мне особенностей конвертирующих программ
падает до совершенно безобразного

Надо внимательно следить чтобы у dvips были всюду прописаны Type 1 фонты. http://en.wikipedia.org/wiki/PostScript_fonts#Type_1 там есть отдельный файл с описнием правила замены фонтов. Один битовый, а не векорный фонт гробит все.
From:[info]dmitri_pavlov
Date:April 30th, 2010 - 10:20 am
(Link)
Да, но лучше всё равно воспользоваться dvipdfm.
Он нормально работает с растровыми шрифтами
и выдаёт отличный PDF.
From:[info]langri-ksk.livejournal.com
Date:April 30th, 2010 - 01:23 pm
(Link)
а с чего бы pdf должен отправиться на помойку?
Скорее всего, даже если изобретут что-то гораздо более крутое (а ведь изобретут), обратная совместимость с pdf-oм будет обязательна.
From:[info]dmitri_pavlov
Date:May 1st, 2010 - 01:13 am
(Link)
PDF может отправиться на помойку точно также, как туда отправился PostScript.
Обратная совместимость наблюдается, но не слишком хорошая, как я написал в основном тексте.
Такая же ситуация будет с PDF.
From:[info]viktorpetrov.livejournal.com
Date:May 1st, 2010 - 10:21 pm
(Link)
А какой сейчас окончательный формат используют типографии? Разве уже не PostScript (который, собственно, для этого и придумывался)?
From:[info]dmitri_pavlov
Date:May 1st, 2010 - 10:25 pm
(Link)
У меня очень невнятные представления о типографском деле.
Вопрос в том, что они используют для окончательной печати.
Если Linux — то это скорее всего GhostScript, и он может
одинаково хорошо печатать PDF и PostScript.
Если Windows — то там свои программы.
То есть PostScript не обязателен, можно и PDF использовать.

Вообще PDF задумывался как полная замена PostScript,
которую можно гораздо проще реализовать,
так как это не полноценный язык программирования.
From:[info]akapinys.livejournal.com
Date:April 30th, 2010 - 04:34 pm
(Link)
а почему бы самим ученым не заняться этой проблемой? Иметь свой формат распространения документов (tex > pdf, скажем), и в дальнейшем, при отказе от pdf, развивать свой форк? Никаких проблем это не создает.
From:[info]dmitri_pavlov
Date:May 1st, 2010 - 08:17 am
(Link)
Развивать форк — это что имеется ввиду?
From:[info]akapinys.livejournal.com
Date:May 1st, 2010 - 03:02 pm
(Link)
после отправки на помойку PDF, развивать своими силами формат
[User Picture]
From:[info]m
Date:May 2nd, 2010 - 10:20 pm
(Link)
я как-то для себя написал textile-type regular expression препроцессор для теховских файлов, чтобы можно было писать стрелки --> , --f-> и
формулы $a≤B∩C∪D⊗D≠E$,
а также

S. Section title.

Theorem (Author). ...

мне было так приятнее писать...


From:(Anonymous)
Date:May 12th, 2010 - 06:34 am
(Link)
"Гуру программирования" на своем сайте в разделе "Новости" разместил (точнее ему разместили, так как он ничего кроме расстановки запятых не умеет) бранную статейку в Твой адрес, Дмитрий !
Есть факты, по которым "гуру" сотрудничает с цру и бывшим кгб одновременно по крайней мере с 85 года.
Если вокруг Вас возникнут "Интересные" события - отразите это, пожалуйста хотя бы в этом дневнике. Думаю "гуру" уже принял соответствующие меры против Вас.
From:(Anonymous)
Date:June 4th, 2010 - 12:43 pm
(Link)
Не могли бы вы выложить куда-нибудь эссе Роты про диффуры &mdash со старого места его убрали, а гуглежка ничего дает :(
From:[info]dmitri_pavlov
Date:June 4th, 2010 - 11:06 pm
(Link)
Как это ничего не даёт?
Всё прекрасно находится:
http://www.webalice.it/mauro.cerasoli/Didattica/D01/Did01.htm
(Вторая ссылка на запрос gian-carlo rota differential equations ten lessons.)
From:[info]akapinus
Date:August 11th, 2010 - 02:13 pm
(Link)
А как сделать так, как у вас, что бы комментарии к lj были на ljr?
From:[info]dmitri_pavlov
Date:August 12th, 2010 - 08:27 pm
(Link)
Сервис находится здесь:
http://lj.rossia.org/import.bml
From:[info]akapinus
Date:August 12th, 2010 - 08:32 pm
(Link)
Про это я знаю

Но я наверное что-то неправильно делаю. Я пробовал два варианта импорта, но не один не правильно. Сейчас у меня разные комментарии на ЖЖ и ЛЖР, плюс импорт тем не автоматический.
From:[info]dmitri_pavlov
Date:August 12th, 2010 - 08:55 pm
(Link)
Тогда надо спросить у администраторов, в чём проблема.
From:(Anonymous)
Date:August 12th, 2010 - 02:52 pm

Copyright

(Link)
Вдогонку к предыдущему вопросу: и не возникнет ли при этом проблем с копирайтом на чужие комментарии?
From:[info]dmitri_pavlov
Date:August 12th, 2010 - 08:29 pm

Re: Copyright

(Link)
Копирайт формально присутствует, но с комментариями
можно делать всё, что угодно — они настолько короткие,
что любое использование будет fair use.
From:(Anonymous)
Date:January 26th, 2011 - 01:57 pm
(Link)
А что насчёт XeTeX ?
From:[info]dmitri_pavlov
Date:January 26th, 2011 - 06:16 pm
(Link)
XeTeX — это так называлось расширение TeX, разработанное
Кнутом для набора текстов справа налева (отсюда и название).
Или ты имеешь ввиду вот это: http://en.wikipedia.org/wiki/XeTeX?
Не пробовал, не знаю.
Они поддерживают Plain TeX?
From:(Anonymous)
Date:February 12th, 2011 - 01:10 am
(Link)
а теперь, после всего, расскажите, как вы верстаете, скажем, сложные многостраничные таблицы, в плейн тех.

мои pdf, сгенерированные pdflatex'ом, везде читаются. что я делаю не так?

по первой ссылке из топика - генерируется прекрасно читаемый pdf и совершенно нормальный dvi.

адская дичь какая-то.
From:[info]dmitri_pavlov
Date:February 12th, 2011 - 05:45 am
(Link)
>а теперь, после всего, расскажите, как вы верстаете, скажем, сложные многостраничные таблицы, в плейн тех.

TeXовский halign (и valign) прекрасно справляется с набором любых
страниц, в том числе многостраничных, без какой-либо бюрократии,
свойственной LaTeXу.
Как набирать таблицы, подробно описаны в главе 22 TeXbook.
Если у вас есть какие-то конкретные вопросы, буду рад ответить.

>мои pdf, сгенерированные pdflatex'ом, везде читаются. что я делаю не так?

Зависит от того, где вы пытаетесь их читать.
Многие принтеры просто отказываются печатать файлы, выдаваемые pdftex/pdflatex.
Прикажете менять принтеры?

>по первой ссылке из топика - генерируется прекрасно читаемый pdf и совершенно нормальный dvi.

В DVI-файле уже на странице 7 Figure 1 выглядит совсем не так, как надо.
From:(Anonymous)
Date:February 12th, 2011 - 01:35 pm
(Link)
у меня в dvi и в pdf рисунок 1 на стр 7 выглядит абсолютно идентично. что я делаю не так?

про принтеры - смеялся, сами себя перечитайте: "Многие принтеры просто отказываются печатать файлы...". повторяю: мои pdf из pdflatex везде, _везде_ читаются и печатаются.

texbook посмотрю.
From:[info]dmitri_pavlov
Date:February 12th, 2011 - 07:19 pm
(Link)
>про принтеры - смеялся, сами себя перечитайте: "Многие принтеры просто отказываются печатать файлы...". повторяю: мои pdf из pdflatex везде, _везде_ читаются и печатаются.

Значит, у вас просто нет тех принтеров, на которых
эти файлы не печатаются.
Или вы претендуете на обладание всеми типами
принтеров в мире?

>у меня в dvi и в pdf рисунок 1 на стр 7 выглядит абсолютно идентично. что я делаю не так?

Откуда я знаю?
У меня тоже при конвертации
с dvips всё выглядит так, как должно.
Очевидно, пакет tikz пользуется нестандартными
dvi-командами, которые не поддерживаются xdvi,
стандартной программой для просмотра dvi.
From:(Anonymous)
Date:February 12th, 2011 - 10:25 pm
(Link)
так, до виновника плохого просмотра dvi мы добрались: это так называемая стандарнтная программа xdvi.

теперь насчет непечатаемых pdf файлов. прошу предоставить файл, модель принтера, а так же упомянуть "стандартную программу для распечатки pdf файлов", которая оказывается неспособна обеспечить корректную выдачу на печать.
From:[info]dmitri_pavlov
Date:February 12th, 2011 - 10:30 pm
(Link)
xdvi — самая что ни на есть стандартная программа для просмотра dvi.
А стандартная программа для печати — это ghostscript.
From:[info]dmitri_pavlov
Date:February 12th, 2011 - 10:35 pm
(Link)
Пожалуй, следует уточнить:
когда рисунки делаются в METAPOST,
который обладает точно такой же функциональностью,
как и TikZ, то никаких проблем вообще не возникает:
и xdvi прекрасно все рисунки отображает,
и ghostscript никаких проблем не испытывает.
Отсюда очевидный вывод: проблема в TikZ и pdftex/pdflatex.
From:(Anonymous)
Date:February 12th, 2011 - 11:16 pm
(Link)
так, ясно. ghostscript что-то ошибочно рендерит. но виноват, конечно же, pdflatex и принтер. я вас поздравляю с замечательным открытием!
From:[info]dmitri_pavlov
Date:February 13th, 2011 - 12:37 am
(Link)
Я склонен полагать, что ghostscript всё отображает правильно.
Принтеры бывают и с ghostscriptом внутри, между прочим.

Подозреваю, что одним возможным источником проблем
тут является то, что pdftex использует более новые
версии формата PDF, хотя в этом нет никакой необходимости.
Я уже указал на то, что METAPOST может рисвовать
всё, что рисует TikZ и никаких проблем при этом не возникает.
From:(Anonymous)
Date:February 13th, 2011 - 03:33 am
(Link)
бывает, всякое бывает, в том числе принтеры с линуксом в кишках.

pdftex'у можно в явном виде указывать, какую именно версию pdf следует генерировать. можно поновее, можно постарее. впрочем, у меня такой необходимости не возникало. со старыми версиями pdf вы не сможете использовать анимацию, вставлять интерактивные объекты, видео и т.п. впрочем, лично вам это не должно быть актуально: для X нет просмотрщиков pdf, которые могут это все корректно отображать. разумеется, за исключением adobe reader for linux.
From:[info]dmitri_pavlov
Date:February 13th, 2011 - 09:47 am
(Link)
Боюсь, что интерактивные объекты и анимация плохо совместимы с концепцией ТеХа.
На мой взгляд, они также плохо совместимы и с
концепцией PDF, но Adobe уже давно впала в маразм.

Проблема, однако, заключается в том, что
люди зачастую выкладывают файл, скомпилированный
pdftex без всяких опций, а исходный текст не выкладывают,
поэтому перекомпилировать его никак невозможно.
From:(Anonymous)
Date:February 13th, 2011 - 01:59 pm
(Link)
>Боюсь, что интерактивные объекты и анимация плохо совместимы с концепцией
>ТеХа.
>На мой взгляд, они также плохо совместимы и с
>концепцией PDF, но Adobe уже давно впала в маразм.

смеялся. по-моему, в маразм впали вы.
From:[info]dmitri_pavlov
Date:February 13th, 2011 - 08:52 pm
(Link)
Почитайте сайт http://cat-v.org/,
там про такие вещи подробно расписано.
From:(Anonymous)
Date:February 14th, 2011 - 12:26 am
(Link)
откуда-то оттуда:

'Mediocrity finds safety in standardization.'

-- Frederick Crane

>xdvi — самая что ни на есть стандартная программа для просмотра dvi.
>А стандартная программа для печати — это ghostscript.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 12:28 am
(Link)
Довольно примитивная игра словами.
Crane, очевидно, говорит о de jure стандартах,
а я — о de facto стандартах.
From:(Anonymous)
Date:February 14th, 2011 - 01:10 am
(Link)
всему этому цена дерьмо.
From:[info]dmitri_pavlov
Date:February 13th, 2011 - 09:35 pm
(Link)
Что-то я не нашёл опции, позволяющей выбирать версию PDF в pdftex:
http://linux.die.net/man/1/pdftex
From:(Anonymous)
Date:February 14th, 2011 - 12:18 am
(Link)
http://www.tug.org/texmf-dist/doc/pdftex/manual/pdftex-a.pdf

\pdfminorversion

страница 18, например.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 12:33 am
(Link)
Правильно, давайте сделаем исходные тексты наших документов
несовместимыми с основной версией ТеХа, чтобы когда PDF
отправят на помойку вслед за SGML, ChiWriter, и им подобными форматами,
все они пришли в негодность.
From:(Anonymous)
Date:February 14th, 2011 - 01:14 am
(Link)
ну вы дерево. не хотите в документ - впишите в конфигурационный файл pdftex'а. только не говорите, что мне для вас снова нужно искать мануал.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 01:53 am
(Link)
Вы, по-видимому, так ничего и не поняли.
Попробуйте перечитать исходную запись.
Проблема не в том, что pdftex генерирует проблемные PDF
— это как раз можно поправить (хотя и не поправляют),
а в том, что он предоставляет дополнительные команды,
в которых нет необходимости,
но которые делают исходные тексты несовместимыми
со стандартной версией ТеХа.
Когда PDF постигнет участь SGML и ChiWriter,
все эти файлы внезапно станут непригодными
к использованию.
From:(Anonymous)
Date:February 14th, 2011 - 11:17 am
(Link)
вы что, не можете прочитать единственное предложение? засуньте "несовместимые" команды в конфигурационный файл, и ваш текст останется "совместимым" с чем угодно.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 07:27 pm
(Link)
Кому адресован этот совет?
Я в любом случае не пользуюсь pdftex,
а те, кто пользуются, суют PDF-команды
прямо в основной исходный текст,
игнорируя ваши рекомендации.
From:(Anonymous)
Date:February 14th, 2011 - 08:27 pm
(Link)
вы задали технический вопрос: как генерировать определенную версию pdf, не прибегая к использованию так называемых "несовместимых" команд непосредственно в теле документа? я дал на него один из нескольких возможных ответов.

мне совершенно наплевать, используете вы pdftex или нет. и мне точно так же наплевать на то, кто там что игнорирует.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 08:43 pm
(Link)
А вот мне совсем не наплевать, останутся ли тексты
статей в arxiv.org компилируемыми через 20 лет, или нет.
From:(Anonymous)
Date:February 14th, 2011 - 09:06 pm
(Link)
читать - не компилировать.
From:[info]dmitri_pavlov
Date:February 14th, 2011 - 01:54 am
(Link)
(И, конечно, METAPOST превосходит по своим возможностям TikZ,
не требует задавать никаких версий PDF и прекрасно работает
со стандартным ТеХом.)
From:(Anonymous)
Date:April 20th, 2012 - 05:46 pm

Netsvetaeva Gala - TeX!

(Link)
Несколько лет назад я завершила работу над программой по автоматическому
созданию астрономических ежегодников (язык описывает структуру страниц и таблиц, способ наполнения таблиц из данных, которые тоже описыаются). Начато было очень давно, использовался только старый Plain TeX (для надежности фокусов)и даже кодировка ДОС. Даже один шрифт я подделала - для утончения его и вмещения информации в некие ящички. Оболочка программы включает средства организации всего хозяйства (гигантского! 4 мощных ежегодника) и редактор. Но используемый DVIPS уже устарел... Может, с Вашей помощью действительно использовать ваш dvipdfm? А где его взять бедной старушке? Не подскажете ли Вы? У нас в институте прикладной астрономии (Питер), кстати, работает чудо какой сильный юноша Дима Павлов,
но он не по этой части...С уважением, Галина.
From:[info]dmitri_pavlov
Date:April 20th, 2012 - 06:05 pm

Re: Netsvetaeva Gala - TeX!

(Link)
dvipdfm, вообще говоря, входит в любой новый дистрибутив TeXa.
То есть если в Вашем дистрибутиве его сейчас нет,
то надо обновить дистрибутив.
Как именно — зависит от дистрибутива и операционной системы.
В Линуксе обычно набирают что-то вроде apt-get install livetex.

Про dvips я бы всё же не сказал, что он устарел,
но то, что у рядового пользователя PDF поддерживается
с большей вероятностью — это несомненно.
My Website Powered by LJ.Rossia.org