CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
26.09.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Приложения

Документооборот: LaTeX to All, или Мы будем прогибаться под испорченный мир

От редактора: я позволил себе дать в скобках некоторые комментарии, выделенные вот таким образом - Алексей Федорчук

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

Отмазка: Обзор, который вы, надеюсь, все же дочитаете до конца, не претендует на звание HOWTO, поскольку основан исключительно на личном авторском опыте (сыне ошибок трудных) и личном же авторском ге... сорри :-). Статья постоянно находится в стадии UNDER CONSTRUCTION: "Это неописуемо!" - воскликнула собака глядя на баобаб. Автор надеется (но не обещает!), что, с помощью "бесовской силы", смелых экспериментов, и читательской критики, она будет дополняться и уточняться от версии к версии.

Аксиома: важнейшим из искусств для нас является LaTeX.

Задача: не используя новомодных GUI-евых офисных приложений, наладить обмен текстовой информацией между "чАкнутыми" пользователями LaTeX (и некоторых других языков разметки) под FreeBSD (впрочем, линуксоиды тоже подойдут) и теми редкими представителями homo computers, которые по старинке используют Окна (tm). По возможности - сохранив элементы форматирования во входящих и исходящих документах. Следует заметить, что ни одно из приведенных ниже ухищрений не сможет доподлинно сохранить форматирование в сложных документах, насыщенных таблицами, формулами, etc. Но, как правило, перед такими твореньями бессильны и доступные под *NIX (да и под прочими ОС - А.Ф.) визивиг-редакторы.

Резонен вопрос: зачем же "вырезать гланды автогеном через ж...", когда под *NIX уже давно существуют офисные пакеты, более-менее сносно работающие с "уставными" подоконников форматами *.doc и *.rtf? Мотиваций - множество. Навскидку: нежелание отдавать легионы мегабайт дискового пространства под OpenOffice, Crossover + MSOffice, AbiWord, KOffice и иже с ними, идиосинкразия к визивиг-редактированию, давняя и преданная любовь к языкам логической разметки, да, наконец, отсутствие Х'ов в системе, "оттюннингованной" под сервер.

Начнем от простого к сложному, ab ove ("от яйца" - lat.), как говаривали пошловатые римляне.

1.1 CATDOC

Ситуация типичная: на ваш e-mail наконец-то пришла долгожданная инструкция по применению памперсов, но - вложением, да еще - в формате Document Microsoft Office 2000/ME/XP ("док" - в просторечьи). Вы все еще кипятитесь по поводу идиотизма отправителя? Тогда мы идём к вам, засунув под мышку catdoc!

Автор этой замечательной утилиты - известный московский админ и программист Виктор "Витус" Вагнер. Так что, используя catdoc, мы поддерживаем отечественного производителя ;-). Под FreeBSD catdoc можно собрать из портов (/usr/ports/textproc/catdoc). Пользователям "нерусских" дистрибутивов OC Linux - качать с сайта автора:http://www.ice.ru/~vitus/catdoc. Функции программы отражены в ее названии: cat - многофункциональная команда *NIX для вывода данных файла на экран, принтер или в ASCII текст, а так же - "палач" на украинской мове (впрочем, и в москальском такое слово имеется - А.Ф.), doc - вышеупомянутый закрытый формат документов от "Большого Брата".

Запущенный из командной строки:

$ catdoc filename.doc > filename.txt

преобразователь выдаст ACSII текст в кодировке koi8-r, абзацы которого отформатированы по 72 знака в строке и разделены пустыми линиями. Результат вполне пригоден для прочтения с экрана, распечатки и разметки LaTeX или groff.

Умолчальные значения выходной кодировки и параметры форматирования для catdoc можно задать в файле настроек ${HOME}/.catdocrc. Желающим ощутить все богатство дополнительных опций командной строки catdoc, традиционная для *NIX рекомендация: RTFM (man catdoc.1)! Отмечу лишь такой жирный плюс catdoc, как поддержка им через опции -s charset -d charset ВСЕГО бардака российских кодировок.

HINT (он же ФИЧА): Специально для работающих в X Window System у catdoc имеется графический интерфейс - wordview, в котором большую часть операций по преобразованию можно проделать мышом. Для сборки wordview требует Tcl/Tk8*, для использования - наличия мозгов.

HINT2 (он же ФИЧА 2): В состав catdoc входит утилита xls2csv, которая конвертирует файлы *.xls табличного процессора MS Exсel в comma-separated текст (для понимания оных большинством нормальных табличных процессоров и СУБД - А.Ф.).

HINT3 (он же ФИЧА 3): Будучи установленным, catdoc внедряется в Midnight Commander в качестве просмотрщика документов MSOffice по умолчанию (по нажатию F3). Поковыряйтесь на предмет Microsoft Word в файле расширений ${HOME}/.mc/bindings.

Существуют и "буржуйские" аналоги catdoc. На момент написания данной версии протестированы два из них: antiword (трясти ветку /usr/ports/textproc/antiword) и wv (рядом: /usr/ports/textproc/wv).

1.2 Antiword

На мой вкус, Antiword, созданный Andri van Os - весьма достойный инструмент дококовырянья. Как и положено настоящему "антифашисту", он обеспечивает конвертацию документов от MS в приемлемые для *NIX форматы текст ASCII и XML (пока - только DocBook). Причем, при выводе в ASCII текст, прекрасно работает с "нашими" кодировками koi8-r, cp1251, cp866, utf-8 и koi8-u. Главное, не забыть указать карту кодировки (mapping files, которые находятся в каталоге /usr/local/share/antiword), в опциях запуска. Например:

$ antiword -m koi8-r.txt filename.doc > filename.txt

В итоге "на гора" выдается поабзацно форматированный на 75 знаков в строке плоский текст, готовый к выводу на экран или принтер. Правда, в отличие от catdoc, antiword НЕ РАЗДЕЛЯЕТ абзацы пустой линией, что для LaTeX'а не совсем кoшерно. Вывод в XML осуществляется добавлением при запуске опции -x db и, как ни печально, для русскоязычных документов возможен ТОЛЬКО в кодировке utf-8.

Среди возможностей antiword существует и вариант конвертации MS Word -> Postscript с включением внедренных в документ иллюстраций. Однако, как честно признается разработчик, antiword'ом поддерживается PS-вывод только в ISO 8859-1 и ISO 8859-2.

1.3 WV

Обилие возможностей, продекларированных разработчиками семейства wvWare (которые объединены в пакет wv), вынуждает срочно подставлять тазик под текущие слюни. Авторы уверяют, что их софтинка запросто преобразовывает документы MS Word в форматы ASCII Text, HTML, RTF, PS, PDF, LaTeX, DVI и ABW, грамотно работая с милыми русскому сердцу кодировками koi8-r и utf-8.

Но реалии оказываются куда скромнее. Не то, чтобы врут разработчики, просто для нормальной поддержки русского в конвертерах семейства wv придется устраивать "пляски с бубном и напильником" в конфигурационных файлах. Лично я, имея под рукой catdoc, "недотанцевал" :-(...

wvLateX, даже после принудительной русификации конфига /usr/local/share/wv/wvLaTeX.xml, упорно внедряет вместо знаков русского языка "умляуты", делая совершенно нечитаемыми как исходники LaTeX, так и полученные из них DVI, PS и PDF. Та же "петрушка" - и с документами формата RTF, полученными посредством обработки doc'ов wvRTF. Про качество формата ABW ничего не скажу, за неимением AbiWord'a в системе.

Опытным путем установлено, что полноценно русскоязычными, без предварительных усилий, на выходе у wv получаются только форматы ASCII Text:

$ wvText filename.doc filename.txt

и HTML 4.0:

$ wvWare -c koi8-r filename.doc > filename.html

Последний, правда, загажен лишней разметкой и по-скромному закомментированной рекламой wvWare в конце BODY :-).

LaTeX2RTF

Практика показывает, что на исходники LaTeX, насыщенные всяческими \usepackage{bla-bla-bla} и \begin{tram-pam-pam}, среднестатистический пользователь Виндовс смотрит, как баран на новые ворота, считая порождением враждебного разума. Параноики обыкновенно их удаляют, предварительно прогнав через все 9 установленных в системе антивирусников. Остальные - бегут за пивом для ближайшего виндовс-гуру, который, после принятия "на грудь", популярно объяснит, что данный файл - недоделанная веб-страничка...

Чтобы избежать подобных казусов, под *NIX вдоволь создано утилит, преобразующих исходники LaTeX в удобоваримые для подоконников и cибаритствующих макентоидов форматы. Их и опишем. Намеренному умолчанию будет подвергнут только формат PDF - про pdflatex, надеюсь, известно любому "ТеХнарю".

По нескромному мнению автора, latex2rtf - почти панацея от "оконной болезни". Как явствует из названия конвертера, он транслирует LaTeX в формат RTF. И, при этом, сносно работает с "великим и могучим" русским языцем, стилями, колонтитулами, таблицами и иллюстрациями в тексте. А уж грамотно образованный Rich Text Format прочитают и пресловутый MS Word любой степени древности, OpenWriter из OO, и даже - WordPad, не к ночи он будет помянут. Порт latex2rtf лежит в /usr/ports/print. Собранную программу пускать так:

$ latex2rtf [-options] filename.[tex]

Из опций пристальное внимание стоит обратить на:

-C codepage

Из "наших" кириллических кодировок поддерживаются koi8-r, koi8-u, cp1251, cp855, cp866, maccyr, и даже macukr. А вот на опцию:

-i language 

русскоязычным можно наплевать - нативные имена теховских определений: "Part", "Section", "Reference", "Bibliography" и т.п. latex2rtf поддерживает только для English и German.

HINT (он же ФИЧА): Файл fonts.cfg в каталоге настроек latex2rtf устанавливает, какие шрифты в выходном документе RTF будут представлять теховскую разметку Roman \rm, Slanted \sl, Sans Serif \sf, Typewriter \tt. Несложно догадаться, что вместо дефолтных можно прописать свои по вкусу.




Комментарии

аноним, Sun Sep 27 14:34:43 2009:
Заменить TeXом Word в офисах шансов не больше чем было у Херлока Холмса когда он учил мопса трахать доктора Ватсона.
аноним, Sun Sep 27 12:04:01 2009:
Уволить все секретераш не знаюших TeX!
аноним, Sun Sep 27 10:48:41 2009:
rtf,doc -плоский текст....
А как же таблицы, форматирование пробелом? ;)
По топику : статья познавательная - СПАСИБО!
аноним, Tue Apr 22 10:09:09 2008:
спасибо за информацию
Михаил, Fri Apr 6 23:30:45 2007:
Фраза одного моего знакомого верстальщика лет эдак пять назад: "Я очень люблю tex! Хотя бы за то, что для каждой буквы не надо вводить ее ASCII-код. Хотя вот со всем остальным уже сложнее..."

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds