![PSTricks 的 EPS 输出](https://linux22.com/image/243166/PSTricks%20%E7%9A%84%20EPS%20%E8%BE%93%E5%87%BA.png)
我正在尝试EPS
从 PSTricks 代码生成一个文件。我在这里重现了我已经拥有的示例工作代码:
PSTricks---plotstyle LSM(最小二乘法)
以下是修改后的代码\PStoEPS
\documentclass[12pt]{article}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
0.0 0.0
144.321 0.84
159.407 0.8925
\end{filecontents*}
\usepackage{pst-plot,pstricks-add}
\usepackage{pst-eps}
\begin{document}
\readdata{\data}{data.dat}
\PSTtoEPS[bbllx=0,bblly=0,bburx=0,bbury=0]{test.eps}{%
\psset{xunit=0.6mm,yunit=30mm,xlabelFactor=$$,labelFontSize=\footnotesize,mathLabel=false}
\begin{pspicture}(0,0)(150,3)
\psaxes[axesstyle=frame,Dx=50,Dy=0.5, ticksize=0 4pt](150,3)
\listplot [xStart=0, xEnd=150,xunit=1,plotstyle=values,rot=90] {\data}
\listplot [xStart=0, xEnd=150,xunit=1,linewidth=1.5pt,linecolor=red,showpoints, dotstyle=square] {\data}
\end{pspicture}}
\end{document}
我的理解是,我需要将所有 PSTricks 代码括在 的最后一个参数中\PStoEPS
。在编译时,不会创建任何 DVI 文件,也不会创建其他后续输出 (eps)。我有三个问题:
如何正确设置
\PStoEPS
选项?需要什么编译序列才能获得
EPS
输出(LaTeX > DVI2ps?)是否需要指定边界框坐标?不会
\PStoEPS
产生EPS
紧密的边界框吗?
多谢...
更新:尝试使用pst2pdf
:
\documentclass[12pt]{article}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
0.0 0.0
144.321 0.84
159.407 0.8925
\end{filecontents*}
\usepackage{pst-plot,pstricks-add}
\usepackage{pst-eps}
%\usepackage{auto-pst-pdf}
\begin{document}
\pagestyle{empty}
\parindent=0pt
\readdata{\data}{data.dat}
\psset{xunit=0.6mm,yunit=30mm,xlabelFactor=$$,labelFontSize=\footnotesize,mathLabel=false}
\begin{pspicture}(0,0)(150,3)
\psaxes[axesstyle=frame,Dx=50,Dy=0.5, ticksize=0 4pt](150,3)
\listplot [xStart=0, xEnd=150,xunit=1,plotstyle=values,rot=90] {\data}
\listplot [xStart=0, xEnd=150,xunit=1,linewidth=1.5pt,linecolor=red,showpoints, dotstyle=square] {\data}
\end{pspicture}
\end{document}
在 DOS 提示符下,pst2pdf
对上述tex
文件运行命令,结果为:
! Undefined control sequence.
<argument> \data
l.23 ...0,xunit=1,plotstyle=values,rot=90] {\data}
?
他们pst2pdf
很难理解这些\listplot
论点。
生成文件的目标EPS
也是要有一个紧密的边界框。但使用文档类standalone
似乎会切掉轴,并且不会显示任何标签或刻度标记。
答案1
您可以将pstricks
图片嵌入到TeXtoEPS
环境中,然后使用它dvips -E
来获取具有紧密边界框的 EPS。以下方法对我有用:
% compile with latex --> dvips -E
\documentclass[12pt,dvips]{article}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
0.0 0.0
144.321 0.84
159.407 0.8925
\end{filecontents*}
\usepackage{pslatex}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{pst-plot,pstricks-add,pst-eps}
%\usepackage{pst-eps}
\begin{document}
\readdata{\data}{data.dat}
\begin{TeXtoEPS}
\psset{xunit=0.6mm,yunit=30mm,xlabelFactor=$$,labelFontSize=\footnotesize,mathLabel=false}
\begin{pspicture}(0,0)(150,3)
\psaxes[axesstyle=frame,Dx=50,Dy=0.5, ticksize=0 4pt](150,3)
\listplot [xStart=0, xEnd=150,xunit=1,plotstyle=values,rot=90] {\data}
\listplot [xStart=0, xEnd=150,xunit=1,linewidth=1.5pt,linecolor=red,showpoints, dotstyle=square] {\data}
\end{pspicture}
\end{TeXtoEPS}
\end{document}
使用以下命令进行编译:
latex graph.tex
dvips -E graph.dvi
生成的graph.ps
文件实际上是一个带有紧密边界框的 EPS 文件,下面通过在里面渲染来将其可视化\fbox
:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
% \fbox to visualize the dimensions
\fbox{\includegraphics{graph.ps}}
\end{document}
答案2
graph.ps
将生成的文件的名称更改为graph.eps
,
dvips -E graph.dvi -o [filename].eps
“-o [filename].eps” 只是将生成的文件 graph.ps 的名称更改为dvips -E graph.dvi
。[filename].eps
也是dvips graph.dvi -E -o [filename].eps
可以的。查看更多:http://solvcon.net/yyc/writing/2009/pstricks_eps.html
http://www.tug.org/texinfohtml/dvips.html