Editors
version of
22 August 2008.
Of course, every mathematician wants Mathematica and a few other expensive programs. We do
have those installed on our department computers. But here I'm going to list some free programs that
even an impoverished graduate student can install on his or her computer. Some of them are pretty good;
some may suffice for many purposes.
Following are some good places to look for math software
(but some of these websites mix together freeware and shareware,
unfortunately):
I will list here a few of
the programs that look good to me, but I haven't tried
most of them; let me know what you think. I'm giving preference to
programs that seem to be intended for a general mathematical
audience (i.e., I'm omitting programs that suit more specialized
needs). Also, I'm giving preference to programs that seem to
be easy to install and/or to understand, and to programs whose installation
files are small enough that I can fit many of them onto our department's CD.
I'm sorting these programs
into a few categories, but there is actually some overlap between
categories.
Computer
algebra systems (i.e.,
replacements for Mathematica):
- Fermat
[1.7 mb, Version 3.6.9]
does arithmetic of arbitrarily
long integers and fractions, symbolic calculations, graphics, and other
numerical calculations. It is extremely fast and extremely economical
of space.
- Singular
is a computer algebra system for singularity theory and algebraic geometry developed by G.-M.
Greuel, G. Pfister, H.Schoenemann, and others, at the Department of Mathematics of the University of Kaiserslautern. Singular can
compute with ideals and modules generated by polynomials or polynomial vectors over polynomial or power series rings or, more
generally, over the localization of a polynomial ring with respect to any ordering on the set of monomials which is compatible with the
semigroup structure. Includes Xemacs editor.
Requires Cygwin DLL, and it's a fairly big file, so it's not on our CD.
- Formulae
1, java edition
[1.17 mb including some documentation]
computer algebra system
- HartMath[1.6
mb, ver.0.6.128]
is an experimental computer algebra program written in Java. It features big number arithmetic, symbolic and numeric evaluation, plot-, polynomial-, vector, and matrix-functions.
Matlab
replacements:
-
Freemat (10 mb, ver 3.6) is a free environment for rapid engineering and scientific prototyping and data processing. It is similar to commercial systems such as MATLAB from Mathworks, and IDL from Research Systems, but is Open Source.
- Scilab
[15.4 mb, ver 4.1.2] is a free
scientific CACSD (whatever that means)
software package for numerical computations in a
user-friendly environment.
It appears to be
a little like Matlab or Mathematica.
Hundreds of built-in math functions (new primitives can easily be
added).
Open structure (easy interfacing with Fortran and C via online dynamic
link).
Many built-in libraries. Along with the installation file, I am including a few documentation
files on the CD.
- Euler and Maxima.
The Euler Mathematical Toolbox is a powerful, versatile, and open source software for numerical and symbolic computations. Maxima (descended from MIT's legendary Macsyma) is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. The two programs can be downloaded together, but the installation file is 35 megabytes, so it is not included on our CD.
Miscellaneous
programs:
- NonEuclid
[311 kb, ver. May 2007] is a Java software simulation offering ruler
and compass constructions in both the Poincaré disk and the
upper half-plane models of hyperbolic geometry.
-
Dynamics
Solver
[9.2 mb, ver 1.74], by
Juan M. Aguirregabiria. Installation
file includes manual.
Solve numerically both initial-value problems and boundary-value
problems for continuous and discrete dynamical systems. Exotic
applications include study of
chaotic systems,
Lissajous curves,
and just plain pretty pictures, such as those at right; see the
animations
page
for some fancier examples.
- GAP
(Groups, Algorithms and Programming) is a system for computational
discrete algebra with particular emphasis on,
but not restricted to computational group theory.
It can run on Windows, Mac,or Unix. A full installation is very large, so this is not included on our CD.
- Peanut Software
is a collection of small, high-quality, easy-to-use,
free math programs
by Rick Parris. My favorite program among these is
Winplot
[732 kb, ver 12 Aug 08]
-- a general-purpose plotting utility, which can draw (and animate)
curves and surfaces presented in a variety of formats.
I use this one often to make illustrations for
my calculus classes. Other programs are available for
geometry, statistics, discrete
math, fractals, linear algebra, and other purposes.
- GraphCalc
[842KB,
ver. 4.0.1].
A free grapher. This is a free Windows version of those
$80 graphing calculators our undergraduate students
are all carrying around. This one is open
source. See screenshot at right.
- Graph
Paper Printer
[406 kb, ver 4.20]
can print out a wide variety of kinds of graph paper, on paper or
onto the clipboard (from which you can copy it to MSPAINT, to edit a
BMP file).
Graph
Tablet
[273 kb, ver 4.05]
is another freeware program
that does roughly the same thing, but it's
slightly less elaborate.
I'm not
an expert on this material, so feel free to suggest
alterations for this section. -- Some of the material described
below is included on our CD; in other cases, I'm just including
links you can use for downloading from the internet.
- A great website is the
free
C/C++ compilers and interpreters page at thefreecountry.com.
It has all sorts of information. I do not know one C or C++ compiler from another, so I am not
including any of them on our CD. (If you determine that one of them is particularly good and has an
installation file that is not large, let me know and maybe I'll add it to our CD.)
- Python [10.8 mb, ver. 2.5.2] -- I have been told that
Python is a particularly good language for
beginning programmers -- i.e., that it is easy to learn. I am also including 5.3 mb of
documentation on the CD.
- Perl
(16.5 mb, ver. 5.10.0.1003) -- Perl is used for many internet purposes.
- Visual Basic is not free, but we can offer you free
runtime files.
Visual Basic Runtime Files. These are the files you need, in order to run
programs
that are written in the language Visual Basic. Most recent VB programs
require either
Vbrun 5 or 6, but you might occasionally want to use some older VB
program that requires
Vbrun 3 or 4. (On the CD, I've stored these under
Utilities:
Starting, running, and controlling programs.) Vbrun
3,
4,
5,
6.
- XBasic
(2.5 mb, ver. 6.2.3)(documentation 1.25 mb for version 6.0022)
XBasic is a comprehensive program development environment that integrates a powerful editor, compiler, debugger, function libraries and GuiDesigner into a seamless working environment that
encompasses the whole process of creating fast, efficient, reliable, portable 32-bit programs. XBasic programs can create any number of windows, each of which supports input from
keyboard and mouse, and output of text and graphics. And sophisticated GUI programs are easy to develop with the interactive graphical GuiDesigner built right into the program development
environment. For the latest version, go not to the XBasic home page (linked above), but to the
XBasic page on SourceForge.
- Turbo Pascal 5.5 (963 kb), available from the
"Borland
Museum".
- Free
Pascal version 2.2.2. (32 mb for the compiler, plus 6.9 mb for documentation; not included on our CD)
The
standards in the business world are
Microsoft Office (including Microsoft Word)
and Corel Office (including Wordperfect).
I can't offer those here because
they're not free.
Following are some free
alternatives:
- Microsoft does offer free
viewers for some of their programs. Using these, you can
read (but not edit)
a document created using one of the proprietary
Microsoft programs -- including Word, Excel, Powerpoint, and perhaps others.
However, Microsoft keeps creating new versions of its viewers, accompanying
them with very unclear descriptions, and moving them to new locations
on their website, with new cryptic urls. I have finally given up
on trying to keep track of their viewers.
If you want their free viewers, go to
http://office.microsoft.com/
and search for them, and maybe you'll find them.
Last time I looked,
http://www.microsoft.com/downloads/results.aspx?pocId=9&freetext=viewer&DisplayLang=en
was a good place to start.
- OpenOffice
( 127 megabytes, version 2.4.1) is a free, open source office suite.
It is a Microsoft Office work-alike -- not quite a clone, but
it can read and edit many Microsoft documents and has many
comparable editing capabilities. Note: OpenOffice requires Java, but that is included in the
installer and will be installed during the OpenOffice installation process.
The main components of OpenOffice are: Writer (a word processor), Calc (a spreadsheet), Impress (a presentation editor, analogous to Powerpoint), Draw (a graphics editing program), Base (a database manager), and Math (an equations display editor).
Though some
people use the words a bit differently, I will
distinguish between
word-processors
such as Word, Wordperfect, Wordpad, or OpenOffice Writer, which can
handle boldface,
italics,
underlining,
different type sizes,
different fonts,
and in some cases color,
superscripts,
and subscripts;
and which generally are WYSIWYG ("what you see is what you get") --
i.e., what you're editing on the screen looks essentially the same as
what the printed output will look like;
|
and |
text-editors
such as Emacs, Vi or Notepad, which
can only handle
plain, unformatted text, with only one font, one size, one color, etc.,
but
are still quite adequate for markup languages,
such as Latex or Html.
I will further subdivide "text-editors" into several types, below.
|
For most
mathematical work, text editors are actually preferable to
word-processors, because we can describe notation more precisely than
we can actually draw it. .
We use markup languages such as Latex (for instance, type $\alpha$ to
get the lower-case Greek letter alpha, and type
{\bf text goes here} to get some text in boldface), so everything can
be encoded in
plain text. The embedded invisible characters that a word-processor
uses to record the beginning or end of boldface (for instance) will
just foul up a program like Latex.
The advantages of text editors and markup languages are
discussed further in Allin
Cottrell's rant against word processors.
Of related interest is
Sam
Steingold's
rant against proprietary data formats.
But your needs may differ.
WORD-PROCESSORS.
Word is the standard in the business world.
In the scientific world, Word is also the standard among
secretaries, and among some of the people writing grant proposals. In
both situations, Wordperfect runs second (despite the fact that it
seems to be a considerably better
program). Neither of those programs is free, but
Writer
is a free program that does roughly the same things. It is a component of
Open Office, mentioned earlier.
But if a smaller
program will suffice for your needs, you may find that
it loads faster and crashes less often. Several are listed below.
Instead of DOC files, you might
consider using RTF files.
"Rich text format" is a sort of "poor man's DOC file".
It can handle underlining, boldface, italics, different fonts,
and different colors of text. It cannot handle some fancier
features of Word, such as tables or macros. Also, RTF has
the advantage that it is fairly standard; nearly every
word-processing program can read an RTF file, and
can save files as RTF. If you have Word and your neighbor
has Wordperfect and your other neighbor has neither, consider writing
to each other with RTF files.
- WordPad
comes with every Windows operating system
(though in very old Windows systems it was called "Write").
Look in "Start" "Programs" "Accessories" "WordPad".
WordPad can handle text or RTF (but it cannot
deal with DOC files and it has no spellchecker). By the way, if you copy
some selected text from Internet Explorer into WordPad, it will preserve
the formatting (boldface, italics, etc.).
- Abiword
[5.9 mb for ver 2.6.4; add a few more megabytes for plugins, fonts, dictionaries] is a more
recent, slightly larger word-processor. This one is
open-source. It can handle RTF files, and also
DOC (Microsoft Word) files, though I'm not sure
which versions of Microsoft Word.
TEXT-EDITORS.
A plain textfile is most often a file
whose filename ends in ".TXT", but in fact the filename could be anything. All of
the files of type TEX, HTML, HTM, PAS, C, etc. are actually just textfiles that
have been renamed in a way that displays, not a change in their internal
structure, but an intended use for the file. Any file of any of these types can
be edited with an ordinary "text editor," but some specialized text editors
add extra features for special intended uses of the textfile.
Notepad and
notepad-replacements
The Windows operating system comes equipped with one text editor. It is
called "Notepad." You can get to it by going through "Start" "Programs" "Accessories" "Notepad."
But it is rather rudimentary -- it has no button bar and rather few
editing tools, and its maximum file size is a little small. Still, it is
adequate for most editing you will need
for tex, html, etc. It is small and simple, which has at least a couple
of
advantages: It loads quickly when you want it, it doesn't distract you
or intimidate you with overwhelming features,
and it doesn't
take much memory away from other programs you may have
running at the same time.
Many
people like to
replace Notepad with some similar program
that is still small and quick-loading, but has
a few additional features -- e.g., a toolbar with some buttons.
My favorite Notepad replacement program is
Metapad
[46 kb, version 3.51, full (not light) version]. It has a few buttons that
I consider crucial even in a basic text editor -- e.g., copy, cut, paste, save. It
has a few unsual text-editing commands that I have not seen in many
other text editors -- e.g., commit wordwrap, change case, launch link.
Also, in the search and replace commands, you can use backslash-n
for a linebreak, so you can include linebreaks as part of your search string.
Gizmo Richard, who also does a pretty good job of anthologizing
software, has a different preference; His favorite Notepad replacement
program is EditPadLite
[3.1 mb, version 6.4.3].
It has a fairly good collection of buttons and commands. One of its less common features is
that it permits tabbed editing -- i.e., you can edit several textfiles at once, and switch from
one to another by clicking on its tab.
There are many other "Notepad replacement" programs available on the internet. Here are two
others that caught my eye. (1) Notepad2
[247 KB, ver. 2.1.19] -- lots
of features, but it's still very fast. This one also acts as a syntax highlighter for
HTML and several other languages, but unfortunately not for TEX; I've listed it here instead of in the section on
syntax highlighters because this one is fast enough to use as a Notepad replacement.. (2) "Notepad" (a poor choice of
name) by
"Small Team Software". This one has 25 buttons across the top, which is
great if you like lots of buttons.
The company has gone out of business, but you can still get
this program from some
archives.
Some people (including myself) take
the term "Notepad replacement" more literally: I'd like my chosen replacement to
come up whenever I doubleclick on any textfile. But it's not a simple matter of replacing
one copy of Notepad with a new program, because Microsoft has set up a File Protection
System to prevent you from accidentally deleting or changing any system files. You have to be
very persistent to beat it. Here's how to do it: Search in *all* your folders, including system folders
and hidden folders, for files named "Notepad.exe." Wherever you find one, rename it as
"Oldnotepad.exe" (in case you want it back later -- don't delete it), and then copy into that folder
a copy of your favorite replacement program, renaming it "Notepad.exe."
Ports from Unix -- new editors for old users
Older members of academia grew up in an era when personal computers were
not yet prevalent; nearly all academic computing was done on
X-terminals running
off of a Unix server. In those days, the two main text editors on Unix
systems
were vi
and emacs.
I can't say which is better; most people
were satisfied with the text editor that they learned first (and so
they never bothered to learn
the other).
Each of these programs has grown
and split into many different variants, and some of these variants have
been ported to Windows. People who already know some version of
vi or emacs may
feel comfortable with those ports, but I can't recommend them to anyone
else, because they lack one of the chief advantages of programs that
originated on Windows. Windows programs share a "look and feel," a
common user interface -- on any Windows program you know where
to look for "File," "Edit," "Help," etc., and so once you've learned one
Windows program the others aren't so hard to learn. For that reason, this
part of my software collection is decreasing in importance as time goes by,
so I'm just going to include a few links, not reviews or the software itself. If you're
really interested you can investigate this further on your own.
- Emacs:
GNU Emacs,
another GNU Emacs page,
Xemacs,
Jasspa's MicroEmacs,
Easymacs,
EmacsW32,
other Microemacs links,
and
AUCtex, a Tex add-on for Emacs.
-
vi:
V IDE for GNU g++ and Java,
Vim,
Vim-Latex.
An editor that can parse some programming language
or markup language may display different parts of the text
in different colors -- e.g., literal text in black,
commands in red,
variables in green, etc. These colors make the
editing easier. The colors are only in the editing
display, not in the text file that you actually save and use.
One editor may be able to switch between several coding
languages -- tex, html, c++, python -- and may automatically figure out
which language to use according to the ending of the
filename (.tex, .html, .c, etc.).
I would guess an editor of this
sort is most useful for someone who does coding
in several different languages, and likes using the same
editing techniques in all of them. If you're doing all
your coding in one language (e.g., Latex), you're probably
better off with a more specialized syntax highlighter
that is only designed to work with
that one language (e.g., TeXnicCenter), since
that program will probably have extra features built in for that language.
And if you're coding in two languages (e.g., Tex and HTML), you might prefer
the advantages of two specialized editors, instead of try to cover everything with
one general-purpose editor.
- Syn
Text Editor
[4.02 mb including manual, ver 2.1.0.46]--
An open source project. Includes syntax color highlighting,
user-customizable tool buttons, and built-in spellchecker.
Includes Tex among its default installed languages.
No limit on the number of tool buttons (but the manual says
the program will run a bit slower if you have lots and lots of
tool buttons; with today's computers I'm not sure the
slowdown will be noticeable). Tools can be not just
external commands, but also internal ones.
-- It took me a while to figure out how to use the spellchecker, and
I haven't tested it much yet, so I don't know yet whether it's better
or worse than 4spell.
Dictionaries for the spellchecker are available at
TSynSpellCheck.
Download English or whatever language you like, and put it in some
convenient location. Then configure Syn Text as follows: Go to "View"
"Options" "Editor" "Spellchecker" and answer the questions.
- Crimson
Editor
[1.19 mb , v.3.70]
Includes syntax color highlighting and built-in spellchecker, but I
haven't entirely figured out how
to configure the spellchecker.
Also includes both ten user-customizable commands and
ten user-recordable macros (but both are on pull-down menus,
not on toobar buttons). Latex is one of the languages recognized
by this program after its default installation.
- Pspad [ver. 4.5.2; size 3.3 mb].
I haven't
studied this one as much. Recent versions apparently do know tex.
Other tools related to the
editing of text
-
WinMerge
[2.91 mb ver 2.8.6, open source] and
ExamDiff
[524kb, ver 1.8, not open source]
are not just text editors.
They can be used to compare two versions of a textfile, side by side,
showing where the two files differ. WinMerge is an open source program.
- TexRep
[694kb, ver 2.0]
Also not a text editor.
This program replaces a
specified text string with another
specified text string, in multiple files in a single operation.
Useful if you're working on many files in one document
(e.g., chapters in a book). Use this program with great
caution; you can do a lot of damage if you accidentally
change the wrong phrase in a large number of files
at once!
- Map
of
characters
[233 kb, ver 2.9] is similar to the "Character Map"
program that comes with Windows, except that the Microsoft version
displays fonts so tiny that they're hard to make out. "Map of
characters" displays them large. This is helpful if you're inserting
characters from a nonalphabetical font, such as symbols or
wingdings.
How can
you make screenshot graphics like the ones I've got
on this web page? Arrange the screen the way you want it..
Then click on the "Print Screen" key which is near the top of your
keyboard. Then open a graphics editor like Irfan View or
Wscanner, and use
the "Paste" command; the picture of the screen will appear in the
editor. Use the "Crop" command to cut the picture down to
the size you want. Use the color depth commands to reduce
the number of colors to 256 (or 16, if that doesn't look bad), so
that the pictures won't take forever to load when someone
views your web page. Finally, convert to a GIF file, since
that is the format recognized most readily by web browsers.
(JPG is more suitable for pictures with more colors -- e.g.,
photographs.)
There are dozens of free
graphics editors and viewers
available on the internet. Following are a few that caught my eye:
- Euklides
[1.51 mb, ver. 2.02]
Later versions are shareware, but version 2.02 is free and is adequate
for many purposes.
Interactive geometry, which means that you can move
a point and all the lines connected to it will adjust themselves.
See illustration of cycloids at right.
- ColorEditor
[275 kb, ver. 2.3]
Color Editor can change a particular color in a bitmap to
another color when there are a lot of seperated regions of the color,
which would take a long time to change by filling each one.
It can also change colors that are not exactly the same by
adjusting the tolerance.
- Irfan
View
[6.79 mb, ver. 4.20], by Irfan Skiljan
-- This program has only a few editing capabilities, but
it is very handy as a viewer and converter.
It supports a very wide range of file formats. For instance, I can
turn a 32x32 BMP file from Windows Paint into an ICO file for
an icon for my desktop; or I can turn a BMP into
a PNG or JPG that I can use in a Latex file output to PDF format.
Irfanview can be used as a filebrowser, running through all the
files in a directory. Note: install the main program before
installing the plugins.
- Image
Magick (not included on our CD) is like a sort of Advanced
Irfanview for Experts. It has a few more capabilities, but it does not have a
GUI front end -- it is a collection of command-line utilities. For instance,
to convert a gif file named "mygraph.gif" into
a new eps file named, for instance, "usegraph.eps",
use the command "convert mygraph.gif usegraph.eps".
- Spectroscope (204 kb, ver 1.45) and
Colour To HTML (952kb, ver 5.2)
-- These are colorbrowsers -- i.e., tools for selecting
colors. Sometimes useful in designing graphics for a web
page. These two both include an
eyedropper tool, which enables you to determine the color of
any pixel on your screen.
- Ultimate
Paint ( 1.87 mb, ver 1.91)
is a full-featured 32-bit Windows
graphics program for image creation, viewing and
manipulation. The latest versions are shareware, but a freeware version
is still available. [1.87 mb, version 1.91]
It supports JPEG, GIF, BMP, PCX, WMF/EMF, ICO
(reading only) and IFF/LBM image formats and Twain
compatible scanners. You can print your image,
setting its size, position and orientation. It has a very flexible
brush handling method which encourages creative drawing.
Retouch and enhance photos using a comprehensive set of built-in tools
and plug-ins; resize, rotate, flood fill, text operations and a lot
more.
Comes with dozens of cool plug-in filters.
The user interface is adjustable to the user's experience level, both
novice users and experts can use it conveniently.
All pictures are handled 24
bit -- after you finish editing
your picture, you may want to use some other program to reduce
the color depth if you're planning to use the picture on the web.
- Pixia (4.8 mb, ver 4.2a)
is a free graphics program that apparently is popular
among the folks who draw anime. Since anime looks good on a web
page, this might be a good tool to use for web page graphics. Go to the
download page for related
files if you want them: Photoshop Filters, Additional Filters, Help File, Filter Making Kit, and other files.
-
Fractals are the most glamorous thing in recent mathematics;
put some on your web page or at least have some fun
with them.
Fractint
is a free program for viewing fractals (one image at a time), and
Filmer
is a free front end for Fractint that generates great animations.
Sorry, I haven't tried these yet, so I don't know how easy or
difficult they are to use -- but it's clear that they do work:
the animation on the Filmer page looks great! (The animation
shown here is much smaller, to
conserve bandwidth.)
- POV-Ray
(Persistence of Vision)
is a free ray-tracing program. This means that it is used for
drawing 3-dimensional objects, and it shades the surfaces
based on how the rays of light would actually reach those
surfaces. Thus, the resulting pictures look very
3-dimensional
-- even more so than the pictures from Mathematica. Just take
a look at the samples on POV's website. About 8 megabytes --
a rather large file, not
included on our CD. Take a look at the "hall of fame" sample pictures --
many of them look like photographs, but if I've understood this correctly they are all drawings.
- Gimp
[17.1 mb, ver 2.4.6]
(GNU Image Manipulation Program) --
This is a very elaborate graphics editor, ported from Unix. Help file is another 21 mb.
Other filetypes
Mathematica
For Mathematica (.mma) files, if you don't have Mathematica on your computer, get yourself a free copy of
Mathematica Player (81 mb).
It will display and print Mathematica notebooks, animate graphics, play sounds, and copy information from notebooks to other documents.
Audio tools
These programs aren't really very useful for mathematics, as far as I know, but I couldn't resist mentioning them. They may brighten up your nonmathematical time.
- mp3mymp3 -- If you can hear it on your computer, you can record it (as WAV or MP3) with this program. Sometimes I use this, for instance, to save a copy of something that is streaming on internet radio.
- Audacity
free audio editor. This program can do a few basic things. The main thing I use it for is to trim stuff off the
beginning or end of a sound track that I recorded using mp3mymp3, but people who know more about
sound recordings can probably do a lot more with this.
- Anvil Studio midi editor,
free version. Midi files are tiny little files of music -- they contain about as much data as a
sheet of written music (in contrast to a WAV, which contains the data of a performance of that music).
So midi files have a lower sound quality, but they are extremely small files. They were popular in the
early days of computing, when downloads were slower. And there are still many free midi files available
on the internet. Midi files can be used for ringtones by some cellphones, including mine, which is why
I use this program. When one of my friends calls me, I know which one, according to which song
starts playing.