为什么这不能在 LaTeX PDF 模式下编译?

为什么这不能在 LaTeX PDF 模式下编译?

下面,当我使用 XeLaTeX 模式时,只需编译即可。您可以修改以便我可以构建 PDF LaTeX 模式吗?

\documentclass[pstricks,border=15pt,12pt]{standalone}

\usepackage{pst-plot}

\begin{document}

\pslegend[rt]
{
    \color{blue}\rule{5mm}{1mm} & \color{blue}$f(x)=e^x$ 

    \color{red}\rule{5mm}{1mm} & \color{red}$f(x)=\ln(x)$
}
\begin{psgraph}[algebraic]{->}(0,0)(-3,-3)(7,7){12cm}{!}

    \psplot[linecolor=blue]{-2.5}{2.5}{2^x}

    \psplot[linecolor=red]{2 -2.5 exp}{2 2.5 exp}{log(x)/log(2)}

    \psplot[linestyle=dashed]{-2}{6}{x}

\end{psgraph}

\end{document}

答案1

您可以通过pdflatex提供直接进行编译:1)您将pdf选项添加到文档类(它告诉 pstricks 加载auto-pst-pdf;该pstricks选项没有用,因为包是通过加载的pst-plot;2)您将 pstricks 代码封装在postscript环境中(该环境似乎存在一些问题psgraph);3)您使用-shell-escape开关启动 pdflatex(对于 TeX Live 和 Mac TeX),或者--enable-write18(对于 MiKTeX):

\documentclass[pdf,border=15pt,12pt]{standalone}

\usepackage{pst-plot}

\begin{document}

\begin{postscript}
    \pslegend[rt]
    {
        \color{blue}\rule{5mm}{1mm} & \color{blue}$f(x)=e^x$
        \color{red}\rule{5mm}{1mm} & \color{red}$f(x)=\ln(x)$
    }
    \begin{psgraph}[algebraic]{->}(0,0)(-3,-3)(7,7){12cm}{!}
        \psplot[linecolor=blue]{-2.5}{2.5}{2^x}
        \psplot[linecolor=red]{2 -2.5 exp}{2 2.5 exp}{log(x)/log(2)}
        \psplot[linestyle=dashed]{-2}{6}{x}
    \end{psgraph}
\end{postscript}

\end{document} 

在此处输入图片描述

答案2

该图使用pgfplots基于 TikZ 的包,然后也可以使用 PDF 模式的 pdfTeX 来编译文档。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      xmin=-3,
      xmax=6.5,
      ymin=-3,
      ymax=6.5,
      xlabel={$x$},
      ylabel={$y$},
      xtick={-3, ..., 6},
      ytick={-3, ..., 6},
      axis x line=middle,
      axis y line=middle,
      every axis x label/.append style={at={(axis cs:6.5, 0)}, right},
      every axis y label/.append style={at={(axis cs:0, 6.5)}, above},
      width=10cm,
      height=10cm,
    ]
      \addplot[blue, smooth] {exp(x)};
      \addlegendentry{$f(x) = e^x$}
      \addplot[red, domain=.0001:6.5, samples=250, smooth] {ln(x)};
      \addlegendentry{$f(x) = \ln(x)$}
      \addplot[dashed] {x};
    \end{axis}
  \end{tikzpicture}
\end{document}

结果

相关内容