我有一些gnuplot代码,可以使用tikz终端创建图形。但是,我想在生成的.tex文件中添加一些tikz代码。
作为MWE,请考虑以下gnuplot代码:
set term tikz standalone
set output "out.tex"
plot sin(x)假设我想在生成的图上画一个圆,我可以使用\draw (2,2) circle [radius = 2cm]来完成。将此行添加到生成的.tex文件将生成以下代码:
\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8x]{inputenc}
\usepackage{gnuplot-lua-tikz}
\pagestyle{empty}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{\gpbboxborder}
\begin{document}
\begin{tikzpicture}[gnuplot]
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%!! ADDED BY HAND
\draw (2,2) circle [radius = 2cm];
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%% generated with GNUPLOT 5.0p3 (Lua 5.1; terminal rev. 99, script rev. 100)
...有没有办法告诉gnuplot,我想在图片上添加一些tikz代码,这样它就可以输出一个与我创建的文件类似的.tex文件?阅读文档后,我发现使用此终端可以设置前导码,但不能在其中包含tikz代码。我正在考虑的另一个选择是使用set print output_file,然后print我想要的代码,但是,要么首先在文件中打印代码,然后gnuplot覆盖它,要么在gnuplot打印输出覆盖它之后再打印它。
发布于 2016-11-13 06:43:11
也许这一点很接近:
set label 1 "\\tikz{\\draw [green] (2,2) circle [radius = 2cm];}" at screen 0.0, screen 0.0
set label 2 "by gnuplot" textcolor rgb "#00FF00" at 0, -0.6
set label 3 "manual" textcolor rgb "#0000FF" at 0, -0.5
set term tikz standalone
set output "out.tex"
plot sin(x)与手工绘制命令生成的圆相比,有一个较小的偏移量,但它可能足够接近。
请注意,这种方法不会直接将draw命令放在生成的tex文件中,它会将draw命令放入node中。我认为这导致了偏移量。Gnuplot生成以下代码:
\node[gp node left] at (0.000,0.000) {\tikz{\draw [green] (2,2) circle [radius = 2cm];}};

别忘了转义反斜杠。set label at之后的选项screen告诉gnuplot将标签放置在相对于屏幕坐标系的位置,从gnuplot命令行查看help coordinates。
https://stackoverflow.com/questions/40565959
复制相似问题