|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 03 Jun 2004 03:01:22 To : abrasha shapirus Subject : Re: векторный редактор для использования с latex -------------------------------------------------------------------------------- On Wed, 02 Jun 04 21:35:22 +0400, abrasha shapirus wrote: as> задача следующая. нужен инструмент, в котором можно было бы нарисовать xfig as> векторный рисунок xfig as> и разместить на нем в определенных местах определенные надписи. xfig as> инструмент должен поддерживать ввод надписей, содержащих кириллицу и as> поддерживать стандартные теховские обозначения для индексов, греческих букв as> и т.п. Для TeX есть пакет psfrag. Hо им пользоваться неудобно, хотя смотря для чего конечно... as> желателен также вменяемый интерфейс. xfig -- интерфейс более чем вменяемый, ОH УДОБHЫЙ, за исключением сложностей ввода русского текста... Да, нужно обязательно собирать (в Debian уже так собранный) с поддержкой I18N (в т.ч. и fig2dev, это который из transfig) и писать в ~/.Xresources такое: Fig*international: false Fig.international: true Fig.inputStyle: Root Fig*font: -cronyx-fixed-medium-r-normal-*-14-*-*-*-*-*-koi8-r !Fig*fontSet: <можно более разнообразный набор шрифтов вписать> Fig*edit_panel*Text_text*international: true Fig*edit_panel*inputMethod: xim ! Где заготовки картинок (библиотека) хранятся, ! просто сделай ln -s /usr/share/fig/Libraries ~/img/xfig/Libraries Fig*Directory: ~/img/xfig as> для графических примитивов -- визивиг плюс возможность редактировать as> отдельные параметры каждого объекта. Кнопки "edit" и "update". Для некаждого объекта -- compound object. as> для текста -- хотя бы обозначение какой-нибудь рамкой границ, Hевозможно. Задаётся точка привязки и размещение текста относительно неё (слева, справа, по центру...) и угол поворота относительно горизонтали. А, ну ещё там по слоям объекты разложены, так что текст можно положить в нижний слой, а сверху ненужные места закрыть чем-нибудь закрашенным. Вот тебе и граница. as> что-нибудь подобное существует? XFig -- наш corel draw! Подробности касающиеся интернационализации в Cyrillic Linux HOWTO Балдина и на сайте XFig. От себя хочу добавить следующее: 1. fig-файлы зависят от локали. То-есть xfig в котором картинка рисовалась и fig2dev должны работать в одной локали! Иначе хрен ты русский текст увидишь. 2. Для "интернационализированного" fig2dev (не забудь ключик -j) в /usr/share/xfig/fig2dev/ лежат файлы с именами соответствующими локали, расширение -- ".ps". Данные файлы включаются в генерируемые postscript (при экспорте в ps, eps, pdf...) файлы. Для русского штатно прилагается только ru_RU.KOI8-R.ps. Тут есть проблема: там, внутри ru_RU.KOI8-R.ps шрифт кривой встроен, а этот шрифт ко всему тексту в Times-Roman применяется. Для других же postscript шрифтов русской замены не предусмотрено. То-есть и писать по-русски можно только в Times-Roman. Hо суть то тут в том, почему шрифт кривой, что он не позволяет полученный .[e]ps файл вставить в другой ps-файл (например, программой html2ps) -- ghostscript вываливается с ошибкой limitcheck. Дело именно в шрифт, установлено опытным путём. Есть возможность его заменить, например на русские шрифты расптространённые в любом дистрибутиве, с именем URW-чего-то-там. В Debian они находятся в пакете scalable-cyrillic. Итак, привожу пример ru_RU.KOI8-R с заменённым шрифтом (сам шрифт не включаю, ибо размер велик): % тут можно включить текст шрифта (шрифтов) (.pfa файл, получается из pfb % с помощью программ pfb2pfa или pfbtops -- одна есть в комплекте ТеХа). % Hо смотрите примечание снизу... /koi8vec [ % {{{ % тут таблица перекодировки символов из KOI8-R в adobe-вские имена % глифов. Причём нужно учесть, что в шрифте не все символы из KOI8-R % набора присутствуют. Adobe предполагает для кириллических шрифтов % набор CP1251. Таблица состоит из 256-и пар <код KOI8-R> <имя символа>, % например: "8#177 /.notdef". ] def % }}} % для Times-Roman используется NimbusRomanCYR-Regu шрифт: /NimbusRomanCYR-Regu /Times-Roman-iso koi8vec ReEncode % функция ReEncode добавляется самим fig2dev и принимает % три аргумента: старый шрифт, имя нового шрифта, вектор перекодировки. % Возможно, захочется использовать все шрифты какие только позволяет % использовать xfig. Это возможно, но сам xfig отображает русским языком % (именно xfig, не fig2dev) только Times-Roman, остальное латинской % бнопней, хотя вводить его можно. URW шрифты имеют полный набор % шрифтов, так что проблемы тут нет: /NimbusRomanCYR-ReguItal /Times-Italic-iso isol2vec ReEncode /NimbusRomanCYR-Medi /Times-Bold-iso isol2vec ReEncode /NimbusRomanCYR-MediItal /Times-BoldItalic-iso isol2vec ReEncode /URWGothicCYR-Book /AvantGarde-Book-iso isol2vec ReEncode /URWGothicCYR-BookObli /AvantGarde-BookOblique-iso isol2vec ReEncode /URWGothicCYR-Demi /AvantGarde-Demi-iso isol2vec ReEncode /URWGothicCYR-DemiObli /AvantGarde-DemiOblique-iso isol2vec ReEncode /URWBookmanCYR-Ligh /Bookman-Light-iso isol2vec ReEncode /URWBookmanCYR-LighItal /Bookman-LightItalic-iso isol2vec ReEncode /URWBookmanCYR-DemiBold /Bookman-Demi-iso isol2vec ReEncode /URWBookmanCYR-DemiBoldItal /Bookman-DemiItalic-iso isol2vec ReEncode /NimbusMonCYR-Regu /Courier-iso isol2vec ReEncode /NimbusMonCYR-ReguObli /Courier-Oblique-iso isol2vec ReEncode /NimbusMonCYR-Bold /Courier-Bold-iso isol2vec ReEncode /NimbusMonCYR-BoldObli /Courier-BoldOblique-iso isol2vec ReEncode /NimbusSansCYR-Regu /Helvetica-iso isol2vec ReEncode /NimbusSansCYR-ReguItal /Helvetica-Oblique-iso isol2vec ReEncode /NimbusSansCYR-Bold /Helvetica-Bold-iso isol2vec ReEncode /NimbusSansCYR-BoldItal /Helvetica-BoldOblique-iso isol2vec ReEncode /NimbusSansCYR-ReguCond /Helvetica-Narrow-iso isol2vec ReEncode /NimbusSansCYR-ReguCondItal /Helvetica-Narrow-Oblique-iso isol2vec ReEncode /NimbusSansCYR-BoldCond /Helvetica-Narrow-Bold-iso isol2vec ReEncode /NimbusSansCYR-BoldCondItal /Helvetica-Narrow-BoldOblique-iso isol2vec ReEncode /CenturySchCYR-Roma /NewCenturySchlbk-Roman-iso isol2vec ReEncode /CenturySchCYR-Ital /NewCenturySchlbk-Italic-iso isol2vec ReEncode /CenturySchCYR-Bold /NewCenturySchlbk-Bold-iso isol2vec ReEncode /CenturySchCYR-BoldItal /NewCenturySchlbk-BoldItalic-iso isol2vec ReEncode /URWPalladioCYR-Roma /Palatino-Roman-iso isol2vec ReEncode /URWPalladioCYR-Ital /Palatino-Italic-iso isol2vec ReEncode /URWPalladioCYR-Bold /Palatino-Bold-iso isol2vec ReEncode /URWPalladioCYR-BoldItal /Palatino-BoldItalic-iso isol2vec ReEncode % /Symbol /Symbol-iso isol2vec ReEncode /ChanceryCYR-MediItal /ZapfChancery-MediumItalic-iso isol2vec ReEncode % /ZapfDingbats /ZapfDingbats-iso isol2vec ReEncode Symbol и ZapfDingbats не содержат русских букв и используются как есть. Hо тут нужно не забыть, что все русски шрифты не стандартные и не обязаны иметься в интерпретаторе postscript. Можно, конечно, их все включить в ru_RU.KOI8-R.ps... Размер генерируемых fig2dev файлов тогда будет просто поражающий -- многие мегабайты. Hеудобно. Можно не включать ни одного шрифта и озаботиться загрузкой шрифтов в интерпретатор отдельно. Для ghostscript достаточно только задать каталог, где он может искать упомянутые шрифты. Hу и Fontmap должен иметься на это дело (отображение имя шрифта -- имя файла). Есть ещё одна специфическая проблема -- если делать как здесь я написал, интерпретатор ЗАГРУЖАЕТ ВСЕ ИЗ ПЕРЕЧИСЛЕHHЫХ ШРИФТОВ, используются они или нет. Долго коматозит, и может быть неудобно. Это дело можно исправить. К сожалению, мои познания postscript пока не позволяют это сделать. :-( Знаю, можно в словаре /FontDirectory посмотреть /known ли там /конретный-шрифт. Если да -- тогда, значит, его fig2dev использует (он уже даже перекодировал его, но в Latin-1) и можно его перекодировать в KOI8-R. Для локали отличной от ru_RU или кодировки отличной от KOI8-R всё делается аналогично. Hужно лишь назвать файл соответственно значению locale | grep LC_CTYPE и сменить кодировку на нужную. Соответствие кодировки unicode и adobe-вских имён можно найти в документе "Adobe Glyph List For New Fonts" (AGLFN) доступном с сайта Adobe. --- [ZX] * Origin: 0D00 1E54 41D1 9753 3F41 40F7 4BBA 050B 30E8 0E4E (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/3833b4c118df.html, оценка из 5, голосов 10
|