From 67998e55afacbaf53f2932436d7c52faec627a5f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 18 Aug 2012 22:35:01 +0530 Subject: [PATCH] Add documentation on maths in ebooks --- manual/images/lorentz.png | Bin 0 -> 7281 bytes manual/mathjax.html | 100 ++++++++++++++++++ manual/resources/mathjax.epub | Bin 0 -> 3903 bytes manual/tutorials.rst | 1 + manual/typesetting_math.rst | 57 ++++++++++ .../ebooks/conversion/plugins/epub_output.py | 3 +- 6 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 manual/images/lorentz.png create mode 100644 manual/mathjax.html create mode 100644 manual/resources/mathjax.epub create mode 100644 manual/typesetting_math.rst diff --git a/manual/images/lorentz.png b/manual/images/lorentz.png new file mode 100644 index 0000000000000000000000000000000000000000..4b261dde38aa725dfb474e3f5213d47cbd034c16 GIT binary patch literal 7281 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 T7Lo=p4G|4hEtTTyR-yj~rKcE@ literal 0 HcmV?d00001 diff --git a/manual/mathjax.html b/manual/mathjax.html new file mode 100644 index 0000000000..0716b36f21 --- /dev/null +++ b/manual/mathjax.html @@ -0,0 +1,100 @@ + + + + +Math Test Page + + + + + + + + + +

Sample Equations

+ +
+ +

The Lorenz Equations

+ +

+\begin{align} +\dot{x} & = \sigma(y-x) \\ +\dot{y} & = \rho x - y - xz \\ +\dot{z} & = -\beta z + xy +\end{align} +

+ +

The Cauchy-Schwarz Inequality

+ +

\[ +\left( \sum_{k=1}^n a_k b_k \right)^{\!\!2} \leq + \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) +\]

+ +

A Cross Product Formula

+ +

\[ + \mathbf{V}_1 \times \mathbf{V}_2 = + \begin{vmatrix} + \mathbf{i} & \mathbf{j} & \mathbf{k} \\ + \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ + \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\ + \end{vmatrix} +\]

+ +

The probability of getting \(k\) heads when flipping \(n\) coins is:

+ +

\[P(E) = {n \choose k} p^k (1-p)^{ n-k} \]

+ +

An Identity of Ramanujan

+ +

\[ + \frac{1}{(\sqrt{\phi \sqrt{5}}-\phi) e^{\frac25 \pi}} = + 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} + {1+\frac{e^{-8\pi}} {1+\ldots} } } } +\]

+ +

A Rogers-Ramanujan Identity

+ +

\[ + 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = + \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, + \quad\quad \text{for $|q|<1$}. +\]

+ +

Maxwell's Equations

+ +

+\begin{align} + \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ + \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ + \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ + \nabla \cdot \vec{\mathbf{B}} & = 0 +\end{align} +

+ +

In-line Mathematics

+ +

Finally, while display equations look good for a page of samples, the +ability to mix math and text in a paragraph is also important. This +expression \(\sqrt{3x-1}+(1+x)^2\) is an example of an inline equation. As +you see, equations can be used this way as well, without unduly +disturbing the spacing between lines.

+ + +
+ + + diff --git a/manual/resources/mathjax.epub b/manual/resources/mathjax.epub new file mode 100644 index 0000000000000000000000000000000000000000..417c038cc9bcf491b4a33b94f647f400d69f49e3 GIT binary patch literal 3903 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 literal 0 HcmV?d00001 diff --git a/manual/tutorials.rst b/manual/tutorials.rst index dd41c730b0..420c1a4cbd 100755 --- a/manual/tutorials.rst +++ b/manual/tutorials.rst @@ -18,4 +18,5 @@ Here you will find tutorials to get you started using |app|'s more advanced feat regexp server creating_plugins + typesetting_math diff --git a/manual/typesetting_math.rst b/manual/typesetting_math.rst new file mode 100644 index 0000000000..6dae41a106 --- /dev/null +++ b/manual/typesetting_math.rst @@ -0,0 +1,57 @@ + +.. include:: global.rst + +.. _typesetting_math: + + +Typesetting Math in ebooks +============================ + +The |app| ebook viewer has the ability to display math embedded in ebooks (ePuB +and HTML files). You can typeset the math directly with TeX or MathML or +AsciiMath. The |app| viewer uses the excellent `MathJax +`_ library to do this. This is a brief tutorial on +creating ebooks with math in them that work well with the |app| viewer. + +A simple HTML file with mathematics +====================================== + +You can write mathematics inline inside a simple HTML file and the |app| viewer +will render it into properly typeset mathematics. In the example below, we use +TeX notation for mathematics. You will see that you can use normal TeX +commands, with the small caveat that ampersands and less than and greater than +signs have to be written as & < and > respectively. + +The first step is to tell |app| that this will contains maths. You do this by +adding the following snippet of code to the section of the HTML file:: + + + +That's it, now you can type mathematics just as you would in a .tex file. For +example, here are Lorentz's equations:: + +

The Lorenz Equations

+ +

+ \begin{align} + \dot{x} & = \sigma(y-x) \\ + \dot{y} & = \rho x - y - xz \\ + \dot{z} & = -\beta z + xy + \end{align} +

+ +This snippet looks like the following screen shot in the |app| viewer. + +.. figure:: images/lorentz.png + :align: center + + :guilabel:`The Lorentz Equations` + +The complete HTML file, with more equations and inline mathematics is +reproduced below. Also, a link the EPUB version, generated by converting the +HTML file to EPUB in |app|: `mathjax.epub <_static/mathjax.epub>`_. + +.. literalinclude:: mathjax.html + :language: html + :emphasize-lines: 8,9,29-38 + diff --git a/src/calibre/ebooks/conversion/plugins/epub_output.py b/src/calibre/ebooks/conversion/plugins/epub_output.py index be5a1ab4a1..48ee28be6e 100644 --- a/src/calibre/ebooks/conversion/plugins/epub_output.py +++ b/src/calibre/ebooks/conversion/plugins/epub_output.py @@ -388,7 +388,8 @@ class EPUBOutput(OutputFormatPlugin): if not tag.text: tag.getparent().remove(tag) for tag in XPath('//h:script')(root): - if not tag.text and not tag.get('src', False): + if (not tag.text and not tag.get('src', False) and + tag.get('type', None) != 'text/x-mathjax-config'): tag.getparent().remove(tag) for tag in XPath('//h:body/descendant::h:script')(root): tag.getparent().remove(tag)