我的目标是能够创造,即时,少量的图形——线性函数、二次函数、不等式,每种图形都有多个图。没有什么比你在高中代数 I 课程中看到的更复杂了。我还想能够为不等式图形着色。如果我应该为每种类型的函数提出不同的问题,请告诉我。
让我们从如何绘制图表开始这个问题y = 2x + 1
并转换为 PNG。我不需要图表中有太多细节——标有轴、数字标记和函数。背景网格会是一个加分项。
我还想转换为 PNG 图像。目前,我最接近的方法是文本(让我说清楚,我需要图表)在 TeXWorks (Windows)中生成{standalone}
PDF,最终我必须使用图像魔术师 convert
命令。
\documentclass[preview]{standalone}
\begin{document}
Hello, World!
y = 2x + 1
\end{document}
我选择pdfLaTeX
并生成 PDF。我接下来使用 ImageMagick 进行转换:
convert myfile.pdf myimage.png
这个过程确实可行,但很笨重。这些图像将用于 Web 应用程序,那么使用所有这些文件 I/O 动态生成它们真的是最好的方法吗?
tex2png
我试过了tex2png
,但它挂在PostScript 文件生成...步。
e:\downloads\tex2png>tex2png "\sum_{i=1}^N{i}=\frac{N(N+1)}{2}" result.png
[>] LaTeX File Generation...
[>] LaTeX File Compilation...
[>] PostScript File Generation...
答案1
这是用于生成图表的。它需要 pdflatex 选项--shell-escape
。您可以使用gnuplottex
或pgfplots
(带/不带gnuplot
)包进行绘图。
\documentclass[a4paper]{article}
\usepackage[miktex]{gnuplottex}
\usepackage{pgfplots}
\begin{document}
\section{GnuplotTeX}
\begin{gnuplot}[terminal=pdf, terminaloptions={font "Arial"}]
plot 2*x+1
\end{gnuplot}
\section{PGFPLOTS}
\begin{tikzpicture}
\begin{axis}[domain=-10:10, samples=50, smooth, no markers, enlargelimits=false]
\addplot {2*x+1};
\end{axis}
\end{tikzpicture}
\section{PGFPLOTS and GNUPLOT}
\begin{tikzpicture}
\begin{axis}[domain=-10:10, samples=50, smooth, no markers, enlargelimits=false]
\addplot gnuplot {2*x+1};
\end{axis}
\end{tikzpicture}
\end{document}
要生成.png
文件,您可以使用standalone
class with imagemagick
。但我更喜欢使用write18
facility。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{my-graph}
%
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel={$x-$ axis label},
ylabel={$y-$ axis label},xtick={-10,-8,-6,-4,-2,0,2,4,6,8,10},ytick={-18,-14,-10,-6,-2,2,6,10,14,18,21},
grid=both,domain=-10:10, samples=50, smooth, no markers, enlargelimits=false]
\addplot {2*x+1};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[xlabel={$x-$ axis label},
ylabel={$y-$ axis label},xtick={-10,-8,-6,-4,-2,0,2,4,6,8,10},ytick={-18,-14,-10,-6,-2,2,6,10,14,18,21},
grid=both,domain=-10:10, samples=50, smooth, no markers, enlargelimits=false]
\addplot gnuplot {2*x+1};
\end{axis}
\end{tikzpicture}
\end{document}
\end{filecontents*}
%
%pdflatexing my-graph
%
\immediate\write18{pdflatex --shell-escape my-graph}
% convert to PNG
\makeatletter
\immediate\write18{convert -density 200 -alpha on my-graph.pdf my-graph-\@percentchar02d.png}
\makeatother
\begin{document}
Check the folder containing this file. you will have \texttt{my-graph-00.png} and \texttt{my-graph-01.png} there.
\end{document}
因为这个image magick
应该已经安装了。您将.png
在与此主文件相同的文件夹中找到文件。