Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/neldredge/mathgen

Generate random nonsense math papers
https://github.com/neldredge/mathgen

Last synced: 3 months ago
JSON representation

Generate random nonsense math papers

Awesome Lists containing this project

README

        

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:

- Perl
- LaTeX
- BibTeX
- zip (for --mode=zip)

You will need the following LaTeX packages:

- AMS-LaTeX
- fullpage
- mathrsfs
- natbib
- truncate

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

- geometry
- txfonts
- hyphenat
- textcase
- hyperref
- titlesec
- makeidx
- url
- tocbibind

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 with `evince'.

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:

- mathgen.pl: Main driver file, processes options and disposes of
output.

- scigen.pm: The SCIgen grammar engine. Reads the rules files and
generates the output.

- scirules.in: Common grammar rules, included into the following
files.

- sci{article,book,blurb}.in: Grammar rules specific for the
corresponding products.

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.