Графики, созданные в gnuplot, легко и удобно использовать в документах LaTeX. Но есть одна проблема: шрифты, которые применяет gnuplot, отличаются от шрифтов LaTeX. Такой "разнобой" выглядит естественно в курсовой или отчете, но не в серьезной монографии. Исправить это можно с помощью XeLaTeX, позволяющего использовать нестандартные для TeX'а шрифты в тексте документа. Другой способ: выводить графики gnuplot на специальный терминал, создающий векторные изображения в виде команд пакета TikZ. В этом случае подписи на рисунках выполняются стандартными TeX'овскими шрифтами. Рассмотрим этот последний вариант.

Запустим gnuplot и выполним следующие команды

set term tikz          # переключить терминал в режим tikz
set output "sin.tex"   # сохранить результаты работы в файле "sin.tex"
plot sin(x) with lines # построить график функции y = sin(x) с помощью линий
exit                   # выйти из gnuplot

Выход из gnuplot нужен для завершения создания выходного файла sin.tex. Сохраненное в нем изображение tikzpicture будет примерно таким:

\begin{tikzpicture}[gnuplot]
%% generated with GNUPLOT 4.7p0 (Lua 5.1; terminal rev. 99, script rev. 100)
%% 25.08.2014 11:38:23
\path (0.000,0.000) rectangle (12.500,8.750);
\gpcolor{color=gp lt color border}
\gpsetlinetype{gp lt border}
\gpsetlinewidth{1.00}
\draw[gp path] (1.196,0.616)--(1.376,0.616);
\draw[gp path] (11.947,0.616)--(11.767,0.616);
\node[gp node right] at (1.012,0.616) {-1};
...
\draw[gp path] (1.196,6.611)--(1.305,5.914)--(1.413,5.160)--(1.522,4.379)--(1.630,3.603)%
...
  --(11.513,5.394)--(11.621,4.618)--(11.730,3.837)--(11.838,3.083)--(11.947,2.386);
\gpcolor{color=gp lt color border}
\gpsetlinetype{gp lt border}
\draw[gp path] (1.196,8.381)--(1.196,0.616)--(11.947,0.616)--(11.947,8.381)--cycle;
%% coordinates of the plot area
\gpdefrectangularnode{gp plot 1}{\pgfpoint{1.196cm}{0.616cm}}{\pgfpoint{11.947cm}{8.381cm}}
\end{tikzpicture}

Включим sin.tex в состав документа LaTeX (назовем его, к примеру, mysin.tex):

\documentclass{article}
\usepackage{gnuplot-lua-tikz}

\begin{document}

\begin{figure}
  \include{sin}
  \caption{TikZ plot from Gnuplot}
\end{figure}

\end{document}

Это обычный документ LaTeX. Единственной его особенностью является использование пакета gnuplot-lua-tikz, необходимого для трансляции созданных в gnuplot графиков.

Теперь транслируем документ и получаем

tikzgraph.png

В результате трансляции можно получить сообщение, что файл gnuplot-lua-tikz.sty не найден. Это происходит потому, что на вашей машине не установлен интерпретатор языка Lua, с помощью которого создается указанный стилевой файл.

Сразу успокоим скептиков: Lua изучать не придется, с его помощью нужно запустить всего один файл. Сам Lua -- бесплатен.

Последовательность операций:

  • Установить Lua (Скачать для Windows).
  • В установочном каталоге gnuplot/share/lua найти файл README и следовать его рекомендациям, а именно:
    • выполнить gnuplot-tikz.lua в Lua: lua gnuplot-tikz.lua style В результате будут созданы необходимые стилевые файлы.
    • скопировать стилевые файлы (для LaTeX это gnuplot-lua-tikz.sty и gnuplot-lua-tikz-common.tex) в каталог texmf\tex\latex\gnuplot-lua-tikz (В Windows для Miktex версии 2.9 это: C:\Users\Admin\AppData\Roaming\MiKTeX\2.9\tex\latex\gnuplot-lua-tikz\). Если вы не знаете, что это означает, то скопируйте файлы прямо в каталог c sin.tex.
  • Вернуться к трансляции документа (mysin.tex).


Комментарии

comments powered by Disqus