Rotate a postsript file 90 degrees
So useful it deserves it's own page...
I was experiencing problems including ps files inside my tex documents... this is a list of some of the solutions I've tried/used. I usually use gnuplot to generate graphs and have found that using the terminal types pstex or postscript eps usually gives satisfactory results (Method 7 below).
Although some commands will rotate your postscript file, it may get rotated when including in the tex document to make it wrong again, for this reason it is best to use encapsulated postscript so that you have a clue about the position of the bounding box.
WARNING: These methods may not work for you today
This page is for your information, please send any feedback you can, see my contact details.
Method 1: in the a tex file
This is the way to do this when including an image inside a latex document;
\begin{figure}[] \begin{center} \includegraphics[width=14cm]{relativepath/file1_90.ps} \caption{Hardness as a function of the isothermal transformation temperature.} \label{hardness_evol} \end{center} \end{figure}
You can change the include graphics statement to be \includegraphics[angle=90,width=14cm]{relativepath/file1_90.ps}
This can cause all sorts of problems when pdflatex or latex decide to handle images differently, or you dont know enough about .sty files like myself. Not that I am a style file.
This method is reported to work with dvips but not with pdflatex
Method 2: Image manipulation
Open in image software, rotate image, save image. Pros: Works, Cons: Lossy and time consuming
Method 3: convert or mogrify on the command line
Read manual pages for convert and or mogrify. I used convert -rotate 90 file2.ps file2_90.ps
. Pros: Works after you work out the command, Cons: Lossy, command options depend on system.
Method 4: use postscript tools to rotate image on the command line
Read manual pages for ps, ps2ps, psnup, search the flipping web. I used psnup -l file1.ps file1_90.ps
. Pros: Works Cons: non.
According to the forum post I read this command from, it doesn't work if you need to rotate more than 90 degrees, because it is changing a value in the ps file to make it landscape or portrait. psnup is a tool for printing multiple pages per sheet. The manual page says (amongst other things) this:
The -l option should be used for pages which are in landscape orienta- tion (rotated 90 degrees anticlockwise). The -r option should be used for pages which are in seascape orientation (rotated 90 degrees clock- wise), and the -f option should be used for pages which have the width and height interchanged, but are not rotated.
Method 5: cludgy resize for gnuplot/latex
In gnuplot it is possible to generate the file in landscape/portriat mode, making the graph use the full page and then resize using 'height' and 'width' options when the image is included in the tex file.
Method 6: use pstex for gnuplot
The terminal pstex in gnuplot usually generates graphs that latex is happy to keep in the correct orientation, it also means the same fonts will be used for the graph as the rest of the document, avoiding having them mangled and resized in unsightly ways.
Method 7: use eps in gnuplot
I found that rotating images is a particular problem for postscript files generated by gnuplot, after successfully rotating them, they are rotated back into the wrong orientation when compiling the latex document. This problem can be avoided by using eps, this is done in gnuplot by specifying:
set terminal postscript eps
or
set terminal postscript enhanced eps
but not
set terminal postscript enhanced
Method 8: Convert to eps
using ps2epsi
- untested