correct driver for what you’re doing (for example, a distribution that provides both
LaTeX and PDFLaTeX will usually provide a configuration file that determines whether
PDFLaTeX is running, and selects the definitions for it if so).
The graphics package provides a toolkit of commands (insert graphics, scale a
box, rotate a box), which may be composed to provide most facilities you need; the
basic command,
\includegraphics
,takes one optional argument, which specifies the
bounding box of the graphics to be included.
The graphicx package uses the facilities of of graphics behind a rather more sophis-
ticated command syntax to provide a very powerful version of the
\includegraphics
command. graphicx’s version can combine scaling and rotation, viewporting and clip-
ping, and many other things. While this is all a convenience (at some cost of syntax),
it is also capable of producing noticeably more efficient PostScript, and some of its
combinations are simply not possible with the graphics package version.
The epsfig package provides the same facilities as graphicx, but via a
\psfig
command (also known as
\epsfig
), capable of emulating the behaviour (if not the
bugs) the old psfig package. Epsfig also supplies homely support for former users of the
epsf package. However, there’s a support issue: if you declare you’re using epsfig, any
potential mailing list or usenet helper has to clear out of the equationthe possibility that
you’re using “old” epsfig, so that support is slower comingthan it would otherwise be.
There is no rational reason to stick with the old packages, which have never been
entirelysatisfactoryinthe LaTeX context. (One irrationalreasontoleavethem behind is
that their replacement’s name tends nottoimplythat it’s exclusivelyrelatedtoPostScript
graphics. The reasoning alsoexcludes epsfig, of course.)
Awide variety of detailedtechniques andtricks have been developed over the years,
and Keith Reckdahl’s epslatex outlines them in compendious detail: this highly recom-
mendable document is available from CTAN. An invaluable review of the practicalities
of exchanginggraphics between sites, “GraphicsforInclusioninElectronicDocuments
has been written by Ian Hutchinson; the document isn’t on CTAN, but may also be
browsed on the Web.
epsf.tex
:
macros/generic/epsf/epsf.tex
epsfig.sty
: Part of the
macros/latex/required/graphics
bundle
epslatex.pdf
:
info/epslatex
graphics.sty
:
macros/latex/required/graphics
graphicx.sty
: Part of the
macros/latex/required/graphics
bundle
miniltx.tex
:
macros/plain/graphics
psfig.sty
:
graphics/psfig
153 Imported graphics in dvips
Dvips, as originally conceived, can onlyimport a single graphics format: encapsulated
PostScript (
.eps
files,encapsulatedPostScript). Dvips also deals with the slightly
eccentric EPS that is created byMetapost.
Apart from the fact that a depressing proportion of drawing applications produce
corrupt EPS when asked for such output, this is pretty satisfactory for vector graphics
work.
To include bitmap graphics, you need some means of converting them to PostScript;
in fact many standard image manipulators (such as ImageMagick’s convert) make a
good job of creating EPS files (but be sure to ask for output at PostScript level 2 or
higher). (Unix users should beware of xv’s claims: it has a tendency to downsample
your bitmap to your screenresolution.)
Special purpose applications jpeg2ps (which converts JPEG files using PostScript
level2functionality),bmeps(whichconverts both JPEG andPNG files) anda2ping/sam2p
(whichconvert a bewildering array of bitmap formats to EPS or PDF files; sam2p is one
of the engines that a2ping uses) are also considered “good bets”.
Bmeps comes with patches to produce your own version of dvips that can cope
with JPEG and PNG direct, using bmeps’s conversion library. Dvips, as distributed
101
Pdf to html converter online - control Library platform:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
Pdf to html converter online - control Library platform:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
by MiKTeX, comes with those patches built-in, but assuming that capability destroys
portability, andis onlyrecommendable if you are sure you will never want toshare your
document.
a2ping
:
graphics/a2ping
bmeps
: Distributed as part of
support/dktools
jpeg2ps
:
support/jpeg2ps
sam2p
:
graphics/sam2p
154 Imported graphics in PDFLaTeX
PDFTeX itself has a rather wide range of formats that it can “natively” incorporate into
its output PDF stream: JPEG (
.jpg
files) for photographs and similar images, PNG
files for artificial bitmapimages, and PDF for vector drawings. Old versions of PDFTeX
(prior toversion1.10a) supportedTIFF (
.tif
files) format as analternative to PNG files;
don’t rely on this facility, even if you are running an old enough version of PDFTeX...
In addition to the ‘native’ formats, the standard PDFLaTeXgraphics package setup
causes Hans Hagen’s
supp-pdf
macros to be loaded: these macros are capable of
translatingtheoutput of Metapost toPDF “onthe fly”;thus Metapost output (
.mps
files)
may also be included in PDFLaTeX documents.
The commonest problem users encounter, when switching from TeX, is that there
is no straightforward way to include EPS files: since PDFTeX is its own “driver”, and
since it contains no means of converting PostScript to PDF, there’s no direct way the
job can be done.
The simple solution is to convert the EPS to an appropriate PDF file. The epstopdf
program will do this: it’s available either as a Windows executable or as a Perl script
to run on Unix and other similar systems. A LaTeXpackage, epstopdf, can be used to
generate the requisite PDF files “on the fly”; this is convenient, but requires that you
suppress one of TeX’s security checks: don’t allow its use in files from sources you
don’t entirely trust.
The package pst-pdf permits other things than‘mere’ graphics files in its argument.
Pst-pdf operates (the authors suggest) “like BibTeX” — you process your file using
PDFLaTeX, then use LaTeX, dvips and ps2pdf in succession, to produce a secondary
file to input to your next PDFLaTeX run. (Scripts are provided to ease the production of
the secondary file.)
Afurther extension is auto-pst-pdf, which generates PDF (essentially) transparently,
byspawning ajobtoprocess outputsuch as pst-pdf uses. If your PDFLaTeX installation
doesn’t automatically allow it — seespawningaprocess — then you need to start
PDFLaTeX with:
pdflatex -shell-escape <file>
for complete ‘automation’.
An alternative solution is to use purifyeps, a Perl script which uses the good offices
of pstoedit and of Metapost to convert your Encapsulated PostScript to“Something that
looks like the encapsulated PostScript that comes out of Metapost”, and can therefore
be included directly. Sadly, purifyeps doesn’t work for all
.eps
files.
Good coverage of the problem is to be found in Herbert Voß’sPDFsupportpage,
which is targeted at the use of pstricks in PDFLaTeX, and also covers the pstricks-
specific package pdftricks. A recent alternative (not covered in Herbert Voß’s page) is
pdftricks2, which offers similar facilities to pdftricks, but with some useful variations.
auto-pst-pdf.sty
:
macros/latex/contrib/auto-pst-pdf
epstopdf
: Browse
support/epstopdf
epstopdf.sty
DistributedwithHeikoOberdiek’spackages
macros/latex/
contrib/oberdiek
pdftricks.sty
:
graphics/pdftricks
pdftricks2.sty
:
graphics/pdftricks2
102
control Library platform:Online Convert PDF to HTML5 files. Best free online PDF html
Online PDF to HTML5 Converter. Download Free Trial. Convert a PDF file to HTML. Just upload your file by clicking on the blue button
www.rasteredge.com
control Library platform:XDoc.Converter for .NET, Support Documents and Images Conversion
Convert Word, Excel and PDF to image. Next Steps. Download Free Trial Download and try Converter for .NET with online support. See Pricing Check out the prices.
www.rasteredge.com
pst-pdf.sty
:
macros/latex/contrib/pst-pdf
pstoedit
:
support/pstoedit
purifyeps
:
support/purifyeps
155 Imported graphics in dvipdfm
Dvipdfm (and dvipdfmx) translates direct from DVI to PDF (all other available routes
produce PostScript output using dvips and thenconvert that to PDF withghostscriptor
Acrobat’s Distiller).
Dvipdfm/Dvipdfmx are particularly flexible applications. They permit the inclusion
of bitmap and PDF graphics (as doesPDFTeX), but are also capable of employing
ghostscript“onthefly”topermittheinclusionofencapsulatedPostScript(
.eps
)files
by translating them toPDF. In this way, theycombine the good qualities of dvips and of
PDFTeX as a means of processing illustrated documents.
Unfortunately, “ordinary” LaTeX can’t deduce the boundingbox of a binary bitmap
file (suchas JPEG or PNG), so youhave to specify the boundingbox. This may be done
explicitly, in the document:
\usepackage[dvipdfm]{graphicx}
...
\includegraphics[bb=0 0 540 405]{photo.jpg}
It’s usually not obvious what values to give the “
bb
”key, but the program ebb will
generate a file containing the information; the above numbers came from an ebb output
file
photo.bb
:
%%Title: /home/gsm10/photo.jpg
%%Creator: ebb Version 0.5.2
%%BoundingBox: 0 0 540 405
%%CreationDate: Mon Mar
8 15:17:47 2004
If such a file is available, you may abbreviate the inclusion code, above, to read:
\usepackage[dvipdfm]{graphicx}
...
\includegraphics{photo}
which makes the operation feel as simple as does including
.eps
images in a LaTeX
file for processing with dvips; the graphicx package knows to look for a
.bb
file if no
bounding box is provided in the
\includegraphics
command.
The one place where usage isn’t quite so simple is the need to quote dvipdfm
explicitly, as an option when loading the graphicx package: if you are using dvips, you
don’t ordinarily need tospecifythe fact, since the default graphics configurationfile (of
most distributions) “guesses” the
dvips
option if you’re using TeX.
dvipdfm
:
dviware/dvipdfm
dvipdfmx
:
dviware/dvipdfmx
ebb
: Distributed as part of
dviware/dvipdfm
156 “Modern” graphics file names
TeX was designedina world wherefile names wereverysimple indeed, typicallystrictly
limited both in character set and length. In modern systems, such restrictions have
largely disappeared, which leaves TeX rather at odds with its environment. Particular
problems arise with spaces in file names, but things like multiple period characters can
seriously confuse the graphics package.
The specification of TeX leaves some leeway for distributions to adopt file access
appropriate to their operating system, but this hasn’t got us very far. Many modern
distributions allow you to specify a file name as
"file name.tex"
(for example),
which helps somewhat, but while this allows us to say
\input "foo bar.tex"
103
control Library platform:C#: How to Use SDK to Convert Document and Image Using XDoc.
This online C# tutorial will tell you how to implement conversion to Tiff file from PDF, Word You may use our converter SDK to easily convert PDF, Word, Excel
www.rasteredge.com
control Library platform:VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
C#.NET: View Tiff in WPF. XDoc.Converter for C#; XDoc.PDF for C#▶: C#: ASP.NET PDF Viewer; C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress
www.rasteredge.com
the analogous usage
\includegraphics{"gappy graphics.eps"}
using“ordinary” LaTeX causes confusioninxdvi anddvips, even though itworks atcom-
pilation time. Sadly, even within such quotes, multiple dots give
\includegraphics
difficulties. Note that
\includegraphics{"gappy graphics.pdf"}
works in a similar version of PDFTeX.
If you’re using the graphics package, the grffile package will help. The package
offers several options, the simplest of which are
multidot
(allowing more than one dot
in a file name)and
space
(allowing space in a file name). The
space
option requires
that you’re running on a sufficiently recent version of PDFTeX, in PDF mode — and
even then it won’t work for Metapost files, which are read as TeX input, and therefore
use the standard input mechanism).
grffile.sty
: Distributed as part of
macros/latex/contrib/oberdiek
157 Importing graphics from “somewhere else”
By default, graphics commands like
\includegraphics
look “wherever TeX files are
found” for the graphic file they’re being asked to use. This can reduce your flexibility if
you choose to hold your graphics files in a common directory, away from your (La)TeX
sources.
The simplest solution is to patch TeX’s path, by changing the default path. On
most systems, the default pathis takenfrom the environmentvariable
TEXINPUTS
,if it’s
present; you can adapt that to take in the path it already has, by setting the variable to
TEXINPUTS=.:<graphics path(s)>:
on a Unix system; on a Windows system the separator will be “
;
”rather than “
:
”. The
.
”is there to ensure that the current directory is searched first; the trailing “
:
”says
“patch in the value of
TEXINPUTS
from your configuration file, here”.
This method has the merit of efficiency ((La)TeX does all of the searches, which is
quick), but it’s always clumsy and may prove inconvenient to use in Windows setups (at
least).
The alternative is to use the graphics package command
\graphicspath
;this
command is of course also available to users of the graphicx and the epsfig packages.
The syntax of
\graphicspath
’s one argument is slightly odd: it’s a sequence of paths
(typically relative paths), each ofwhich is enclosed in braces. A slightly odd example
(slightly modified from one given in the graphics bundle documentation) is:
\graphicspath{{eps/}{png/}}
which will search for graphics files in subdirectories
eps
and
png
of the directory in
which LaTeX is running. (Note that the trailing “
/
”is required.)
(Note that some (La)TeX systems will only allow you to use files in the current di-
rectory and its sub-directories, for security reasons. However,
\graphicspath
imposes
no such restriction: as far as it is concerned, you can access files anywhere.)
Be aware that
\graphicspath
does not affect the operations of graphics macros
other than those from the graphics bundle — in particular, those of the outdated epsf
and psfig packages are immune.
The slight disadvantage of the
\graphicspath
methodis inefficiency. The package
will call (La)TeX once for each entryin the list to look for a file, which of course slows
things. Further, (La)TeX remembers the name of any file it’s asked to look up, thus
effectively losing memory, so that in the limit a document that uses a huge numberof
graphical inputs could be embarrassed by lack of memory. (Such “memory starvation”
is pretty unlikely with any ordinary document in a reasonably modern (La)TeXsystem,
but it should be borne in mind.)
If your document is split into a variety of directories, and each directory has its
associated graphics, the importpackage maywellbethe thingfor you;see thediscussion
of “bits of document in other directories” (bitsofdocumentinotherdirectories).
104
control Library platform:VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
C#.NET: View Tiff in WPF. XDoc.Converter for C#; XDoc.PDF for C#▶: C#: ASP.NET PDF Viewer; C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress
www.rasteredge.com
control Library platform:C# HTML5 PDF Viewer SDK to convert and export PDF document to
C#.NET: View Tiff in WPF. XDoc.Converter for C#; XDoc.PDF for C#▶: C#: ASP.NET PDF Viewer; C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress
www.rasteredge.com
graphics
bundle:
macros/latex/required/graphics
import.sty
:
macros/latex/contrib/import
158 Portable imported graphics
Aregular need is a document to be distributed in more than one format: commonly
both PostScript and PDF. The following advice is based on a post by one with much
experience of dealing with the problem of dealing with EPS graphics in this case.
• Don’tspecifyadriverwhenloadingloadingwhicheverversionofthegraphics
package you use. The scheme relies on the distribution’s ability to decide which
driveris going to be used: the choice is between dvips and PDFTeX, in this case.
Be sure to exclude options
dvips
,
pdftex
and
dvipdfm
(dvipdfm is not used in
this scheme, but the aspirant PDF-maker may be using it for his output, before
switching to the scheme).
• Use
\includegraphics[...]{filename}
without specifying the extension(i.e.,
neither
.eps
nor
.pdf
).
• Forevery
.eps
file you will be including, produce a
.pdf
version, as described
inGraphicsinPDFLaTeX. Having done this, you will have two copies of each
graphic (a
.eps
and a
.pdf
file) in your directory.
• UsePDFLaTeX(ratherthanLaTeX–dvips–distillationorLaTeX–dvipdfm)topro-
duce your PDF output.
Dvipdfm’s charms are less than attractive here: the document itself needs to be altered
from its default (dvips) state, before dvipdfm will process it.
159 Repeated graphics in a document
Alogo or “watermark” image, or any other image that is repeated in your document,
has the potential to make the processed version of the document unmanageably large.
The problem is, that the default mechanisms of graphics usage add the image at every
point it’s to be used, and when processed, the image appears in the output file at each
such point.
Huge PostScript files are embarrassing; explaining why such a file is huge, is more
embarrassing still.
The
epslatex
graphics tutorialdescribesatechniqueforavoidingtheproblem:
basically, one converts the image that’s to be repeated into a PostScript subroutine, and
load that as a dvips prologue file. In place of the image, you load a file (with the same
bounding box as the image) containing no more than an invocation of the subroutine
defined in the prologue.
The
epslatex
technique is tricky, but does the job. Trickier still is the neat scheme
of converting the figure to a one-character Adobe Type 3 outline font. While this
technique is for the “real experts” only (the authorof this answer has never even tried
it), it has potential forthe same sort of space saving as the
epslatex
technique, with
greater flexibility in actual use.
More practical is Hendri Adriaens’ graphicx-psmin; you load this in place of
graphicx, so rather than:
\usepackage[<options>]{graphicx}
you will write:
\usepackage[<options>]{graphicx-psmin}
and at the start of your document, you write:
\loadgraphics[<bb>]{<list of graphics>}
andeach of the graphics in the list is converted to an“object”for use withinthe resulting
PostScript output. (This is, in essence, an automated versionof the
epslatex
technique
described above.)
Having loaded the package as above, whenever you use
\includegraphics
,the
command checks if the file you’ve asked for is one of the graphics in
\loadgraphics
105
control Library platform:RasterEdge for .NET Online Demo
PRODUCTS: XDoc.HTML5 Viewer for .NET; XDoc.Windows Viewer for .NET; XDoc.Converter for .NET; XDoc.PDF for .NET; Online Convert PDF to Html. SUPPORT:
www.rasteredge.com
control Library platform:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
C#.NET: View Tiff in WPF. XDoc.Converter for C#; XDoc.PDF for C#▶: C#: ASP.NET PDF Viewer; C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress
www.rasteredge.com
list. If so, the operation is converted into a call to the “object” rather thana new copy of
the file; the resulting PostScript can of course be much smaller.
Note that the package requires a recent dvips, version 5.95b (this version isn’t —
yet — widely distributed).
If your PostScript is destined for conversion to PDF, either by aghostscript-based
mechanism such as ps2pdf or by (for example) Acrobat Distiller, the issue isn’t so
pressing, since the distillation mechanism will amalgamate graphics objects whether or
not the PostScript has them amalgamated. PDFTeX does the same job with graphics,
automatically converting multiple uses into references to graphics objects.
graphicx-psmin.sty
:
macros/latex/contrib/graphicx-psmin
160 Limit the width of imported graphics
Suppose youhave graphics which may or may not be able to fit within the width of the
page; if they will fit, you want to set them at their natural size, but otherwise you want
to scale the whole picture so that it fits within the page width.
You do this by delving into the innards of the graphics package (which of course
needs a little LaTeX internals programming):
\makeatletter
\def\maxwidth{%
\ifdim\Gin@nat@width>\linewidth
\linewidth
\else
\Gin@nat@width
\fi
}
\makeatother
This defines a“variable”width whichhas theproperties you want. Replace
\linewidth
if you have a different constraint on the width of the graphic.
Use the command as follows:
\includegraphics[width=\maxwidth]{figure}
161 Top-aligning imported graphics
When TeX sets a line of anything, it ensures that the base-line of each object in the
line is at the same level as the base-line of the final object. (Apart, of course, from
\raisebox
commands...)
Most imported graphics have their base-line set at the bottom of the picture. When
using packages such as subfig, one often wants to align figures by their tops. The
following odd little bit of code does this:
\vtop{%
\vskip0pt
\hbox{%
\includegraphics{figure}%
}%
}
The
\vtop
primitive sets the base-line of the resulting object tothat of the first “line” in
it; the
\vskip
creates the illusion of an empty line, so
\vtop
makes the very top of the
box into the base-line.
In cases where the graphics are to be aligned with text, there is a case for making
the base-line one ex-height belowthe top of the box, as in:
\vtop{%
\vskip-1ex
\hbox{%
\includegraphics{figure}%
}%
}
106
Amore LaTeX-yway of doing the job (somewhat inefficiently) uses the calc package:
\usepackage{calc}
...
\raisebox{1ex-\height}{\includegraphics{figure}}
(this has the same effect as the text-align version, above).
The factis, you maychoose where the base-line ends up. This answer merelyshows
you sensible choices you might make.
162 Displaying Metapost output in ghostscript
Metapost ordinarily expects its output to be included in some context where the ‘stan-
dard’ Metafont fonts (that you’ve specified) are already defined — for example, as a
figure in TeX document. If you’re debugging your Metapost code, you may want to
view itinaghostscript-based(or some other PostScript) previewer, but note thatviewers
(evenghostscript) don’t ordinarily have the fonts loaded, and you’ll experience anerror
such as
Error: /undefined in cmmi10
Thereis provisioninMetapostfor avoidingthis problem: issuethe command
prologues
:= 2;
at the start of the
.mp
file.
Unfortunately, the PostScript that Metapost inserts in its output, following this
command, is incompatiblewithordinaryuse of thePostScript in inclusions into (La)TeX
documents, so it’s best to make the
prologues
command optional. Furthermore, Meta-
post takes a very simple-minded approach to font encoding: since TeX font encodings
are anything but simple, encoding of text in diagrams are another source of problems. If
you’resuffering suchproblems (the symptom is thatcharacters disappear, or are wrongly
presented) thesolutionis toview the ‘original’ Metapostoutput after processingthrough
LaTeX and dvips.
Conditional compilation may be done either by inputting
MyFigure.mp
indirectly
from a simple wrapper
MyFigureDisplay.mp
:
prologues := 2;
input MyFigure
or by issuing a shell command such as
mp ’\prologues:=2; input MyFigure’
(which will work without the quote marks if you’re not using a Unix shell).
Asuitable LaTeX route would involve processing
MyFigure.tex
,which contains:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\thispagestyle{empty}
\includegraphics{MyFigure.1}
\end{document}
Processing the resulting DVI file with the dvips command
dvips -E -o MyFigure.eps MyFigure
would then give a satisfactory Encapsulated PostScript file. This procedure may be
automated using the Perl script mps2eps, thus saving a certain amount of tedium.
The Plain TeX user may use an adaptation, by Dan Luecking, of a jiffy of Knuth’s.
Dan’s version mpsproof.tex will work under TeX to produce a DVI file for use with
dvips, or under PDFTeX to produce a PDF file, direct. The output is setup to looklike a
proof sheet.
Ascript application, mptopdf, is available in recent (La)TeXdistributions: it seems
fairly reliably to produce PDF from Metapost, so may reasonably be considered an
answer to the question...
107
mps2eps
:
support/mps2eps
mpsproof.tex
DistributedaspartoftheMetapostdistribution
graphics/
metapost
mptopdf
: Part of
graphics/metapost/contrib/tools/mptopdf
163 Drawing with TeX
Thereare many packages todopictures in (La)TeX itself (rather thanimporting graphics
created externally), ranging from simple use of LaTeX
picture
environment, through
enhancements like eepic, to sophisticated (but slow) drawing with PiCTeX. Depending
on your type of drawing, and setup, here are a few systems you may consider:
• The
picture
environmentprovides rather primitive drawing capabilities (anything
requiring more than linear calculations is excluded, unless a font can come to your
help). The environment’s tedious insistence on its own
\unitlength
,as the basic
measurement in a diagram, may be avoided by use of the picture package, which
detects whether a length is quoted as a number or as a length, and acts accordingly.
• epicwasdesignedtomakeuseoftheLaTeX
picture
environment somewhat less
agonising; eepic extends it, and is capable of using tpic
\special
commands to
improve printing performance. (If the
\special
saren’t available, the eepicemu
will do the business, far less efficiently.
• pict2e; thiswasadvertisedintheLaTeXmanual,butdidn’tappearfornearly
ten years after publication of the book! It removes all the petty restrictions that
surround the use of the
picture
environment. It therefore suffers only from the
rather eccentric drawing language of the environment, and is a far more useful tool
than the original environment has ever been. (Note that pict2e supersedes David
Carlisle’s stop-gap pspicture.)
• PiCTeXisavenerable,andverypowerful,system,thatdrawsbyplacingdotson
the page to give the effect of a line or curve. While this has the potential of great
power, it is (of course) much slower than any of the other established packages.
What’s more, there are problems with itsdocumentation.
• PSTricksgivesyouaccesstothe(considerable)powerofPostScriptviaasetof
TeX macros, whichtalk to PostScript using
\special
commands.SincePostScript
is itself a pretty powerful programming language, many astounding things can in
principlebeachievedusingPSTricks (a wide range of contributedpackages, ranging
from world mapping to lens design diagrams, is available). Pstricks’
\special
s
are by default specific to dvips, but there is a Pstricks ‘driver’ that allow Pstricks
to operate under XeTeX. PDFTeX users may use pst-pdf, which (like epstopdf —
seePDFLaTeXgraphics) generates PDF files using an auxiliary program, from
PSTricks commands (pst-pdf also requires a recent installation of the preview
package).
There is a PSTricks mailing list (
pstricks@tug.org
)which you mayjoin , or you
may just browse thelistarchives.
• pgf:whilepstricksisverypowerfulandconvenientfrom‘traditional’TeX,usingit
with PDFLaTeX is pretty tiresome: if you simply want the graphical capabilities,
pgf, together with its “user-oriented” interface tikz, may be a good bet for you.
While PDF has (in essence) the same graphical capabilities as PostScript, it isn’t
programmable; pgf provides LaTeX commands that will utilise the graphical
capabilities of both PostScript and PDF equally. Pgf has extensive mathematical
support, which allows it to rival PSTricks’ use of the computation engine within
PostScript. The pgf manual is enormous, but a simple introduction which allows
the user to get a feel for the capabilities of the system, is available at
http://
cremeronline.com/LaTeX/minimaltikz.pdf
• Metapost;youlikedMetafont,butnevergottogripswithfontfiles?TryMetapost
allthepower of Metafont, butit generates PostScriptfigures; Metapostis nowadays
part of most serious (La)TeX distributions. Knuth uses it for all his work.. .
Note that you can“embed”Metapostsourceinyourdocument(i.e., keepit in-line
with your LaTeX code).
108
• YoulikedMetafont(orMetapost),butfindthelanguagedifficult?Mfpicmakesup
Metafont or Metapost code for you using familiar-looking (La)TeX macros. Not
quite the full power of Metafont orMetapost, but a friendlierinterface, and with
Metapost output the results can be used equallywell ineither LaTeX or PDFLaTeX.
• YoulikedPiCTeXbutdon’thaveenoughmemoryortime?LookatthelateEitan
Gurari’s dratex: it is just as powerful, but is an entirely new implementationwhich
is not as hard on memory, is much more readable and is (admittedly sparsely) doc-
umented at
http://www.cse.ohio-state.edu/~gurari/tpf/html/README.
html
,as well as in the author’s book “TeX and LATeX: Drawing and Literate
Programming”, which remains available from on-line booksellers.
Inaddition, there are severalmeans of generating code for your graphics application
(asymptote, gnuplot and Metapost, atleast) in-line inyour document, and then have them
processed in a command spawned from your (La)TeX run. For details, seequestion.
dratex.sty
:
graphics/dratex
epic.sty
:
macros/latex/contrib/epic
eepic.sty
:
macros/latex/contrib/eepic
eepicemu.sty
:
macros/latex/contrib/eepic
mfpic
:
graphics/mfpic
preview.sty
:
macros/latex/contrib/preview
pspicture.sty
:
macros/latex/contrib/pspicture
pst-pdf.sty
:
macros/latex/contrib/pst-pdf
pgf.sty
:
graphics/pgf/base
pict2e.sty
:
macros/latex/contrib/pict2e
pictex.sty
:
graphics/pictex
picture.sty
: Distributed as part of
macros/latex/contrib/oberdiek
pstricks
:
graphics/pstricks
tikz.sty
: Distributed as part of
graphics/pgf/base
164 In-line source for graphics applications
Some of the free-standinggraphics applications may also be used (effectively) in-line in
LaTeX documents; examples are
asymptote Thepackageasymptote(providedintheasymptotedistribution)definesan
environment
asy
which arranges that its contents are available for processing, and
will therefore be typeset (after “enough” runs, in the ‘usual’ LaTeX way).
Basically, you write
\begin{asy}
h
asymptote code
i
\end{asy}
and then execute
latex document
asy document-
*
.asy
latex document
egplot AllowsyoutoincorporateGNUplotinstructionsinyourdocument,forprocess-
ing outside of LaTeX. The package provides commands that enable the user to do
calculation in GNUplot, feeding the results into the diagram to be drawn.
gmp AllowsyoutoincludethesourceofMetaPostdiagrams,withparametersofthe
diagram passed from the environment call.
109
emp Anearlierpackageprovidingfacilitiessimilartothoseofgmp(gmp’sauthorhopes
that his package will support the facilities emp, which he believes is in need of
update.)
mpgraphics Again,allowsyoutoprogramparametersofMetapostdiagramsfromyour
LaTeX document, includingthe preambledetails of theLaTeX codeinanyrecursive
call from Metapost.
In all cases (other than asymptote), these packages require that you canrunexternal
programs from within your document.
asymptote.sty
:
graphics/asymptote
egplot.sty
:
macros/latex/contrib/egplot
emp.sty
:
macros/latex/contrib/emp
gmp.sty
:
macros/latex/contrib/gmp
mpgraphics.sty
:
macros/latex/contrib/mpgraphics
165 Drawing Feynman diagrams in LaTeX
Michael Levine’s feynman bundle for drawing the diagrams in LaTeX2.09 is still
available.
Thorsten Ohl’s feynmf is designed for use with current LaTeX, and works in com-
bination with Metafont (or, in its feynmp incarnation, with Metapost). The feynmf
or feynmp package reads a description of the diagram written in TeX, and writes out
code. Metafont (or Metapost) can then produce a font (or PostScript file) for use in a
subsequent LaTeX run. For new users, who have access to Metapost, the PostScript
version is probably the better route, for document portability and other reasons.
Jos Vermaseren’s axodraw is mentioned as an alternative in the documentation of
feynmf, but it is written entirely in terms of dvips
\special
commands, and is thus
rather imperfectly portable.
An alternative approach is implemented by Norman Gray’s feyn package. Rather
than creating complete diagrams as postscript images, feyn provides a font (in a variety
of sizes) containing fragments, which you can compose to produce complete diagrams.
It offers fairly simple diagrams which look good in equations, rather than complicated
ones more suitable for display in figures.
axodraw
:
graphics/axodraw
feyn
font bundle:
fonts/feyn
feynman bundle
:
macros/latex209/contrib/feynman
feynmf/feynmp bundle
:
macros/latex/contrib/feynmf
166 Labelling graphics
“Technical”graphics (suchasgraphs anddiagrams) are oftenlabelledwith quitecomplex
mathematical expressions: there are few drawing or graphing tools that can do such
things (the honourable exception being Metapost, which allows you to program the
labels, in (La)TeX, inthe middle of specifying your graphic).
Placing ‘labels’ on graphics produced by all those other tools is what we discuss
here. (Note that the term “label” should be liberally interpreted; many of the techniques
were designed for use when applying labels to figures, but they may be used equally
well to draw funny faces on a figure .. . or anything.
The time-honoured psfrag package can help, if your image is included as an (en-
capsulated) PostScript file. Place an unique text in your graphic, using the normal text
features of your tool, and you can ask psfrag to replace the text with arbitrary (La)TeX
material. Psfrag’s “operative”command is
\psfrag{Orig text}{Repl text}
,which
instructs the system to replace the original (“unique”) text with the TeX-typeset replace-
ment text. Optional arguments permit adjustment of position, scale and rotation; full
details may be found in
pfgguide
in the distribution.
110
Documents you may be interested
Documents you may be interested