neldredge / mathgen

Generate random nonsense math papers
https://thatsmathematics.com/mathgen/
GNU General Public License v2.0
561 stars 72 forks source link

Mathgen

Mathgen is a tool to randomly generate fake mathematics papers.

Online version: https://thatsmathematics.com/mathgen/ Blog page: https://thatsmathematics.com/blog/mathgen/ Source code (Github): https://github.com/neldredge/mathgen

Prerequisites

Mathgen was developed and tested on Ubuntu Linux. It should work on other flavors of Unix also. I have not tried other systems; if you have a reasonable Perl installation I would guess you should be okay, but I make no promises.

To run Mathgen, you will need:

You will need the following LaTeX packages:

If you want to produce books (--product=book), you will need the following additional LaTeX packages:

You will also need the `makeindex' program.

Running

The main Mathgen program is `mathgen.pl'. For a summary of options, run:

$ ./mathgen.pl --help

The current default behavior, if mathgen.pl' is run without options, is to generate an article with one randomly generated author and view the output withevince'.

NOTE: since recent versions of Perl no longer search the current directory by default, if you get an error saying "Can't locate scigen.pn in @INC", you can run perl -I. ./mathgen.pl instead. This will eventually be replaced with a proper installation procedure.

Examples

Generate an article with author "J. Doe" and view the output with xpdf:

$ ./mathgen.pl --product=article --mode=view --author="J. Doe" --viewer=xpdf

The same, but write the PDF to `mypaper.pdf':

$ ./mathgen.pl --product=article --mode=pdf --author="J. Doe" --output=mypaper.pdf

Give yourself a famous collaborator, and create a zip file with the source and PDF:

$ ./mathgen.pl --product=article --mode=zip --output=mypaper.zip --author="J. Doe" --author="P. Erd\H{o}s"

Tip: To randomly generate an author's name, you can use --author=FAMOUS_AUTHOR' or--author=GENERIC_AUTHOR'.

Generate a book:

$ ./mathgen.pl --product=book --mode=pdf --output=mybook.pdf --author="J. Doe"

Note that this may take a couple of minutes to generate and compile.

Merchandising

As an unofficial fundraiser for the American Mathematical Society, I am selling randomly generated textbooks via Lulu.com. For more information, visit

https://thatsmathematics.com/blog/mathgen-books/

US$5.00 from each sale will be donated to the AMS. I earn no other money from these books.

Currently available titles (the author names are also randomly generated):

Galois Knot Theory by J. Maruyama. Paperback, 323 pages.

Convex Algebra by E. Brown. Hardcover, 314 pages.

Higher Group Theory by H. Smith. Paperback, 351 pages.

Each is professionally bound, looks impressive on your desk or bookshelf, and would make a great gift!

You can also use Lulu.com (or another self-publishing site) to produce your own personalized Mathgen textbooks. The output from `--product=book' is set for 6x9 inch paper and should work directly for Lulu's "US Trade" size.

Source code

A quick road map to the files in the source distribution:

Credits

Mathgen was written by Nate Eldredge , incorporating code from SCIgen (https://pdos.csail.mit.edu/scigen/), by Jeremy Stribling, Max Krohn, and Dan Aguayo, without whom this project would not exist. Jordan Eldredge wrote most of the web interface.

A list of names of famous mathematicians, used in the program, was extracted from the web site The Greatest Mathematicians of All Time (https://fabpedigree.com/james/greatmm.htm) by James Dow Allen, and is used by permission. A list of countries and other place names was taken from Wikipedia (https://en.wikipedia.org/wiki/List_of_adjectival_and_demonymic_forms_of_place_names)

License

Mathgen is free software. You are welcome to share, copy, and modify it, under the terms of the GNU General Public License, version 2.0. See the file COPYING.