Giter VIP home page Giter VIP logo

mathgen's Introduction

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 <nate at thatsmathematics dot com>,
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.

mathgen's People

Contributors

neldredge avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.