我正在生成一个.eps
文件octave
使用此.m
文件:
function dummy
xlim([0 81]);
x = [0:0.01:81];
y=x.^0.5+x.^0.4+x.^0.3+x.^0.2+x.^0.1;
plot (x,y*1.85,"-;aaaa;",'linewidth',2,x,y*1.00,"-;bbbb;",'linewidth',2,x,y*1.25,"-;cccc;",'linewidth',2,x,x/2,"-;dddd;",'linewidth',2);
legend ("location", "northwest");
xlabel ("kkkk");
ylabel ("yyyy");
set (gca (), "xtick",[]);
set (gca (), "ytick",[]);
set (gca (), "fontname","DejaVuSans");
print('-dtex', 'dummy.tex');
endfunction
并将其包含在这个 LaTeX “容器”中:
\documentclass[12pt]{article}
\usepackage{psfrag}
\usepackage[dvips]{graphicx,color}
\thispagestyle{empty}
% You can run this by typing the following commands:
% latex 2dplot.tex
% dvips -o 2dplot.ps 2dplot.dvi
\begin{document}
% The syntax of the "psfrag" command is:
% \psfrag{tag}[<posn>][<psposn>][<scale>][<rot>]{replacement}
% See the file pfgguide.ps for full documentation.
\begin{figure}
\psfrag{aaaa}{\small{$y$}}
\psfrag{bbbb}{\small{$s_1 \cdot y$}}
\psfrag{cccc}{\small{$s_2 \cdot y$}}
\psfrag{dddd}{\small{$k(\Sigma + n + g)$}}
\psfrag{kkkk}{\small{$k$}}
\psfrag{yyyy}{\small{$y$}}
\includegraphics{dummy.eps}
\end{figure}
\end{document}
但psfrag
替换内容显示在页面左下角。
运行后latex ./dummy.tex
未出现任何错误。
答案1
实际图片上没有显示的替换件是可以的。摘自手册psfrag
:
使用 DVI 预览器查看输出时,例如
dviwin
或xdvi
每个图形的左侧将放置一个垂直的替换列表。此列表允许您检查替换的排版;它会在最终的 PostScript 版本中消失。不幸的是,DVI 驱动程序无法放置图顶部的 PSfrag 替换,因此您需要打印它或使用 PostScript 预览器(如 GhostView)
您应该将您的转换dvi
为ps
或pdf
或打印出来以便应用替换。
答案2
至于 Octave 的替代方案,我在 R 中的做法如下:
x <- seq(0, 81, by=.01)
y <- x^.5+x^.4+x^.3+x^.2+x^.1
dat <- data.frame(x, y1=y*1.85, y2=y, y3=y*1.25, y4=x/2)
library(lattice)
lp <- xyplot(y1+y2+y3+y4~x, dat, type="l", xlab="k", ylab="y",
main="Tour title here",
col = c('blue', 'red', 'green', 'cyan'),
key=list(x=0.05, y=0.95, text=list(c(expression(y),
expression(s[1] %.% y),
expression(s[2] %.% y),
expression(k(Sigma + n + g)))),
lines=list(lty=1, col=c('blue','red','green','cyan'))))
可以使用以下方式保存为 PDF
pdf("yourfilename.pdf", width=5, height=5)
print(lp)
dev.off()
postscript()
或者与EPS 输出功能完全相同。
结果如下:
答案3
一般来说,我倾向于通过修改创建图形项目的代码来修改图形项目。如果做不到这一点,我会使用 inkscape。这两个选项产生的图形可以在任何应用程序(例如演示应用程序、Web 应用程序)中使用,而不仅仅是在 latex 中使用。因此,考虑到这可能属于这一类,我建议你放弃使用 psfrag 的工作,因为你遇到了困难。