December 29th, 2010

Построение графиков eps в gnuplot с динамическим размером шрифта

 Ниже приведена многоэтапная процедура построения графика в формате Encapsulated PostScript с помощью программы gnuplot. Главная особенность данной процедуры заключена в том, что числовые и текстовые надписи на изображении могут быть, вообще говоря, с произвольным размером шрифта.

I этап. Построение графика в Gnuplot.
 

Создадим простой график

$ gnuplot

set terminal epslatex newstyle color solid size 9cm, 8cm # размеры рисунка можно варьировать как угодно
set output "testplot.tex"
unset key
set format xy "$%g$"
set xtics 2.5
set ytics 2.5
set xlabel '$x$'
set ylabel offset +3.0 '$y$'
set xrange [0:5.5]
set yrange [-5.5:5.5]
plot sqrt(x) lt -1, -sqrt(x) lt -1


При желании можно создать файл с расширением .gnu (например, test1.gnu), поместив в него необходимые для построения графика команды, тогда в командной строке достаточно выполнить следующий код:

$ gnuplot test1.gnu

На выходе имеем два файла: testplot.eps, testplot.tex. В первом - содержатся только линии, подписей нет!!! Во втором - информация о подписях осей, а также числовые значения возле насечек на осях. 


II этап. Компиляция изображения.

Для того, чтобы собрать эти два файла в один, создадим файл build.tex. Его содержимое приведено ниже:

\documentclass[a4paper]{extreport}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{nopageno}
\usepackage{txfonts} % данный пакет позволяет вносить текст в изображение
\usepackage[usenames]{color}
\usepackage[14pt]{extsizes} % данный пакет подключает отличные от 11 и 12 размеры шрифта, [в скобках]

\begin{document}
\begin{center}
\input{testplot}
\end{center}
\end{document}


Теперь скомпилируем dvi-файл командой

$ latex build.tex

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

III этап. Редактирование изображения.

$ dvipdf build.dvi # переводим в pdf
$ pdfrcop build.pdf # обрезаем pdf до 9x8 см
$ pdf2ps build.pdf img1.ps # конвертируем в PostScript
$ ps2eps img1.ps # переводим в Encapsulated PostScript
$ rm build.dvi build.aux build.log # удаляем мусор


На выходе получился eps-файл с текстом 14-го шрифта.

Для автоматизации процесса можно создать Makefile или написать скрипт.
Tags: , , ,