Ключевые слова:rus, gnuplot, image, graph, font, charset, latex, tex, postscript, eps, (найти похожие документы)
From: Михаил Конник <http://mydebianblog.blogspot.com>
Date: Mon, 9 Dec 2007 14:31:37 +0000 (UTC)
Subject: Русские буквы в EPS из gnuplot и LaTeX
Оригинал: http://mydebianblog.blogspot.com/2007/11/eps-gnuplot-latex.html
При использовании gnuplot и LaTeX под Linux могут возникнуть проблемы
с переносом документов в альтернативные операционные системы. Но это
всё решаемо.
Постановка проблемы
Первое: при построении графиков в gnuplot на экране и в dvi-файле они
выглядят нормально, а при конвертации в PDF русские буквы на
gnuplot-графике исчезают. Возникает вопрос: "как правильно в гнуплоте
использовать кириллические шрифты?"
Второе: в документе LaTeX русские буквы отображаются нормально, однако
при выделении и копировании текста из PDF-документа вставляется
какой-то мусор. А нужно, чтобы из PDF, созданного LaTeX, можно было бы
скопировать и вставить текст на русском.
Решение проблемы с русскими шрифтами в gnuplot
Возникает проблема, в частности, потому, что в PostScript файле часто
пишется нечто вроде:
/Helvetica findfont
что говорит принтеру (или просмотрщику) искать такой шрифт (Helvetica)
в системе. Его может не оказаться, и поэтому вместо русских букв можно
увидеть пустые места.
Решение сводится к тому, что gnuplot нужно заставить использовать
Type1 шрифт, который гарантированно и корректно отображается и
конвертируется в PostScript-файл. Это, например, может быть
NimbusSanL, который ставится с OpenOffice.org. Этот шрифт имеет все
варианты начертаний, так что хорошо будет смотреться в любых графиках.
Можно поэкспериментировать, поискав в системе все файлы с расширениями
*.pfa и *.pfb и попробовать их в работе.
Теперь как подключить правильный кириллический шрифт к gnuplot. Для
этого нужно все упоминания о шрифтах заменить на имя шрифта Type1.
Например, пусть это будет шрифт NimbusSanL-Regu, который мы будем
использовать везде в графике.
Для этого в заголовке следует добавить:
set terminal postscript 'NimbusSanL-Regu' eps enhanced solid
Если вы в подписях к осям используете шрифт другого размера, не
забудьте добавить упоминание о новом шрифте и туда:
set xlabel "Величина экспозиции, отн.ед." font "NimbusSanL-Regu,18"
Всё, после этого ваши графики, созданные в гнуплоте, будут правильно
переводиться в PDF и читаться на любых, даже самых альтернативных,
системах.
Ссылки
На правильную идею натолкнула эта ссылка, хотя и на английском, а
так же Анонимный комментарий здесь и вот этот текст.
Решение проблемы с копированием русского текста из LaTeX-документа
Это результат наших совместных поисков с уважаемым товарищем sin.
Его вариант, прекрасно описанный тут, я на всякий случай
продублирую сюда:
Подготовленные по шаблонам TeX документы выглядят очень красиво и
профессионально с минимумом усилий на вёрстку за счёт разделения
стиля и содержимого. Используется масса шрифтов и PDF-файл
получается большим. Вопрос на $100. Единственный способ делать
правильные PDF в TeX, который мне удалось освоить, заключается в
использовании пакета cmap. А это автоматически означает что для
создания PDF можно использовать только PDFLaTeX, но не dvitopdf.
Это, в свою очередь, означает невозможность использования векторных
рисунков в формате eps напрямую. Я нашел следующее решение...
В Debian cmap находится в пакете tetex-extra. Чтобы подключить cmap
надо использовать в документе TeX заголовок следующего вида:
\RequirePackage{cmap}
\RequirePackage[cp1251]{inputenc}
\RequirePackage[TS1,T2A]{fontenc}
\RequirePackage[english,russian]{babel}
Причем именно в таком порядке: cmap первый. Иначе работать не
будет!
Все. Теперь, если делать PDF с помощью PDFLaTeX, русский будет в
порядке.
Это всё хорошо, но мне нужен драйвер dvipdf, который делает dvi-файл
сначала - на этом работает критичный для меня способ перегона
документов из LaTeX в ЗлоWord. А описанный выше способ с драйвером
dvips не работает.
Мой вариант ответа на вопрос на $100 заключается в том, чтобы
использовать шрифты из пакета scalable-cyrfonts-tex - Scalable
Cyrillic fonts for TeX в Debian. Для этого они, естественно, были
сразу же установлены. После этого в тело документа, сразу же после его
начала, было вставлено вот это:
\begin{document}
\usefont{T2A}{ftm}{m}{sl}
После этого документ будет оформлен шрифтом Times New Roman, и это
убивает сразу двух зайцев: русский текст можно копировать из документа
в самых альтернативных системах, и документ оформлен именно Times, что
имеет решающее значение в разного рода консервативных издательствах. В
установленном пакете шрифтов много, о чём можно осведомиться в
заботливо приложенном мейнтейнером пакета Readme-файле
/usr/share/doc/scalable-cyrfonts-tex/README.Debian
This package makes the following font families available to TeX:
ftm -- Free Times
fhv -- Free Helvetian
fcr -- Free Courier
fag -- Free Avant Garde
fbk -- Free Bookman
fnc -- Free Schoollbook
fpl -- Free Paladin
fta -- Teams
fsj -- OldSlavic
For example you can change to the medium series slanted shape Teams
font by the following command:
\usefont{T2A}{fta}{m}{sl}
Всё-таки порой читать мануалы к файлу весьма полезно для здоровья :-)
Кроме того, я использую dvipdfmx для перевода полученного dvi-файла в
PDF. Полученный PDF отображается везде красиво и корректно, и из него
можно выдрать текст. Оставшиеся aux и bbl-файлы требуется для перевода
текста в ЗлоСистемы и ЗлоОфис при помощи команды:
latex2rtf -F -M12 -i russian -a file.aux -b file.bbl file.tex
Это ранее описывалось тут.