Графики, созданные в 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 графиков.
Теперь транслируем документ и получаем
В результате трансляции можно получить сообщение, что файл 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\
). Если вы не знаете, что это означает, то скопируйте файлы прямо в каталог csin.tex
.
- выполнить
- Вернуться к трансляции документа (
mysin.tex
).
Комментарии
comments powered by Disqus