使用 PSTricks 在 latex 中绘制曲线

使用 PSTricks 在 latex 中绘制曲线

我想在乳胶中画一条曲线,但是当我输入此代码时

\psset{algebraic=true}
\pspicture(-2,-0.5)(2,2)

\psline{<->}(-2,0)(2,0)
\psline{->}(0,-0.5)(0,2)
\psplot{-1.5}{1}{x*x+x}

\endpspicture

出现这些错误

! Undefined control sequence.<recently read> \c@lor@to@ps \psline(
! Undefined control sequence.\XC@usec@lor ...string \color@ #1#2\endcsname \@@\fi \space \psline(
! Undefined control sequence.<recently read> \c@lor@to@ps \psline

请有人帮助我,因为我不明白为什么会出现这个错误。

\documentclass{article}
\usepackage[french]{babel} 
\usepackage{color} 
\usepackage{xcolor} %les couleurs 
\definecolor{myblue}{rgb}{0.2,0.4,1} 
\usepackage{layout} 
\usepackage[top=2 cm, bottom=2 cm, left=2 cm, right=2 cm]{geometry} 
\usepackage{setspace} 
\usepackage{graphicx} 
\usepackage{array} 
\usepackage{pstricks-add} 
\usepackage{pst-eucl} 

\begin{document} 
\psset{algebraic=true} 
\pspicture(-2,-0.5)(2,2) 
\psline{<->}(-2,0)(2,0) 
\psline{->}(0,-0.5)(0,2) 
\psplot{-1.5}{1}{x*x+x} 
\endpspicture 
\end{document} 

答案1

你的 MWE 的主要问题是

\usepackage[pdftex]{graphicx}

使用时PSTricks会引起一些问题(除非你使用如何在 pdfLaTeX 中使用 PSTricks?

还要注意,不需要加载colorANDxcolor包 - 仅需加载xcolor将来的包。

我已将您的代码精简为以下内容,它可以与例程xelatex一起使用latex->dvips->ps2pdf

在此处输入图片描述

\documentclass{article}
\usepackage[french]{babel} 
\usepackage{pstricks-add} 

\begin{document} 
\psset{algebraic=true} 
\pspicture(-2,-0.5)(2,2) 
\psline{<->}(-2,0)(2,0) 
\psline{->}(0,-0.5)(0,2) 
\psplot{-1.5}{1}{x*x+x} 
\endpspicture 
\end{document} 

答案2

当使用 PStricks 进行 PDF 输出时,您需要

  1. 使用 进行编译latex然后运行dvi2pdf
  2. 用 编译xelatex
  3. pdflatex使用进行编译\usepackage{auto-pst-pdf}

前两种情况需要pdftex从 中删除该选项\usepackage{graphicx},而第三种情况仍然建议省略该选项。

或者,你可以

  1. 使用pgfplots,它与 本身兼容pdflatex。例如

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, enlargelimits=true, xtick=\empty, ytick=\empty]
\addplot [domain=-1.5:1, thick] {x^2+x};
\end{axis}
\end{tikzpicture}
\end{document}

会给你

答案3

使用以下方式绘制曲线,并提供自己的数据点pstricks可以使用pst-plot。您可以直接在文件中输入数据.tex,也可以从外部文件中读取数据。以下是取自pst-plot文档(参见章节2 绘制数据记录,第5-6页):

在此处输入图片描述

\documentclass{article}
\usepackage{pst-plot}% http://ctan.org/pkg/pst-plot
\usepackage{filecontents}% http://ctan.org/pkg/filecontents
\begin{document}
\begin{pspicture}(4,3)
  \psset{xunit=.2cm,yunit=1.5cm}
  \savedata{\mydata}[
    {{0, 0}, {1., 0.946083}, {2., 1.60541}, {3., 1.84865}, {4., 1.7582},
    {5., 1.54993}, {6., 1.42469}, {7., 1.4546}, {8., 1.57419},
    {9., 1.66504}, {10., 1.65835}, {11., 1.57831}, {12., 1.50497},
    {13., 1.49936}, {14., 1.55621}, {15., 1.61819}, {16., 1.6313},
    {17., 1.59014}, {18., 1.53661}, {19., 1.51863}, {20., 1.54824}}]
  \dataplot[plotstyle=curve,showpoints,dotstyle=triangle]{\mydata}
  \psline{<->}(0,2)(0,0)(22,0)
\end{pspicture}

\bigskip

\begin{filecontents*}{foo.data}
[{0, 0}, {1., 0.946083}, {2., 1.60541}, {3., 1.84865}, {4., 1.7582},
 {5., 1.54993}, {6., 1.42469}, {7., 1.4546}, {8., 1.57419},
 {9., 1.66504}, {10., 1.65835}, {11., 1.57831}, {12., 1.50497},
 {13., 1.49936}, {14., 1.55621}, {15., 1.61819}, {16., 1.6313},
 {17., 1.59014}, {18., 1.53661}, {19., 1.51863}, {20., 1.54824}]
\end{filecontents*}

\begin{pspicture}(4,3)
  \psset{xunit=.2cm,yunit=1.5cm}
  \readdata{\foo}{foo.data}
  \dataplot[plotstyle=curve,showpoints,dotstyle=diamond]{\foo}
  \psline{<->}(0,2)(0,0)(22,0)
\end{pspicture}

\end{document}​

答案4

使用pdflatex --shell-escape filename.tex或进行编译xelatex --shell-escape filename.tex

%filename.tex
\documentclass{article}

\usepackage{filecontents}

\begin{filecontents*}{xxx.tex}
\documentclass[pstricks,border=0pt]{standalone}
\usepackage{pstricks-add} 
\begin{document} 
\pspicture*[showgrid](-2,-1)(2,2) 
    \psaxes{->}(0,0)(-1.75,-0.75)(1.5,1.5)[$x$,0][$y$,90]
    \psplot[algebraic,linecolor=red]{-1.5}{1}{x^2+x} 
\endpspicture* 
\end{document} 
\end{filecontents*}


\usepackage{graphicx}

\def\fig#1#2{
    \immediate\write18{xelatex #1}%
    \begin{figure}
        \centering
        \includegraphics[width=0.5\linewidth]{#1}
        \caption{#2}
        \label{fig:#1}
    \end{figure}%
}
\begin{document}
    \fig{xxx}{This is the graph of $y=f(x)=x^2+x$}
\end{document}

在此处输入图片描述

相关内容