Differences between revisions 9 and 23 (spanning 14 versions)
Revision 9 as of 2013-06-20 21:00:19
Size: 1550
Editor: rbeezer
Comment:
Revision 23 as of 2013-06-30 05:32:30
Size: 5145
Editor: rbeezer
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Design Goals: [[http://www.beezers.org/blog/bb/2013/06/shuttleworth-flash-grant/|{{attachment:Shuttleworth-Funded-Logo.jpg|Shuttleworth Funded|width=250px}}]]
Line 7: Line 7:
  1. Simple for authors to use - no more complicated logically than LaTeX. Rob Beezer, [email protected]

=== Design Goals: ===

1. Simple for authors to use - no more complicated logically than LaTeX
Line 10: Line 14:
  1. A limited number of rational tags, with simple names
  1. Minimal use of external shell scripts
  1. XSLT 1.0 compatible: ideally the only required tool is xsltproc
Line 11: Line 18:
Output Formats: === Output Formats: ===
Line 13: Line 20:
  1. HTML web pages, enhanced with MathJax, Sage Cell server, knowls   1. HTML web pages, enhanced with !MathJax, Sage Cell server, knowls
Line 15: Line 22:
  1. HTML for in-browser previewing
Line 18: Line 24:
  1. Maybe a !DocBook representation for conversion to other outputs
Line 19: Line 26:
Project Status: == Examples ==

  1. A short sample article: [[http://buzzard.ups.edu/mathbook/calculus-article.html|XML Source-Author Format]] [[http://buzzard.ups.edu/mathbook/calculus-article.html|HTML Output]] [[http://buzzard.ups.edu/mathbook/calculus-article.pdf|PDF Output]]
  1. A skeletal mock book: [[http://buzzard.ups.edu/mathbook/graph-theory-book.html|XML Source-Author Format]] [[http://buzzard.ups.edu/mathbook/graph-theory-book.html|HTML Output]] [[http://buzzard.ups.edu/mathbook/graph-theory-book.pdf|PDF Output]]

=== Project Status: ===
Line 22: Line 34:
  * Late-June 2013: Good basic functionality for HTML, LaTeX output
Line 23: Line 36:

== Commentary ==

High-level commentary is recorded on my [[http://www.beezers.org/blog/bb|blog]].

== Implemented Features ==

 * Article structure with numbered sections (subsections will be easy)
 * Numbered theorems
 * Sage input/output: live Sage cells in HTML, styled in LaTeX
 * Bibliography + citations: knowls in HTML version
 * Math: normal LaTeX for PDF, !MathJax in HTML, macros in source '''once'''
Line 26: Line 51:
  (Use your browser to save these files locally, do not simply click on them)
Line 28: Line 52:
  1. XSL transform to LaTeX [[http://buzzard.ups.edu/mathbook/article-latex.xsl]]
  1. XSL transform to XHTML [[http://buzzard.ups.edu/mathbook/article-html.xsl]]
  1. Example XML document [[http://buzzard.ups.edu/mathbook/calculus-article.xml]]
Updated: June 28, 2013
  
Line 32: Line 55:
To use, for example, put all files in the same directory and issue Easiest: it would be nice if you could view the source file (calculus-article.xml) by opening it in a web browser with the stylesheet (article-html.xsl) in the same directory. This did work on some browsers, and not on others. I've added enough nontrivial features now that this is not working in Firefox.

Easy: Look at the [[http://buzzard.ups.edu/mathbook/calculus-article.html|XHTML Output]]. !MathJax does the math, Sage Cell Server does the code, knowls do the citations. Use the following command and files below to create XHTML output and view in your browser by opening the output file.
{{{
xsltproc article-html.xsl calculus-article.xml > calculus-article.html
}}}

Alternate: Look at the [[http://buzzard.ups.edu/mathbook/calculus-article.pdf|PDF Output]], which comes from the same source. Issue the following to produce.
Line 39: Line 69:
Or you should be able to preview the source file (*.xml) by opening it in a web browser with the stylesheet (*.xsl) in the same directory. This works on some browsers, and not on others, so experiment. I have used Firefox on Ubuntu with success. Advanced: create a [[https://cloud.sagemath.com|Sage Cloud]] worksheet from the same source. I have this working in the lab. Posted soon.

Files: Use your browser to save these files locally, do not simply click on them. If you are an author, the only file you need to understand is the first one, the XML source.

  1. [[http://buzzard.ups.edu/mathbook/calculus-article.xml|Example XML source document]]
  1. [[http://buzzard.ups.edu/mathbook/article-latex.xsl|XSL transform to LaTeX]]
  1. [[http://buzzard.ups.edu/mathbook/article-html.xsl|XSL transform to XHTML]]
  1. [[http://buzzard.ups.edu/mathbook/freebsd-docbook.css|FreeBSD documentation CSS]]
  1. [[http://buzzard.ups.edu/mathbook/mathbook.css|MathBook CSS]]


== To Do ==

 * Cross-references
 * Table of Contents in HTML as sidebar
 * Definitions
 * Index for book structure
 * Options for numbering sections, theorem-like structures
 * Improved CSS for HTML
 * Doctesting framework for Sage code
 * Sage notebook, Sage Math Cloud output formats
 * HTML chunking (one HTML file per section, chapter, etc)
 * Customization options (layers, HTML head insertions)
 * LaTeX spacing hints

== Other Projects ==

 * [[http://tbookdtd.sourceforge.net/|tbook]] looks very much like what I am imagining. I have hacked a bit of it to work with the {{{xsltproc}}} processor with mixed success. Only [[http://tbookdtd.sourceforge.net/dtd/index.html|80 elements]]. But for a very short article, I have found cross-references broken and manufacturing a bibliography begins with BibTeX, so that requires some research (and shell scripts). Maybe some examples later.

 * [[http://www.docbook.org/|DocBook]] is big, complicated and full of features. But the emphasis is on technical documentation and support for mathematics and academic publishing is very lacking. The extensive structure is intimidating if you just have small project.

MathBook: An XML Application

A specification for XML tags and stylesheets to create usable output.

Shuttleworth Funded

Rob Beezer, [email protected]

Design Goals:

  1. Simple for authors to use - no more complicated logically than LaTeX
  2. Capture the structure of writing about mathematics and Sage
  3. Processing into a variety of formats
  4. A limited number of rational tags, with simple names
  5. Minimal use of external shell scripts
  6. XSLT 1.0 compatible: ideally the only required tool is xsltproc

Output Formats:

  1. HTML web pages, enhanced with MathJax, Sage Cell server, knowls

  2. LaTeX input to create PDFs and print with pdflatex

  3. Doctesting of Sage code examples
  4. E-Books, once technically feasible
  5. Maybe a DocBook representation for conversion to other outputs

Examples

  1. A short sample article: XML Source-Author Format HTML Output PDF Output

  2. A skeletal mock book: XML Source-Author Format HTML Output PDF Output

Project Status:

  • Funding: Shuttleworth Foundation Flash Grant, National Science Foundation UTMOST Grant
  • Late-June 2013: Good basic functionality for HTML, LaTeX output
  • Mid-June 2013: initiated, not mature or stable

Commentary

High-level commentary is recorded on my blog.

Implemented Features

  • Article structure with numbered sections (subsections will be easy)
  • Numbered theorems
  • Sage input/output: live Sage cells in HTML, styled in LaTeX
  • Bibliography + citations: knowls in HTML version
  • Math: normal LaTeX for PDF, MathJax in HTML, macros in source once

Files and Examples

Updated: June 28, 2013

Easiest: it would be nice if you could view the source file (calculus-article.xml) by opening it in a web browser with the stylesheet (article-html.xsl) in the same directory. This did work on some browsers, and not on others. I've added enough nontrivial features now that this is not working in Firefox.

Easy: Look at the XHTML Output. MathJax does the math, Sage Cell Server does the code, knowls do the citations. Use the following command and files below to create XHTML output and view in your browser by opening the output file.

xsltproc article-html.xsl calculus-article.xml > calculus-article.html

Alternate: Look at the PDF Output, which comes from the same source. Issue the following to produce.

xsltproc article-latex.xsl calculus-article.xml > calculus-article.tex
pdflatex calculus-article.tex

Advanced: create a Sage Cloud worksheet from the same source. I have this working in the lab. Posted soon.

Files: Use your browser to save these files locally, do not simply click on them. If you are an author, the only file you need to understand is the first one, the XML source.

  1. Example XML source document

  2. XSL transform to LaTeX

  3. XSL transform to XHTML

  4. FreeBSD documentation CSS

  5. MathBook CSS

To Do

  • Cross-references
  • Table of Contents in HTML as sidebar
  • Definitions
  • Index for book structure
  • Options for numbering sections, theorem-like structures
  • Improved CSS for HTML
  • Doctesting framework for Sage code
  • Sage notebook, Sage Math Cloud output formats
  • HTML chunking (one HTML file per section, chapter, etc)
  • Customization options (layers, HTML head insertions)
  • LaTeX spacing hints

Other Projects

  • tbook looks very much like what I am imagining. I have hacked a bit of it to work with the xsltproc processor with mixed success. Only 80 elements. But for a very short article, I have found cross-references broken and manufacturing a bibliography begins with BibTeX, so that requires some research (and shell scripts). Maybe some examples later.

  • DocBook is big, complicated and full of features. But the emphasis is on technical documentation and support for mathematics and academic publishing is very lacking. The extensive structure is intimidating if you just have small project.

mathbook (last edited 2014-04-30 17:24:35 by rbeezer)