Enter your search keyword(s):

Click to search our directories-AllWebHunt, Encyclopedic, TopChoice, Or Google, Alexa, About & Yahoo:

 


Online Texts
Home / Top / Science / Math / Publications / Online Texts See also:
Related articles

Edit | Discuss Article

PostScript

PostScript (PS) is a page description language used primarily in the electronic and desktop publishing areas.

Table of contents
1 History
2 Usage in printing
3 Usage as a display system
4 The language
5 See also
6 External links

History

The concepts of the PostScript language were seeded in 1976 when John Warnock was working at Evans and Sutherland, a famous computer graphics company. At that time John Gaffney was developing an interpreter for a large three-dimensonal graphics database of New York harbour. Gaffney conceived the Design System language to process the graphics, very similar to the Forth programming language.

In 1978 Evans and Sutherland asked Warnock to move from the San Francisco bay area to their main headquarters in Utah, but he was not interested in moving. He then joined Xerox PARC to work with Martin Newell. They rewrote Design System to create JaM (John and Martin) which was used for VLSI design and the investigation of type and graphics printing. This work later evolved into an expanded system known as Interpress.

After watching Xerox sit on Interpress, as they had with many of their other technologies, Warnock left with Chuck Geschke and founded Adobe Systems in December 1982. They started selling a simpler version of Interpress as PostScript, which went on the market in 1985. At about this time they were visited by Steve Jobs, who urged them to adapt PostScript to be used as the language for driving laser printers, which was added to a Canon printing engine to create the LaserWriter.

In March of 1985, the Apple LaserWriter was the first printer to ship with PostScript, sparking the desktop publishing (DTP) revolution in the mid-1980s. The combination of technical merits and widespread availability made PostScript a language of choice for graphical output for printing applications. For a time an interpreter for this language was a ubiquitous component of laser printers, into the 1990s.

Once the de facto standard for electronic distribution of final documents, PostScript has effectively been succeeded by PDF in this area. By 2001 there were fewer printer models which came with support for PostScript, largely as a result of the increasing power of the built-in printing systems supplied with most operating systems.

Usage in printing

Traditional printing

Prior to the introduction of PostScript, printers were designed to print character output given the text—typically in ASCII—as input. There were a number of technologies for this task, but most shared the property that the characters were physically difficult to change, as they were stamped onto typewriter keys, bands of metal, or optical plates.

This changed to some degree with the increasing popularity of dot matrix printers. The characters on these systems were "drawn" as a series of dots, the proper dots to use defined as a font table inside the printer. As they grew in sophistication, dot matrix printers started including several built-in fonts from which the user could select, and some models allowed the user to download their own custom character graphics into the printer.

Dot matrix printers also introduced the ability to print raster graphics. The graphics were interpreted by the computer and sent as a series of dots to the printer using a series of escape sequences. These printer control languages varied from printer to printer, requiring program authors to create numerous drivers.

"Real" graphics printing was left to special-purpose devices, called plotters. Plotters did share a common command language, HPGL, but were of limited use for anything other than printing graphics. In addition, they tended to be expensive and slow, and thus rare.

PostScript printing

PostScript broke tradition by combining the best features of both printers and plotters. Like plotters, PostScript offered a high quality line art and a single control language that could be used across any brand of printer. Like dot-matrix printers, PostScript offered simple ways to generate pages of text and raster graphics. Unlike either, PostScript could place all of these types of media on a single page, which offered far more flexibility than any printer or plotter previously had.

PostScript went beyond the typical printer control language, and was a complete programming language of its own. Many applications can transform a document into a PostScript program whose execution will result in the original document. This program can be sent to an interpreter in a printer, which results in a printed document, or to one inside another application, which will display the document on-screen. Since the document-program is the same regardless of its destination, it is called device-independent.

PostScript is also noteworthy for implementing on-the fly rasterisation; everything, even text, is specified in terms of straight lines and Bézier curves (previously found only in CAD applications), which allows arbitrary scaling, rotating and other transformations. When the PostScript program is interpreted, the interpreter converts these instructions into the dots needed to form the output.

Font handling

Almost as complex as PostScript itself was PS's handling of fonts. The rich font system used the PS graphics primitives to draw characters as line art, which could then be rendered at any resolution. This might sound like a reasonably straightforward concept, but there are a number of typographic issues that had to be considered.

One is that fonts do not actually scale linearly at small sizes; features of the characters will become proportionally too large or small and they start to "look wrong". PostScript avoided this problem with the inclusion of hints which could be saved along with the font outlines. Basically they are additional information in horizontal or vertical bands that help identify the features in each letter that are important for the rasterizer to maintain. The result was significantly better-looking fonts even at low resolution; it was formerly believed that hand-tuned bitmap fonts were required for this task.

At the time the technology for including these hints in fonts was carefully guarded, and the hinted fonts were compressed and encrypted into what Adobe called a Type 1 Font. Type 1 was effectively a simplification of the PS system to store outline information only, as opposed to being a complete language (PDF is similar in this regard). Adobe would then sell licenses to the Type 1 technology at a very high cost to those wanting to add hints to their own fonts. Those who were happy without hints, or didn't want to spend the money, were left with the so-called Type 3 Font. Type 3 fonts allowed for all the sophistication of the PostScript language, but without the standardized approach to hinting. Other differences further added to the confusion.

The cost of the licensing was considered by many to be too high, and Adobe continued to stonewall on more attractive rates. It was this issue that led Apple and Microsoft to collaborate on their own system, TrueType, around 1991. Immediately following the announcement of TrueType, Adobe published the specification for Type 1 fonts. Retail tools such as Altsys Fontographer (now owned by Macromedia) added the ability to create Type 1 fonts. Since then, many free Type 1 fonts have been released; for instance, the fonts used with the TeX typesetting system are available in this format.

In the early 1990s there were several other systems for storing outline-based fonts, developed by Bitstream and Metafont for instance, but none included a general-purpose printing solution and they were therefore not widely used as a result.

Other implementations

Adobe derived most of their licensing fees from their implementation of PostScript for printers, known as a raster image processor or RIP. These were fairly expensive, and typically ran on a limited selection of hardware. With the introduction of a number of RISC-based platforms in the mid 1980s, Adobe always seemed to be a step behind in supporting the new machines.

Third-party implementations of PostScript interpreters became quite common as a result. These tended to be found either in low-cost laser printers, or in high-end typesetting equipment. Some of these third-party solutions are still widely used in the typesetting world, particularly the one developed by Phoenix Systems that is standard in all black-and-white Hewlett-Packard laser printers (as of 2003).

However, many printers don't support any RIP in their basic versions. For these, a free PostScript interpreter called Ghostscript is available. It prints PostScript documents on non-PostScript printers using the CPU of the host computer to do the rasterization, sending the result as a single large bitmap to the printer. It can also be used to preview PostScript documents on a computer monitor.

Usage as a display system

With PostScript becoming a de-facto standard for printed output, it was natural to consider using the same language for describing the screen output as well. The rapid increase in CPU power in the late 1980s, combined with an interest in windowing systems, led to several attempts to create a display system that used PostScript as its primary display technology.

There are a number of advantages to using PS as the display system. One is that the fonts on other systems required the user to keep not only bitmaps for the screen, but also Type 1 for the printer. Using PS on the display would eliminate this and require only one set. Another advantage is that it allows for the "dumbing down" of printers. When the LaserWriter was released it was the most powerful (and expensive) machine in Apple's lineup, a result of needing considerable processing power and memory to render the page at a "high" resolution of 300 dpi in a reasonable amount of time. In contrast, the 400-dpi printer that shipped with the NeXT platform contained no CPU at all, instead using the computer's CPU to do the rendering and passing off the rendered page as a bitmap to the printer.

But the main advantage in using PostScript as a windowing system is that it allows one to write desktop publishing (DTP) and other graphically-intensive applications with a single set of graphics routines. The same code that is drawing to the window can be used to draw to the printer without any translation. DTP applications on traditional systems require the programmer to construct the GUI editor in the platform's own graphics system (for example, QuickDraw on the Macintosh, or GDI on Microsoft Windows) and then write additional code to translate the graphics into proper PostScript for printing. This often takes up the majority of the programming effort on such projects and is a major source of bugs.

The two main examples of PostScript as a display technology are Display PostScript (DPS) and NeWS. They differed dramatically in terms of where the display logic was applied; in DPS the view system was left to the hosting OS, whereas under NeWS the entire display was written in PS and ran in a single complex interpreter. While certainly very interesting, it's not clear that NeWS is in fact a better approach.

The language

PostScript is a full-fledged, Turing-complete, programming language. Typically, PostScript programs are not produced by humans, but by other programs. However, it is perfectly possible to produce graphics or to perform calculations by hand-crafting PostScript programs.

PostScript is an interpreted, stack-based language similar to Forth. The language syntax uses reverse Polish notation, which makes parentheses unnecessary, but reading a program requires some practice, because one has to keep the layout of the stack in mind. Most operators (what other languages term functions) take their arguments from the stack, and place their results onto the stack. Literals (for example numbers) have the effect of placing a copy of themselves on the stack.

Example:

 3 4 add 5 1 sub mul

will compute (3 + 4) * (5 - 1).

A look at what happens in detail:

3 and 4 are both literals, so will push themselves onto the stack. So after these two instructions, the stack will look like this:

4
3

add is an operator, taking the two top-most elements from the stack (3 and 4 in our example), adds them together, and pushes the result onto the stack:

7

Next come two literals again, which will make the stack look like this (note that action is usually constrained to the top of the stack, leaving lower elements unchanged):

1
5
7

Another operator, sub, takes two elements from the top, subtracts the first (higher one) from the second, and pushes the result onto the stack:

4
7

It should be obvious that mul works like the other operators, taking its two arguments from the stack, and pushing their product:

28

But this did nothing more than an old RPN calculator. Of course, PostScript has variables. In detail, it has a dictionary where everything that is not a literal is looked up; on a match, the current value stored under the name is pushed; mismatches will result in an error. To place something in the dictionary one needs the def operator, which takes a name and a value as its arguments. Names are constructed by prefixing (or quoting) with a slash. So

 /x1 15 def

will first push the name "x1" on the stack, then the value 15, then execute def which will take both from the stack, and write 15 into the dictionary under the name "x1". Later occurrences of "x1" (not to be confused with "/x1") will push 15 onto the stack as long as the variable is unchanged. This code will increment the content of x1 by 2:

/x1 x1 2 add def

Some real programming language power is offered by { and }. The opening brace puts the interpreter in deferred execution mode, so that everything is just placed on the stack, even operators and other executable objects. The one exception is the closing brace, which takes everything put on the stack since the opening brace, bundles it up into an (anonymous) procedure, and places that on the stack.

This construct is used in various ways, for subroutine definition (the anonymous procedure is assigned to a variable), loops, conditionals, etc. Example:

x1 0 eq { 0 } { 1 x1 div } ifelse

This code first uses the eq operator to test whether the value of x1 is equal to 0; depending on the outcome eq will push true or false onto the stack. After that, two procedures are pushed onto the stack. Then ifelse is executed, which takes three arguments from the stack, and will execute either the second (if the third is true) or first (if the third is false). In summary, 0 results if x1 is 0, 1/x1 is the result for all other cases.

/inc3 { 3 add } def

Here def is used to place something in the dictionary, only this time it is a procedure instead of a simple integer. This works because the values coming from the dictionary are executed, not just pushed (as simplistically stated above). Since executing a literal amounts to pushing it, that did not make a difference before. Now executing "inc3" will first look it up in the dictionary, find the procedure object representing "{ 3 add }" and execute that. One value must reside on the stack for this to work, since add needs two arguments, only one of which is given in the procedure itself. Naturally, one passes arguments to procedures by placing them on the stack, so we can simply view "inc3" as a procedure that takes one argument. Example call:

71 inc3

will put 71 on the stack, which inc3 will increment by three, for a final result of 74.

To produce graphics, PostScript uses an ordinary cartesian coordinate system.

100 200 moveto 300 400 lineto stroke

moves the "cursor" to the point with coordinates (100, 200) and then draws a line to the point (300, 400).

50 70 moveto 100 200 50 80 100 100 curveto stroke

produces a Bézier curve from (50, 70) to (100, 100) with control points (100, 200) and (50, 80).

250 250 moveto (Wikipedia) show

will create the text "Wikipedia" at coordinate location (250, 250), rendered in a preselected font (using a possible command string such as /Courier findfont 12 scalefont setfont)

Graphics are initially produced in the "user coordinate system" and may then optionally be rotated, scaled or skewed before being copied to the "device coordinate system" specifying the final output.

 200 300 translate 45 rotate

will translate the contents of the user coordinate system 200 points upwards, 300 points to the right and rotate it 45 degrees before they are copied to the device coordinate system.

The character "%" is used to introduce comments in PostScript programs. As a general convention, every PostScript program should start with the characters "%!" so that all devices will properly interpret it as PostScript.

See also

External links

  • PostScript Language Reference, third edition is the de facto defining work, known as "The Red Book" on account of its covers. The first edition covered PostScript Level 1, the second edition covered a greatly expanded language known as PostScript Level 2, and includes documentation for Display PostScript as well. The third edition covers PostScript 3 (with this version, Adobe dropped "level" from the name) but no longer includes DPS.
  • PostScript Language Tutorial and Cookbook is the corresponding introductory text, known as "The Blue Book" on account of its covers. It's an unusally good tutorial book, with lots of excellent examples.
  • First Guide to PostScript is an introduction to the PostScript system.

PostScript hacks

redirect

This article (or an earlier version of it) contains material from FOLDOC's article on PostScript, used with permission.


Source | Copyright


Webmasters: Add your website here:

Readers: Edit | Discuss Listings

Linear Methods of Applied Mathematics
Textbook suitable for a first course on partial differential equations, Fourier series and special functions, and integral equations by Evans M. Harrell II and James V. Herod. HTML, RTF and PDF with Maple and Mathematica worksheets.
http://www.mathphysics.com/pde/

Algebraic Topology
Basic core material along with a number of optional topics of a relatively elementary nature by Allen Hatcher. PDF and Postscript.
http://www.math.cornell.edu/~hatcher/

Generatingfunctionology
By Herbert S. Wilf. Published by Academic Press. PDF.
http://www.math.upenn.edu/~wilf/DownldGF.html

Euclid's Elements
Edited by D.E. Joyce. HTML text with Java applets.
http://aleph0.clarku.edu/~djoyce/java/elements/toc.html

Fundamentals of Model Theory
Introductory textbook by William Weiss and Cherie D'Mello. PostScript, DVI, GIF.
http://at.yorku.ca/i/a/a/i/10.htm

Probability
"Introduction to Probability" by Charles M. Grinstead and J. Laurie Snell in PDF. Published by the AMS. The site also contains additional teaching resources.
http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/book.html

A=B
Combinatorics text by Marko Petkovsek, Herbert Wilf and Doron Zeilberger. Published by A. K. Peters. PDF.
http://www.cis.upenn.edu/~wilf/AeqB.html

Abstract Algebra
Three books by Robert B. Ash (chapters in PDF): Abstract Algebra: The Basic Graduate Year, A Course In Algebraic Number Theory, and A Course In Commutative Algebra.
http://www.math.uiuc.edu/~r-ash/

Numerical Recipes Books On-Line
The complete Numerical Recipes books in C, Fortran 77, and Fortran 90 On-Line, in both PostScript and Adobe Acrobat formats.
http://www.nr.com/nronline_switcher.html

Algorithms and Complexity
By Herbert S. Wilf. In print 1986-1994. Single PDF file.
http://www.cis.upenn.edu/~wilf/AlgComp2.html

Mixed Motives
Monograph by Marc Levine published by AMS in 1998. Whole book or chapters in PDF.
http://www.ams.org/online_bks/surv57/surv57.pdf

Tensor Calculus and Continuum Mechanics
Textbook by John H. Heinbockel. Whole book or chapters in PostScript and PDF.
http://www.math.odu.edu/~jhh/counter2.html

Measure Theory and Integration
Lecture notes by Vitali Liskevich in DVI from a course taught at the Univ. of Bristol.
http://www.maths.bris.ac.uk/~pure/staff/maval/an3.html

Topology Course Lecture Notes
By Aisling McCluskey and Brian McMaster. HTML with symbol fonts, DVI and PostScript.
http://at.yorku.ca/i/a/a/b/23.htm

Differential Geometry
Notes by Balázs Csikós. Chapters in PostScript.
http://www.cs.elte.hu/geometry/csikos/dif/dif.html

Finite Element Method/Boundary Element Method
Notes by Peter Hunter and Andrew Pullan. Postscript and PDF.
http://www.esc.auckland.ac.nz/Academic/Texts/FEM-BEM-notes.html

Functional Analysis and Semi-Groups
Book by Einar Hille and Ralph S. Phillips published by AMS in 1957. Scanned chapters in PDF.
http://www.ams.org/online_bks/coll31/

Global Analysis
"The Convenient Setting of Global Analysis" - foundations of differential calculus in infinite dimensions with applications to differential geometry and global analysis by Andreas Kriegl and Peter W. Michor published by AMS in 1997. Whole book or chapters in crosslinked PDF.
http://www.ams.org/online_bks/surv53/

Complex Dynamics in Higher Dimensions
CBMS lecture notes by John Erik Fornæss at the bottom of page with other papers by the author and Nessim Sibony. PostScript.
http://www.math.lsa.umich.edu/~fornaess/complexdynamicspapers.html

Several complex variables
Several sets of lecture notes by Jean-Pierre Demailly, some in French, including "Potential theory in several complex variables", and "Multiplier ideal sheaves and analytic methods in algebraic geometry" in DVI or PostScript.
http://www-fourier.ujf-grenoble.fr/~demailly/lectures.html

Algebraic Topology
1942 classic by Solomon Lefschetz published by AMS. Chapters in scanned PDF.
http://www.ams.org/online_bks/coll27/

Trigonometry
"Dave's Short Trig Course" by D. E. Joyce. HTML with Java.
http://aleph0.clarku.edu/~djoyce/java/trig/

Analysis WebNotes
Online course by John Lindsay Orr. Chapters also available in LaTeX.
http://www.math.unl.edu/~webnotes/home/home.htm

Advanced Calculus and Analysis
Lecture notes by Ian Craw from a course at the Univ. of Aberdeen. HTML with GIFs.
http://www.maths.abdn.ac.uk/~igc/tch/ma2001/notes/notes.html

Interactive Real Analysis
"Interactive Real Analysis" by Bert G. Wachsmuth. HTML and Java.
http://www.shu.edu/html/teaching/math/reals/reals.html

Complex and Functional Analysis
Lecture notes by Douglas N. Arnold for a course at Penn State. Two parts in TeX, DVI, PostScript and PDF.
http://www.math.psu.edu/dna/502.s97/

Category Theory
"A Gentle Introduction to Category Theory - the calculational approach" by Maarten M. Fokkinga in PostScript.
http://wwwhome.cs.utwente.nl/~fokkinga/mmf92b.html

Multiplier Ideals for Algebraic Geometers
Draft of a part of a book in preparation on positivity in algebraic geometry by Robert Lazarsfeld. DVI and PostScript.
http://www.math.lsa.umich.edu/~rlaz/

Dynamical Systems
1927 classic by George D. Birkhoff published by AMS. Scanned chapters in PDF.
http://www.ams.org/online_bks/coll9/

Invariance Theory, the Heat Equation, and the Atiyah-Singer Index Theorem
Monograph by Peter B. Gilkey published by Publish or Perish and CRC Press. Whole book or chapters in DVI and Postscript.
http://rattler.cameron.edu/EMIS/monographs/gilkey/

Travelling Wave Solutions of Parabolic Systems
Translation of a monograph by Aizik Volpert, Vitaly Volpert, and Vladimir Volpert published by AMS in 1994. Whole book or chapters in PDF.
http://www.ams.org/online_bks/mmono140/

Linear Programming: Foundations and Extensions
Book by Robert J. Vanderbei in PDF.
http://www.princeton.edu/~rvdb/LPbook/

Mathematical Methods of Engineering Analysis
Book by Erhan Çinlar and Robert J. Vanderbei in PDF. Topics covered: functions on metric spaces, differential and integral equations, convex analysis, and measure and integration.
http://www.sor.princeton.edu/~rvdb/506book/book.pdf

Numerical Analysis
"Introduction to Numerical Analysis Using Maple" by Barry G. Adams in HTML.
http://www.cs.laurentian.ca/badams/numeric/intro/intro.html

Dynamical Systems and Fractals
Lecture Notes by David J. Wright in HTML.
http://www.math.okstate.edu/mathdept/dynamics/lecnotes/lecnotes.html

Mathematical Modeling in a Real and Complex World
Online guide book by Frank Wattenberg in HTML.
http://www.math.montana.edu/frankw/ccp/modeling/topic.htm

Geometric Constraint Solving
An electronic primer by William Bouma, Xiangping Chen, Ioannis Fudos, Christoph Hoffmann, and Pamela J. Vermeer.
http://www.cs.purdue.edu:80/homes/cmh/electrobook/intro.html

Fundamental Problems in Algorithmic Algebra
Book by Chee Yap published by Oxford University Press in 1999.
http://www.cs.nyu.edu/yap/book/

Abstract Algebra
"Intro to Abstract Algebra" by Paul Garrett in PostScript and PDF.
http://www.math.umn.edu/~garrett/m/intro_algebra/

The FEMCI Book
Finite Element Modeling Continuous Improvement. A web text by Ryan Simmons.
http://analyst.gsfc.nasa.gov/FEMCI/femcibook.html

Matroid Decomposition
Monograph by Klaus Truemper published by Academic Press in 1992. Chapters in PostScript.
http://rattler.cameron.edu/EMIS/monographs/md/

Spinors, Spectral Geometry, and Riemannian Submersions
Monograph by Peter B. Gilkey, John V. Leahy and Jeonghyeong Park published by Seoul National University in 1998. DVI and PostScript.
http://rattler.cameron.edu/EMIS/monographs/GLP/

Differential Geometry
"Natural operations in differential geometry" by Ivan Kolar, Jan Slovak and Peter W. Michor published by Springer-Verlag in 1993. DVI, PostScript and PDF.
http://rattler.cameron.edu/EMIS/monographs/KSM/

Theory of Symmetry and Ornament
Monograph by Slavik V. Jablan published by the Serbian Academy of Science and Arts in 1995. HTML
http://rattler.cameron.edu/EMIS/monographs/jablan/

Differential Geometry
Several books by Peter W. Michor et al. including "Foundations of Differential Geometry", "Natural operations in differential geometry" (corrected version), "Transformation Groups", and "Gauge theory for fiber bundles" plus papers by the author in postscript.
http://www.mat.univie.ac.at/~michor/listpubl.html

Computational Geometry and Computational Optimization
Lecture notes by Jianer Chen in PostScript.
http://www.cs.tamu.edu/faculty/chen/notes/

Differential Topology
Course notes by Matthew G. Brin in PostScript including "Introduction to Differential Topology", "Introduction to Seifert fibered 3-manifolds", "Groups acting on 1-dimensional spaces", and "Presentations, conjugacy, roots and centralizers in groups of piecewise linear homeomorphisms of the real line".
http://www.math.binghamton.edu/matt/

Algebraic K-theory
"An introduction to algebraic K-theory" by Charles Weibel. Chapters in DVI.
http://math.rutgers.edu/~weibel/Kbook.html

Algebraic Topology: A Computational Approach
Book by T. Kaczynski, K. Mischaikow, and M. Mrozek in PostScript.
http://www.math.gatech.edu/~mischaik/courses/Math4432/

Plane Geometry
Shalosh B. Ekhad XIV. A fully illustrated and completely self-contained Elementary Geometry textbook (ca. 2050), downloaded from the future by Doron Zeilberger. Entirely written in Maple.
http://www.math.rutgers.edu/~zeilberg/GT.html

Differential Geometry and General Relativity
Introduction to differential geometry and general relativity by Stefan Waner at Hofstra University in HTML.
http://people.hofstra.edu/faculty/Stefan_Waner/diff_geom/tc.html

Algebraic Combinatorics via Finite Group Actions
HTML book by A. Betten, H. Fripertinger, and A. Kerber.
http://www.mathe2.uni-bayreuth.de/frib/html/book/hyl00.html

Basic Concepts of Mathematics
This text by Elias Zakon helps the student complete the transition from purely manipulative to rigorous mathematics. Chapters cover Set Theory, the Real Numbers, and n-dimensional Geometry.
http://www.trillia.com/zakon1.html

Numerics - interactive
In this PDF book by Thomas Risse, basic numerical algorithms are presented and implemented in order to determine the precision of computation, to solve systems of linear equations, to evaluate elementary functions, to find zeros, to integrate and to solve ordinary differential equations numerically. The performance of different algorithms can be compared.
http://www.weblearn.hs-bremen.de/risse/MAI/docs/numerics.pdf

Geometric Asymptotics
This book by Guillemin and Sternberg includes the method of stationary phase, geometrical optics, quantization.
http://www.ams.org/online_bks/surv14/

Differential Algebra
Scans of Ritt's 1950 classic in PDF.
http://www.ams.org/online_bks/coll33/

Applied Cryptography
1996 CRC Handbook of Applied Cryptography by Menezes, van Oorschot and Vanstone in PDF.
http://cacr.math.uwaterloo.ca/hac/

Graph Theory
Hyperlinked PDF version of a book by Reinhard Diestel.
http://www.math.uni-hamburg.de/home/diestel/books/graph.theory/download.html

Linear Algebra, Infinite Dimensions, and Maple
A textbook by James Herod.
http://www.math.gatech.edu/~herod/Hspace/Hspace.html

Homeomorphisms in Analysis
A survey by C. Goffman, T. Nishiura, D. Waterman in PDF. In particular, the effects of homeomorphic changes of domain on the analyticity of a function are studied.
http://www.ams.org/online_bks/surv54/

Finite Simple Groups
"The classification of the finite simple groups" by D. Gorenstein, R. Lyons, and R. Solomon in PDF.
http://www.ams.org/online_bks/surv40-1/

Complex Analysis
Course notes by Harold V. McIntosh in HTML.
http://delta.cs.cinvestav.mx/~mcintosh/comun/complex/complex.html

Dynamics in One Complex Variable: Introductory Lectures
Lecture notes by John Milnor in TeX and PostScript.
http://www.math.sunysb.edu/cgi-bin/preprint.pl?ims90-5

Mathematical Logic
"A Problem Course in Mathematical Logic" by Stefan Bilaniuk in LaTeX, PostScript or PDF.
http://www.trentu.ca/academic/math/sb/misc/pcml.html

Linear Algebra and Applications
Textbook by Thomas Shores. GIFs of pages.
http://www.math.unl.edu/~tshores/linalgtext.html

Mathematical Principles of Natural Philosophy
Principia by Isaac Newton (1687) translated by Andrew Motte (1729) in HTML (incomplete).
http://members.tripod.com/~gravitee/

The Limits of Mathematics
An online course on information theory and the limits of formal reasoning by G.J. Chaitin.
http://www.umcs.maine.edu/~chaitin/lm.html

Hilbert Space Methods for Partial Differential Equations
Textbook for beginning graduate students of mathematics, engineering, and the physical sciences by Ralph Showalter. Chapters in PostScript and PDF.
http://ejde.math.swt.edu/Monographs/01/abstr.html

History of Calculus
Guide To History of Calculus. Topic essays and biographies keyed to the chapters and content of the 10th edition of Thomas's Calculus.
http://occ.awlonline.com/bookbind/pubbooks/thomas_awl/chapter1/medialib/custom3/deluxe-content.html

Monotone Operators in Banach Space and Nonlinear Partial Differential Equations
A monograph by Ralph Showalter in PDF.
http://www.ams.org/online_bks/surv49/

Matrices
The 1934 classic "Lectures on Matrices" by Wedderburn in scanned PDF.
http://www.ams.org/online_bks/coll17/

Optimization
"Lecture Notes on Optimization" by Pravin Varaiya. This book is an introduction to mathematical programming, optimal control, and dynamic programming.
http://www-path.eecs.berkeley.edu/~varaiya/papers_ps.dir/NOO.pdf

Multigrid Methods
"An Introduction to Multigrid Methods" by Pieter Wesseling.
http://www.mgnet.org/mgnet-books-wesseling.html

Calculus
"The Calculus Bible" by G. S. Gill.
http://www.math.byu.edu/Math/CalculusBible/

Dynamics and Chaos
Class notes by Evans M. Harrell II for an introductory course on dynamical systems and chaos, taken by mathematicians, engineers, and physicists. This text concentrates on models rather than proofs in order to bring out the concepts of dynamics and chaos. Theorems are carefully stated, though only occasionally proved.
http://www.mathphysics.com/dynam/

Abstract Algebra
Course notes by J.S. Milne. Topics covered are group, fields and Galois, algebraic number, class field theories. Other areas discussed are modular functions and forms, elliptic curves, algebraic geometry, Etale Cohomology, and Abelian varieties. In HTML, PDF, PostScript and DVI formats.
http://www.jmilne.org/math/CourseNotes/

Differential Geometry
Lecture notes for a course at the Weizmann Institute of Science by Sergei Yakovenko. Chapters in DVI.
http://www.wisdom.weizmann.ac.il/~yakov/Geometry/

Entropy of Compact Group Automorphisms
Lecture notes based on a course at Ohio State in 1994 by Thomas Ward in DVI and PostScript.
http://www.mth.uea.ac.uk/~h720/lecture_notes/

Complex-Analytic Geometry of Complex Parallelizable Manifolds
Monograph by Jörg Winkelmann. Chapters in DVI.
http://www.math.unibas.ch/~winkel/cplx/papers/gca.html

Finite Applied Associative Algebra (semigroups) & Digital Networks
A compendium of papers by Nico F. Benschop on abstract algebra, number theory, computer science and physics.
http://home.iae.nl/users/benschop

Differential Geometry
Lecture notes for an honors course at the University of Adelaide by Michael Murray in HTML with GIFs.
http://www.maths.adelaide.edu.au/pure/mmurray/dg_hons/dg_hons.html

Stochastic Calculus
A fairly complete elementary introduction to the basics of stochastic integration with respect to continuous semimartingales by Alan Bain. All the theory usually needed for basic mathematical finance. Sixty pages in dvi, postscript, and pdf.
http://www.statslab.cam.ac.uk/~afrb2/

Algebraic Geometry
A. Grothendieck's "Séminaire de Géometrie Algébrique" produced by F. Calegari, J. Borger and W. Stein. JPEG scans of typewritten material.
http://modular.fas.harvard.edu/sga/sga/

Linear Algebra
"Elementary Linear Algebra" by Keith Matthews. Lecture notes and solutions from 1991 in PDF or PostScript.
http://www.numbertheory.org/book/

Numerical Grid Generation
A book by Thompson, Warsi, and Mastin, previously published by Elsevier, in HTML.
http://www.erc.msstate.edu/publications/gridbook/

Wavelets
An Introduction to Wavelets by Amara Graps in HTML, PDF or Postscript.
http://www.amara.com/IEEEwave/IEEEwavelet.html

Algebraic Geometry
Various lecture notes by J.S. Milne.
http://www.jmilne.org/math/

Toposes, Triples and Theories
A book by Michael Barr and Charles Wells originally published by Springer Verlag.
http://www.cwru.edu/artsci/math/wells/pub/ttt.html

Dynamical Systems and Ergodic Theory
"Lectures on Dynamical Systems and Ergodic Theory" by Mark Pollicott and Michiko Yuri. Published by Cambridge University Press in 1998 (London Mathematical Society Students Texts, No. 40).
http://www.ma.man.ac.uk/~mp/book.html

Complex analytic and algebraic geometry
Book by Jean-Pierre Demailly in PostScript.
http://www-fourier.ujf-grenoble.fr/~demailly/books.html

Physics, Invariant Theory, Modular Forms, and Algebraic Geometry
Several lecture note sets by Igor Dolgachev in various formats, including DVI and PostScript.
http://www.math.lsa.umich.edu/~idolga/lecturenotes.html

Practical Foundations of Mathematics
An account of the foundations of mathematics (algebra) and theoretical computer science, from a modern constructive viewpoint by Paul Taylor. Published by Cambridge University Press. HTML approximation.
http://www.dcs.qmw.ac.uk/~pt/Practical_Foundations/html/summary.html

Elements of Abstract and Linear Algebra
Foundational textbook on abstract algebra with emphasis on linear algebra by Edwin H. Connell. Whole book or chapters in DVI, PostScript, and PDF.
http://www.math.miami.edu/~ec/book/

Complex Analysis
Textbook for an introductory course in complex analysis by George Cain. Chapters in PDF.
http://www.math.gatech.edu/~cain/winter99/complex.html

Universal Algebra
"A Course in Universal Algebra" by Stanley Burris and H. P. Sankappanavar. PostScript and PDF.
http://www.thoralf.uwaterloo.ca/htdocs/ualg.html

C*-Algebras
"An Introduction to C*-Algebras" by Pierre de la Harpe and Vaughan Jones. The site is in French, but the book is in English. Chapters in PostScript.
http://www.unige.ch/math/biblio/preprint/cstar/liste.html

Index Theory, Geometric Scattering, and Differential analysis on manifolds with corners
Several books by Richard Melrose et al. in PostScript.
http://www-math.mit.edu/~rbm/book.html

Linear Algebra
Textbook by Jim Hefferon covering the material of any undergraduate first linear algebra course. Book or chapters in PDF.
http://joshua.smcvt.edu/linalg.html

Abstract Algebra
Lecture notes by David Wilkins from a course at Trinity College, Dublin. Three parts in DVI, PostScript and PDF.
http://www.maths.tcd.ie/~dwilkins/Courses/311/

Templates for the Solution of Linear Systems
Book on iterative methods by Richard Barrett et al. in HTML and Postscript.
http://netlib2.cs.utk.edu/linalg/html_templates/Templates.html

Semi-Simple Lie Algebras and their Representations
Book for particle physicists by Robert N. Cahn. Published by Benjamin-Cummings in 1984. Chapters in PostScript.
http://www-physics.lbl.gov/~rncahn/book.html

Abstract Algebra II
A companion volume to "Abstract Algebra" by John A. Beachy and Bill Blair published by Waveland Press in 1995. Chapters in PostScript.
http://www.math.niu.edu/~beachy/abstract_algebraII/

Linearization via the Lie Derivative
By Carmen Chicone and Richard Swanson. LaTeX, DVI, PostScript and PDF.
http://ejde.math.swt.edu/Monographs/02/abstr.html

Multivariable Calculus
Textbook by George Cain and James Herod. Chapters in PDF.
http://www.math.gatech.edu/~cain/notes/calculus.html

Finite Rank Torsion Free Modules Over Dedekind Domains
Monograph in commutative ring theory by Lee Lady. DVI and PDF.
http://www.math.hawaii.edu/~lee/book/

Matrix Analysis and Applied Linear Algebra
By Carl D. Meyer. Full text in PDF with errata, updates and solutions.
http://www.matrixanalysis.com/

Complex Analysis
Course notes and quizzes by Paul Scott in HTML.
http://www.maths.adelaide.edu.au/pure/pscott/CA2/contents.html

Complex Numbers
Dave's Short Course on Complex Numbers (David Joyce).
http://www.clarku.edu/~djoyce/complex/

Discrete Mathematics
Lecture notes by László Lovász in Postscript. Includes "Discrete Mathematics", "Semidefinite optimization", "Topological methods in combinatorics", and "Complexity of algorithms".
http://research.microsoft.com/users/lovasz/notes.htm

Topology
"Textbook in Problems on Elementary Topology" by Viro, Ivanov, Kharlamov and Netsvetaev - draft version in postscript. The page also includes several papers on real algebraic geometry.
http://www.math.uu.se/~oleg/educ-texts.html

Splines and Wavelets
A monograph by Karl Scherer in German (DVI and Postscript).
http://www.iam.uni-bonn.de/~scherer/wavelets.html

Riemannian Geometry
"An Introduction to Riemannian Geometry" by S. Gudmundsson in postscript (1996).
http://www.maths.lth.se/publications/Pure-Lecture-Notes.html

Harmonic Analysis and Partial Differential Equations
A book by Dahlberg and Kenig in postscript (bitmapped fonts). The page also contains another book by Dahlberg: "Icke Linjära Evolutionsekvationer" (Swedish).
http://www.math.chalmers.se/Math/Research/GeometryAnalysis/Lecturenotes/

Topology Without Tears
A course in topology by Sidney A. Morris in HTML with embedded GIFs. Must purchase to view.
http://www.theassayer.org/cgi-bin/asauthor.cgi?author=430

Help build the largest human-edited directory on the web.
 Submit a Site - Open Directory Project (modified) - Become an Editor

Modified contents copyright 2010. All rights reserved.