TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'd like to build up a 3D-Plot (based on pst-solides3d), where the function looks like

x=u, y=v and z=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} - \frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}.

I do not know, how to define this function - esp. the sine integral - within the \defFunction argument. Is the a Si function? Thanks in advance

share|improve this question
Bye the way - wouldn't it be great to be able to enter LaTeX-Math-Code directly here - maybe inside of ( ) or so? – Bastian Ebeling Mar 1 '11 at 9:46
You could always take a screen shot. – TH. Mar 1 '11 at 9:55
Indeed - but this is not that way easy or elegant as it would be to simply insert $a^2$ or (a^2). Further I think most of us here are also able to read Math-TeX code directly. – Bastian Ebeling Mar 1 '11 at 9:59
We had LaTeX math rendering on in the beginning, but requested to have it turned off: This is a site about TeX, not math. – Hendrik Vogt Mar 1 '11 at 10:08
up vote 13 down vote accepted

the package pst-func has a PostScript macro Si which expects a value on the stack and returns the integral. For more information see the documentation of pst-func. Here is only an idea of how it can be done. Don't know how to handle your values, because PostScript needs degrees for the sin function which can be done internally with DegtoRad:


\psset{Decran=50,viewpoint=10 20 40 rtp2xyz,lightsrc=viewpoint}
  {u tx@FuncDict begin Si end u 3 div sub u v Div RadtoDeg sin Pi dup mul div add }  
\psSolid[object=surfaceparametree,base=-1 1 -1 1,function=func,
         ngrid=40 40,hue=0 1]

$x=u$, $y=v$ and 
$z=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} - 
\frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)$

enter image description here

share|improve this answer
Hi Herbert, this is exactly what I needed. Thank you! – Bastian Ebeling Mar 1 '11 at 10:39
Now - this results in a new question for me: I tried your example compiling with xelatex - but it went wront. I thaugh with xelatex pstrick should compile fine, or? – Bastian Ebeling Mar 1 '11 at 10:46
@Bastian: yes, I had no problem with current TeXLive 2010 – Herbert Mar 1 '11 at 11:01
Hmmm, you are right - this problem only arises on MikTeX. It is time for me to remove this installation... ;-) Thanks again! – Bastian Ebeling Mar 1 '11 at 11:03

enter image description here

The Asymptote is capable of calculations of the integral of f from a to b using adaptive Simpson integration. However, when configured with the GNU Scientific Library (GSL), it includes Si(x) = int(sin(t)/t, t=0..x) function as well. plot-si.tex:


z&=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} - 
\frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)
=\frac{\Si(\pi x)}{\pi}-\frac{x}3 +\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)

import gsl;
import graph3;
import palette;
real f(pair p){return Si(pi*p.x)/pi-1/3*p.x+1/pi^2*sin(pi*p.x/p.y);}
real Arg(triple v) {return f((v.x,v.y));}
real ep=1e-7;
surface s=surface(f, (-1+ep,-1+ep),(1,1),nx=200);


run latexmk -f pdf plot-si.tex.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.