diff options
author | Karl Berry <karl@freefriends.org> | 2008-03-14 00:26:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-03-14 00:26:22 +0000 |
commit | 8df6f8b096486d3886fc2a42ba79a6f5a4c587f7 (patch) | |
tree | 6ff8b7ceae6c40b7db55ed005ba81e49ecd490ad /Master/texmf-dist/doc/latex/sagetex/example.tex | |
parent | 3d96fa2455c0dbac611ab90f9ae59854fb40d3d9 (diff) |
new latex package sagetex (12mar08)
git-svn-id: svn://tug.org/texlive/trunk@6962 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/sagetex/example.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/sagetex/example.tex | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/sagetex/example.tex b/Master/texmf-dist/doc/latex/sagetex/example.tex new file mode 100644 index 00000000000..0f84e3152e6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/sagetex/example.tex @@ -0,0 +1,185 @@ +% General example LaTeX file for including Sage calculations and plots +% Build with: (pdf)latex example.tex; sage example.sage; pdflatex +% example.tex Please read README and the documentation of the SageTeX +% package for more information! + +\documentclass{article} +\title{Examples of embedding Sage in \LaTeX} +\author{} + +\usepackage{sagetex} +% +% If you want sagetex to use Imagemagick's convert utility to make eps +% files from png files when generating a dvi file, add the +% "imagemagick" option above: +% +% \usepackage[imagemagick]{sagetex} + +\begin{document} +\maketitle + +\section{Inline Sage, code blocks} + +This is an example $2+2=\sage{2+2}$. If you raise the current year mod +$100$ ($\sage{mod(\the\year, 100)}$) to the power of the current day +($\the\day$), you get $\sage{Integer(mod(\the\year, 100))^\the\day}$. +Also, $\the\year$ modulo $42$ is $\sage{\the\year \percent 42}$. + +Code block which uses a variable \texttt{s} to store the solutions: +\begin{sageblock} + var('a,b,c') + eqn = [a+b*c==1, b-a*c==0, a+b==5] + s = solve(eqn, a,b,c) +\end{sageblock} + +Solutions of $\mbox{eqn}=\sage{eqn}$: +\[ +\sage{s[0]} +\] +\[ +\sage{s[1]} +\] + +Now we evaluate the following block: +\begin{sageblock} +E = EllipticCurve("37a") +\end{sageblock} +You can't do assignment inside \verb|\sage| macros, since Sage doesn't +know how to typeset the output of such a thing. So you have to use a +code block. The elliptic curve $E$ given by $\sage{E}$ +has discriminant $\sage{E.discriminant()}$. + +You can do anything in a code block that you can do in Sage and/or +Python. Here we save an elliptic curve into a file. +\begin{sageblock} +try: + E = load('E2') +except IOError: + E = EllipticCurve([1,2,3,4,5]) + E.anlist(100000) + E.save('E2') +\end{sageblock} + +The 9999th Fourier coefficient of $\sage{E}$ is +$\sage{E.anlist(100000)[9999]}$. + +The following code block doesn't appear in the typeset file\dots +\begin{sagesilent} + e = 2 + e = 3*e + 1 +\end{sagesilent} +but we can refer to whatever we did in that code block: $e=\sage{e}$. + +\begin{sageblock} + var('x') + f = log(sin(x)/x) +\end{sageblock} +The Taylor Series of $f$ is: $\sage{ f.taylor(x, 0, 10) }$. + +\section{Plotting} + +Here's a plot of the elliptic curve $E$. + +\sageplot{E.plot(-3,3)} + +\begin{sagesilent} + var('x') + f=-x^3+3*x^2+7*x-4 +\end{sagesilent} + +You can use variables to hold plot objects and do stuff with them. +\begin{sageblock} + p = plot(f, x, -5, 5) +\end{sageblock} + +Here's a small plot of $f$ from $-5$ to $5$, which I've centered: + +\centerline{\sageplot[scale=.2]{p}} + +On second thought, use the default size of $3/4$ the \verb|\textwidth| +and don't use axes: + +\sageplot{p, axes=False} + +Remember, you're using Sage, and can therefore call upon any of the +software packages Sage is built out of. +\begin{sageblock} +f = maxima('sin(x)^2*exp(x)') +g = f.integrate('x') +\end{sageblock} +Plot $g(x)$, but don't typeset it. +\begin{sagesilent} + # g is a Maxima thingy, it needs to get converted into a Sage object + plot1 = plot(g.sage(),x,-1,2*pi) +\end{sagesilent} + +You can specify a file format and options for \verb|includegraphics|. +The default is for EPS and PDF files, which are the best choice in +almost all situations. (Although see the section on 3D plotting.) + +\sageplot[angle=45, width=.5\textwidth][png]{plot1} + +If you use regular \verb|latex| to make a DVI file, you'll see a box, +beause DVI files can't include PNG files. If you use \verb|pdflatex| +that will work. See the documentation for details. + +When using \verb|\sageplot|, you can pass in just about anything that +Sage can call \verb|.save()| on to produce a graphics file: + +\begin{center} +\sageplot{plot1 + plot(f.sage(),x,-1,2*pi,rgbcolor=hue(0.4)), figsize=[1,2]} +\end{center} + +\sageplot{graphs.FlowerSnark().plot()} + +\begin{sageblock} +G4 = DiGraph({1:[2,2,3,5], 2:[3,4], 3:[4], 4:[5,7], 5:[6]},\ + multiedges=True) +G4plot = G4.plot(layout='circular') +\end{sageblock} + +\sageplot{G4plot, axes=False} + +Indentation and so on works fine. +\begin{sageblock} + s = 7 + s2 = 2^s + P.<x> = GF(2)[] + M = matrix(parent(x),s2) + for i in range(s2): + p = (1+x)^i + pc = p.coeffs() + a = pc.count(1) + for j in range(a): + idx = pc.index(1) + M[i,idx+j] = pc.pop(idx) + + matrixprogram = matrix_plot(M,cmap='Greys') +\end{sageblock} +And here's the picture: + +\sageplot{matrixprogram} + +\subsection{3D plotting} + +3D plotting right now is problematic because there's no convenient way +to produce vector graphics. We can make PNGs, though, and since the +\verb|sageplot| command defaults to EPS and PDF, \emph{you must specify +a valid format for 3D plotting}. Sage right now (version 2.10.3) can't +produce EPS or PDF files from plot3d objects, so if you don't specify a +valid format, things will go badly. You can specify the +``\texttt{imagemagick}'' option, which will use the Imagemagick +\texttt{convert} utility to make EPS files. See the documentation for +details. + +Here's the famous Sage cube graph: + +\begin{sageblock} + G = graphs.CubeGraph(5) +\end{sageblock} + +% need empty [] so sageplot knows you want png format, and aren't +% passing an option to includegraphics +\sageplot[][png]{G.plot3d(engine='tachyon')} + +\end{document} |