Ticket #9774: trac_9774-doctests.patch

File trac_9774-doctests.patch, 29.4 KB (added by jhpalmieri, 8 years ago)
  • doc/de/tutorial/latex.rst

    # HG changeset patch
    # User J. H. Palmieri <palmieri@math.washington.edu>
    # Date 1339553037 25200
    # Node ID d6643504ea507b36d24058701f91eac791ceb855
    # Parent  b348b59c85ffd410fcdb36dbe010f7a73954cb06
    MathJax: fix doctests, tutorial
    
    diff --git a/doc/de/tutorial/latex.rst b/doc/de/tutorial/latex.rst
    a b grundsätzlichen Methoden in Sage ansieh 
    2929       mit dem ``latex()``-Befehl  aus und fügen Sie es in Ihr Dokument ein.
    3030
    3131    #. Die Notebook Schnittstelle ist konfiguriert
    32        `jsMath <http://www.math.union.edu/~dpvc/jsMath/>`_
     32       `MathJax <http://www.mathjax.org>`_
    3333       zu nutzen um mathematische Ausdrücke im Browser darzustellen.
    34        jsMath ist eine Kollektion aus JavaScript-Routinen und
     34       MathJax ist eine Kollektion aus JavaScript-Routinen und
    3535       zugehörigen Schriftarten. Es ist also nichts zusätzlich
    3636       einzustellen um mathematische Ausdrücke in Ihrem Browser
    3737       anzuzeigen, wenn Sie das Sage-Notebook nutzen.
    3838       
    39        jsMath wurde entwickelt um einen großen, aber nicht vollständigen
     39       MathJax wurde entwickelt um einen großen, aber nicht vollständigen
    4040       Teil von TeX darstellen zu können. Es gibt keine Unterstützung
    4141       für Dinge, wie komplizierte Tabellen, Kapiteleinteilung oder
    4242       Dokument Management, da es für genaues Darstellen von TeX
    4343       Ausdrücken konzipiert wurde. Die nahtlose Darstellung von
    4444       mathematischen Ausdrücken im Sage Notebook wird durch
    45        Konvertierung der ``latex()``-Darstellung in jsMath
     45       Konvertierung der ``latex()``-Darstellung in MathJax
    4646       gewährleistet.
    4747       
    48        Da jsMath seine eigenen skalierbaren Schriftarten nutzt, ist es
     48       Da MathJax seine eigenen skalierbaren Schriftarten nutzt, ist es
    4949       anderen Methoden überlegen, die auf Konvertierung in kleine
    5050       Bilder beruhen.
    5151       
    52        jsMath wird möglicherweise von MathJAX abgelöst werden, einer
    53        ähnlichen Technik, die vom gleichen Author stammt und eine
    54        breite Unterstützung von Technikern und professionellen 
    55        Vereinen hat.
    56        
    5752    #. Sollte in der Sage Kommandozeile oder im Notebook mehr
    58        LaTeX-Code vorkommen als jsMath verarbeiten kann, kann eine
     53       LaTeX-Code vorkommen als MathJax verarbeiten kann, kann eine
    5954       systemweite Installation von LaTeX aushelfen. Sage beinhaltet
    6055       fast alles, das Sie brauchen um Sage weiter zu entwickeln und
    6156       zu nutzen. Eine Ausnahme hierzu ist TeX selbst. In diesen
    Hier führen wir einige grundlegenden Fu 
    7166    sage: latex(integrate(z^4, z))
    7267    \frac{1}{5} \, z^{5}
    7368    sage: latex('a string')
    74     \verb|a|\phantom{x}\verb|string|
     69    \verb|a|\phantom{\verb!x!}\verb|string|
    7570    sage: latex(QQ)
    7671    \Bold{Q}
    7772    sage: latex(matrix(QQ, 2, 3, [[2,4,6],[-1,-1,-1]]))
    Hier führen wir einige grundlegenden Fu 
    8075    -1 & -1 & -1
    8176    \end{array}\right)
    8277
    83 Grundlegende jsMath Funktionen gibt es im Notebook weitgehend automatisch,
    84 aber wir können es teilweise mit Hilfe der ``JSMath`` Klasse demonstrieren.
     78Grundlegende MathJax Funktionen gibt es im Notebook weitgehend automatisch,
     79aber wir können es teilweise mit Hilfe der ``MathJax`` Klasse demonstrieren.
    8580Die ``eval`` Funktion dieser Klasse konvertiert ein Sage-Objekt in
    8681seine LaTeX-Darstellung und dann in HTML mit der CSS ``math`` Klasse,
    87 die dann jsMath verwendet. ::
     82die dann MathJax verwendet. ::
    8883
    89     sage: from sage.misc.latex import JSMath
    90     sage: js = JSMath()
     84    sage: from sage.misc.latex import MathJax
     85    sage: mj = MathJax()
    9186    sage: var('z')
    9287    z
    93     sage: js(z^12)
    94     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}z^{12}</div></html>
    95     sage: js(QQ)
    96     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</div></html>
    97     sage: js(ZZ[x])
    98     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]</div></html>
    99     sage: js(integrate(z^4, z))
    100     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{5} \, z^{5}</div></html>
    101 
     88    sage: mj(z^12)
     89    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}z^{12}</script></html>
     90    sage: mj(QQ)
     91    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</script></html>
     92    sage: mj(ZZ[x])
     93    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]</script></html>
     94    sage: mj(integrate(z^4, z))
     95    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{5} \, z^{5}</script></html>
    10296   
    10397Grundlegende Nutzung
    10498====================
    Anzeigeprogramm aufgerufen wird, kann an 
    120114:ref:`sec-custom-processing`).
    121115
    122116Im Notebook schafft der ``view(foo)`` Befehl die nötige Kombination
    123 von HTML und CSS sodass jsMath die LaTeX Darstellung im Arbeitsblatt
     117von HTML und CSS sodass MathJax die LaTeX Darstellung im Arbeitsblatt
    124118anzeigt. Für den Anwender erstellt er einfach eine schön formatierte
    125119Ausgabe, die sich von der normalen ASCII Ausgabe aus Sage
    126120unterscheidet. Nicht jedes mathematische Objekt in Sage hat eine
    127 LaTeX-Darstellung, die die eingeschränkten Möglichkeiten von jsMath
    128 unterstützt. In diesen Fällen kann die jsMath Darstellung umgangen
     121LaTeX-Darstellung, die die eingeschränkten Möglichkeiten von MathJax
     122unterstützt. In diesen Fällen kann die MathJax Darstellung umgangen
    129123werden, und stattdessen die systemweite TeX-Installation aufgerufen
    130124werden. Dessen Ausgabe kann dann als Bild im Arbeitsblatt angezeigt
    131125werden. Die Einstellungen und Auswirkungen dieses Prozesses wird im
    132126Kapitel :ref:`sec-custom-generation` dargestellt.
    133127
    134128Der interne ``pretty_print()`` Befehl zeigt die Konvertierung von Sage
    135 Objekten in HTML Code der jsMath nutzt im Notebook.  ::
     129Objekten in HTML Code der MathJax nutzt im Notebook.  ::
    136130
    137131    sage: from sage.misc.latex import pretty_print
    138132    sage: pretty_print(x^12)
    139     <html><span class="math">\newcommand{\Bold}[1]{\mathbf{#1}}x^{12}</span></html>
     133    <html><script type="math/tex">\newcommand{\Bold}[1]{\mathbf{#1}}x^{12}</script></html>
    140134    sage: pretty_print(integrate(sin(x), x))
    141     <html><span class="math">\newcommand{\Bold}[1]{\mathbf{#1}}-\cos\left(x\right)</span></html>
     135    <html><script type="math/tex">\newcommand{\Bold}[1]{\mathbf{#1}}-\cos\left(x\right)</script></html>
    142136
    143137Das Notebook hat zwei weitere Möglichkeiten TeX zu nutzen. Die erste
    144138ist der "Typeset"-Knopf über der ersten Zelle eines Arbeitsblatts,
    145139rechts von den vier Drop-Down-Boxen. Ist er ausgewählt werden die
    146 Ausgaben aller folgenden Berechnungen von jsMath
     140Ausgaben aller folgenden Berechnungen von MathJax
    147141interpretiert. Beachten Sie, dass dieser Befehl nicht rückwirkend ist
    148142-- alle vorher berechneten Zellen werden nicht neu berechnet. Im
    149143Grunde ist der "Typeset"-Knopf gleichzusetzen mit dem Aufruf des
    geöffnet. Dieser erlaubt die Eingabe vo 
    157151Text mit einem WYSIWYG-Editor. Es ist also möglich den so formatierten
    158152Text als Kommentar in einem  Arbeitsblatt unterzubringen. Text den Sie
    159153hier zwischen ``$...$`` oder ``$$...$$`` eingeben wird ebenfalls von
    160 jsMath in einer "inline" bzw. "display math" Umgebung gesetzt. 
     154MathJax in einer "inline" bzw. "display math" Umgebung gesetzt. 
    161155
    162156.. _sec-custom-generation:
    163157
    integriert ist. :: 
    210204
    211205    sage: latex(QQ)
    212206    \Bold{Q}
    213     sage: from sage.misc.latex import JSMath
    214     sage: js=JSMath()
    215     sage: js(QQ)
    216     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</div></html>
     207    sage: from sage.misc.latex import MathJax
     208    sage: mj=MathJax()
     209    sage: mj(QQ)
     210    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</script></html>
    217211    sage: latex.blackboard_bold(True)
    218     sage: js(QQ)
    219     <html><div class="math">\newcommand{\Bold}[1]{\mathbb{#1}}\Bold{Q}</div></html>
     212    sage: mj(QQ)
     213    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbb{#1}}\Bold{Q}</script></html>
    220214    sage: latex.blackboard_bold(False)
    221215
    222216Dank der Erweiterbarkeit von TeX können Sie selbst Makros und Pakete
    223217einbinden. Individuelle Makros können hinzugefügt werden, die dann von
    224 jsMath als TeX-Schnipsel  interpretiert werden. ::
     218MathJax als TeX-Schnipsel  interpretiert werden. ::
    225219
    226220    sage: latex.extra_macros()
    227221    ''
    jsMath als TeX-Schnipsel interpretiert  
    232226    (x, y)
    233227    sage: latex(x+y)
    234228    x + y
    235     sage: from sage.misc.latex import JSMath
    236     sage: js=JSMath()
    237     sage: js(x+y)
    238     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\newcommand{\foo}{bar}x + y</div></html>
     229    sage: from sage.misc.latex import MathJax
     230    sage: mj=MathJax()
     231    sage: mj(x+y)
     232    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\newcommand{\foo}{bar}x + y</script></html>   
    239233
    240234Zusätzliche Makros, die so hinzugefügt wurden, werden auch vom
    241 systemweiten TeX genutzt, wenn jsMath an seine Grenzen gestoßen ist.
     235systemweiten TeX genutzt, wenn MathJax an seine Grenzen gestoßen ist.
    242236Der Befehl ``latex_extra_preamble`` kann genutzt werden um eine
    243237Präambel eines kompletten LaTeX Dokuments zu erzeugen, das folgende
    244238Beispiel zeigt wie. Beachten Sie wiederrum die doppelten Backslashes
    Anpassen der LaTeX-Verarbeitung 
    304298Es ist möglich zu entscheiden welche Variante von TeX für einen
    305299systemweiten Aufruf genutzt werden soll, und somit auch wie die
    306300Ausgabe aussehen soll. Ebenso ist es möglich zu beeinflussen, ob das
    307 Notebook jsMath oder die systemweite LaTeX Installation nutzt.
     301Notebook MathJax oder die systemweite LaTeX Installation nutzt.
    308302
    309303Der Befehl ``latex.engine()`` entscheidet, ob die systemweiten
    310304Anwendungen ``latex``, ``pdflatex`` oder ``xelatex`` genutzt werden
    Datei erzeugt, die mit dem Standard-PDF- 
    317311wird. (acrobat, okular, evince, etc.).
    318312
    319313Im Notebook kann es nötig sein, dem System die Entscheidung
    320 abzunehmen, ob jsMath für einige TeX-Schnipsel, oder das systemweite
     314abzunehmen, ob MathJax für einige TeX-Schnipsel, oder das systemweite
    321315LaTeX für kompliziertere Ausdrücke genutzt werden soll. Es gibt eine
    322316Liste von Befehlen, die wenn einer von ihnen in einem Stück LaTeX-Code
    323317erkannt wird, die Ausgabe von LaTeX (oder welcher Prozessor auch immer
    324 durch ``latex.engine()`` gesetzt ist) statt von jsMath erstellen
     318durch ``latex.engine()`` gesetzt ist) statt von MathJax erstellen
    325319lässt. Diese Liste wird verwaltet durch die Befehle
    326 ``latex.add_to_jsmath_avoid_list`` und
    327 ``latex.jsmath_avoid_list``. ::
     320``latex.add_to_mathjax_avoid_list`` und
     321``latex.mathjax_avoid_list``. ::
    328322
    329     sage: latex.jsmath_avoid_list([])
    330     sage: latex.jsmath_avoid_list()
     323    sage: latex.mathjax_avoid_list([])
     324    sage: latex.mathjax_avoid_list()
    331325    []
    332     sage: latex.jsmath_avoid_list(['foo', 'bar'])
    333     sage: latex.jsmath_avoid_list()
     326    sage: latex.mathjax_avoid_list(['foo', 'bar'])
     327    sage: latex.mathjax_avoid_list()
    334328    ['foo', 'bar']
    335     sage: latex.add_to_jsmath_avoid_list('tikzpicture')
    336     sage: latex.jsmath_avoid_list()
     329    sage: latex.add_to_mathjax_avoid_list('tikzpicture')
     330    sage: latex.mathjax_avoid_list()
    337331    ['foo', 'bar', 'tikzpicture']
    338     sage: latex.jsmath_avoid_list([])
    339     sage: latex.jsmath_avoid_list()
     332    sage: latex.mathjax_avoid_list([])
     333    sage: latex.mathjax_avoid_list()
    340334    []
    341335
    342336Nehmen wir an ein LaTeX-Ausdruck wurde im Notebook durch ``view()``
    343337oder während aktiviertem "Typeset" Knopf erzeugt. Und dann wird
    344338festgestellt, dass er die externe LaTeX-Installation benötigt, weil
    345 er in der ``jsmath_avoid_list`` steht. Der Ausdruck wird nun vom
     339er in der ``mathjax_avoid_list`` steht. Der Ausdruck wird nun vom
    346340ausgewählten (durch ``latex.engine()``) Prozessor erzeugt, und statt
    347341der Anzeige in einem externen Programm (was in der Kommandozeile
    348342passieren  würde) wird Sage versuchen das Ergebnis in einem einzigen,
    eingestellt sind). 
    398392    'latex.add_to_preamble("\\usepackage[matrix,arrow,curve,cmtip]{xy}")',
    399393    and try viewing again -- it should work in the command line but not
    400394    from the notebook.  In the notebook, run
    401     'latex.add_to_jsmath_avoid_list("xymatrix")' and try again -- you
     395    'latex.add_to_mathjax_avoid_list("xymatrix")' and try again -- you
    402396    should get a picture (a part of the diagram arising from a filtered
    403397    chain complex).
    404398
    erzeugt wird. Es ist also ratsam, den La 
    430424erfolgreich eine .pdf Datei mit einem  Bild vom kompletten `K_4`
    431425Graphen erzeugen.
    432426
    433 Um das Gleiche im Notebook zu erstellen, müssen Sie jsMath
     427Um das Gleiche im Notebook zu erstellen, müssen Sie MathJax
    434428für die Verarbeitung von LaTeX-Code ausschalten, indem Sie
    435 die "jsmath avoid list" benutzen. Graphen werden in einer
     429die "mathjax avoid list" benutzen. Graphen werden in einer
    436430``tikzpicture`` Umgebung eingebunden, das ist also eine gute Wahl
    437431für die Zeichenkette für die Ausschlussliste. Jetzt sollte
    438432``view(graphs.CompleteGraph(4))`` in einem Arbeitsblatt
    mittels LaTeX in einem Notebook darzuste 
    447441    sage: latex.extra_preamble() # random - depends on system's TeX installation
    448442    '\\usepackage{tikz}\n\\usepackage{tkz-graph}\n\\usepackage{tkz-berge}\n'
    449443    sage: latex.engine('pdflatex')
    450     sage: latex.add_to_jsmath_avoid_list('tikzpicture')
    451     sage: latex.jsmath_avoid_list()
     444    sage: latex.add_to_mathjax_avoid_list('tikzpicture')
     445    sage: latex.mathjax_avoid_list()
    452446    ['tikzpicture']
    453447
    454448Beachten Sie, dass es eine Vielzahl von Optionen gibt, die die
    aus den anderen berechnen zu lassen. Sie 
    494488
    495489tex2sws beginnt mit einem LaTeX-Dokument, aber definiert einige zusätzliche
    496490Umgebungen für Sage Code. Wenn es richtig genutzt wird, ist das Ergebnis ein
    497 Sage Arbeitsblatt mit korrekt von jsMath formatiertem Inhalt und dem dazugehörigen
     491Sage Arbeitsblatt mit korrekt von MathJax formatiertem Inhalt und dem dazugehörigen
    498492Sage Code in den Eingabezellen. Ein Lehrbuch oder Artikel kann also mit Sage Code Blöcken
    499493in LaTeX gesetzt werden und es kann "live" das ganze Dokument in ein Sage Arbeitsblatt überführt werden;
    500494unter Beibehaltung der Sage Code Blöcke und mit schön formatiertem mathematischen Text.
  • doc/en/tutorial/latex.rst

    diff --git a/doc/en/tutorial/latex.rst b/doc/en/tutorial/latex.rst
    a b employed by Sage. 
    3131       of the object and cut/paste it into your document.
    3232
    3333    #. The notebook interface is configured to use
    34        `jsMath <http://www.math.union.edu/~dpvc/jsMath/>`_
     34       `MathJax <http://www.mathjax.org>`_
    3535       to render mathematics
    36        cleanly in a web browser.  jsMath is a collection of JavaScript routines
    37        and associated fonts.  Typically, these fonts live on a server and are
    38        sent to a browser along with the web page that displays them.  In the
    39        case of Sage, the notebook is always connected to a server used to
    40        execute the Sage commands, and this server also provides the necessary
    41        jsMath fonts.  So there is nothing extra to set up to have typeset
    42        mathematics in your web browser when you use the Sage notebook.
    43 
    44        jsMath is implemented to be able to render a large, but
    45        not totally complete, subset of TeX.  It has no support for
     36       cleanly in a web browser.  MathJax is an open source JavaScript
     37       display engine for mathematics that works in all modern
     38       browsers.  It is able to render a large, but not totally
     39       complete, subset of TeX.  It has no support for
    4640       things like complicated tables, sectioning or document
    4741       management, as it is oriented towards accurately rendering
    4842       "snippets" of TeX. Seemingly automatic rendering of math in the
    4943       notebook is provided by converting the ``latex()``
    5044       representation of an object (as described above) into a form of
    51        HTML palatable to jsMath.
     45       HTML palatable to MathJax.
    5246
    53        Since jsMath uses its own scalable fonts, it is superior to other methods that
     47       Since MathJax uses its own scalable fonts, it is superior to other methods that
    5448       rely on converting equations, or other snippets of TeX, into static inline images.
    5549
    56        jsMath is likely to be superseded by MathJAX, a similar technology
    57        from the same author, which has broad support from technical publishers
    58        and professional societies.
    59 
    6050    #. At the Sage command-line, or in the notebook when LaTeX code is
    61        more involved than jsMath can handle, a system-wide installation of
     51       more involved than MathJax can handle, a system-wide installation of
    6252       LaTeX can be employed.  Sage includes almost everything you need to
    6353       build and use Sage, but a significant exception is TeX itself.  So in these
    6454       situations you need to have TeX installed, along with some associated
    Here we demonstrate some basic uses of t 
    7363    sage: latex(integrate(z^4, z))
    7464    \frac{1}{5} \, z^{5}
    7565    sage: latex('a string')
    76     \verb|a|\phantom{x}\verb|string|
     66    \verb|a|\phantom{\verb!x!}\verb|string|
    7767    sage: latex(QQ)
    7868    \Bold{Q}
    7969    sage: latex(matrix(QQ, 2, 3, [[2,4,6],[-1,-1,-1]]))
    Here we demonstrate some basic uses of t 
    8272    -1 & -1 & -1
    8373    \end{array}\right)
    8474
    85 Basic jsMath functionality is largely automatic in the notebook, but
    86 we can partially demonstrate this support with the ``JSMath`` class,
     75Basic MathJax functionality is largely automatic in the notebook, but
     76we can partially demonstrate this support with the ``MathJax`` class,
    8777The ``eval`` function of this class converts a Sage object to its
    8878LaTeX representation and then wraps it in HTML that invokes the CSS
    89 "math" class, which then employs jsMath.  ::
     79"math" class, which then employs MathJax.  ::
    9080
    91     sage: from sage.misc.latex import JSMath
    92     sage: js = JSMath()
     81    sage: from sage.misc.latex import MathJax
     82    sage: mj = MathJax()
    9383    sage: var('z')
    9484    z
    95     sage: js(z^12)
    96     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}z^{12}</div></html>
    97     sage: js(QQ)
    98     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</div></html>
    99     sage: js(ZZ[x])
    100     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]</div></html>
    101     sage: js(integrate(z^4, z))
    102     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{5} \, z^{5}</div></html>
     85    sage: mj(z^12)
     86    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}z^{12}</script></html>
     87    sage: mj(QQ)
     88    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</script></html>
     89    sage: mj(ZZ[x])
     90    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]</script></html>
     91    sage: mj(integrate(z^4, z))
     92    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{5} \, z^{5}</script></html>
    10393
    10494Basic Use
    10595=========
    is used, and therefore the nature of the 
    121111viewer, can be customized (see :ref:`sec-custom-processing`).
    122112
    123113In the notebook, the ``view(foo)`` command creates the
    124 appropriate combination of HTML and CSS so that jsMath will
     114appropriate combination of HTML and CSS so that MathJax will
    125115render the LaTeX representation properly in the worksheet.  To the
    126116user, it simply creates a nicely formatted version of the output,
    127117distinct from the default ASCII output of Sage.  Not every
    128118mathematical object in Sage has a LaTeX representation amenable to
    129 the limited capabilities of jsMath.  In these cases, the jsMath
     119the limited capabilities of MathJax.  In these cases, the MathJax
    130120interpretation can be bypassed, the system-wide TeX called
    131121instead, and the subsequent output converted to a graphic image
    132122for display in the worksheet.  Affecting and controlling this
    process is discussed below in the sectio 
    134124:ref:`sec-custom-generation`.
    135125
    136126The internal ``pretty_print()`` command illustrates the
    137 conversion of Sage objects to HTML code that employs jsMath in
     127conversion of Sage objects to HTML code that employs MathJax in
    138128the notebook.  ::
    139129
    140130    sage: from sage.misc.latex import pretty_print
    141131    sage: pretty_print(x^12)
    142     <html><span class="math">\newcommand{\Bold}[1]{\mathbf{#1}}x^{12}</span></html>
     132    <html><script type="math/tex">\newcommand{\Bold}[1]{\mathbf{#1}}x^{12}</script></html>
    143133    sage: pretty_print(integrate(sin(x), x))
    144     <html><span class="math">\newcommand{\Bold}[1]{\mathbf{#1}}-\cos\left(x\right)</span></html>
     134    <html><script type="math/tex">\newcommand{\Bold}[1]{\mathbf{#1}}-\cos\left(x\right)</script></html>
    145135
    146136The notebook has two other features for employing TeX.
    147137The first is the "Typeset" button just above the first cell of a
    148138worksheet, to the right of the four drop-down boxes.  When
    149139checked, any subsequent evaluations of cells will result in
    150 output interpreted by jsMath, hence of a typeset quality.  Note
     140output interpreted by MathJax, hence of a typeset quality.  Note
    151141that this effect is not retroactive -- previously evaluated cells
    152142need to be re-evaluated.  Essentially, checking the "Typeset"
    153143button is identical to wrapping the output of each cell in the
    allows for the entry of text, using a WS 
    161151HTML and CSS command for styled text.  So it is possible to add
    162152formatted text as commentary within a worksheet.  However, text
    163153between pairs of dollar signs, or pairs of double dollar signs is
    164 interpreted by jsMath as inline or display math (respectively).
     154interpreted by MathJax as inline or display math (respectively).
    165155
    166156.. _sec-custom-generation:
    167157
    The ``latex.vector_delimiters`` method w 
    204194
    205195The way common rings and fields (integers, rational, reals, etc.)
    206196are typeset can be controlled by the ``latex.blackboard_bold``
    207 method.  These sets are by default typset in bold, but may
     197method.  These sets are by default typeset in bold, but may
    208198optionally be written in a double-struck fashion as sometimes
    209199done in written work.  This is accomplished by redefining the
    210200``\Bold{}`` macro which is built-in to Sage. ::
    211201
    212202    sage: latex(QQ)
    213203    \Bold{Q}
    214     sage: from sage.misc.latex import JSMath
    215     sage: js=JSMath()
    216     sage: js(QQ)
    217     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</div></html>
     204    sage: from sage.misc.latex import MathJax
     205    sage: mj=MathJax()
     206    sage: mj(QQ)
     207    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}</script></html>
    218208    sage: latex.blackboard_bold(True)
    219     sage: js(QQ)
    220     <html><div class="math">\newcommand{\Bold}[1]{\mathbb{#1}}\Bold{Q}</div></html>
     209    sage: mj(QQ)
     210    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbb{#1}}\Bold{Q}</script></html>
    221211    sage: latex.blackboard_bold(False)
    222212
    223213It is possible to take advantage of the extensible nature of
    224214tex by adding in new macros and new packages.  First,
    225215individual macros can be added so that they are used when
    226 jsMath interprets a snippet of TeX in the notebook.  ::
     216MathJax interprets a snippet of TeX in the notebook.  ::
    227217
    228218    sage: latex.extra_macros()
    229219    ''
    jsMath interprets a snippet of TeX in th 
    234224    (x, y)
    235225    sage: latex(x+y)
    236226    x + y
    237     sage: from sage.misc.latex import JSMath
    238     sage: js=JSMath()
    239     sage: js(x+y)
    240     <html><div class="math">\newcommand{\Bold}[1]{\mathbf{#1}}\newcommand{\foo}{bar}x + y</div></html>
     227    sage: from sage.misc.latex import MathJax
     228    sage: mj=MathJax()
     229    sage: mj(x+y)
     230    <html><script type="math/tex; mode=display">\newcommand{\Bold}[1]{\mathbf{#1}}\newcommand{\foo}{bar}x + y</script></html>   
    241231
    242232Additional macros added this way will also be used in the event
    243233that the system-wide version of TeX is called on
    244 something larger than jsMath can handle.  The command
     234something larger than MathJax can handle.  The command
    245235``latex_extra_preamble`` is used to build the preamble of a
    246236complete LaTeX document, so the following illustrates
    247237how this is accomplished. As usual note the need for the
    Customizing LaTeX Processing 
    312302It is also possible to control which variant of TeX is
    313303used for system-wide invocations, thus also influencing the
    314304nature of the output.  Similarly, it is also possible to control
    315 when the notebook will use jsMath (simple TeX snippets)
     305when the notebook will use MathJax (simple TeX snippets)
    316306or the system-wide TeX installation (more complicated
    317307LaTeX expressions).
    318308
    call your system's utility for displayin 
    328318okular, evince, etc.).
    329319
    330320In the notebook, it is necessary to intervene in the decision as
    331 to whether jsMath will interpret a snippet of TeX, or
     321to whether MathJax will interpret a snippet of TeX, or
    332322if the LaTeX is complicated enough that the system-wide
    333323installation of TeX should do the work instead.  The
    334324device is a list of strings, which if any one is discovered in a
    335325piece of LaTeX code signal the notebook to bypass
    336 jsMath and invoke latex (or whichever executable is set by the
     326MathJax and invoke latex (or whichever executable is set by the
    337327``latex.engine()`` command).  This list is managed by the
    338 ``latex.add_to_jsmath_avoid_list`` and
    339 ``latex.jsmath_avoid_list`` commands. ::
     328``latex.add_to_mathjax_avoid_list`` and
     329``latex.mathjax_avoid_list`` commands. ::
    340330
    341     sage: latex.jsmath_avoid_list([])
    342     sage: latex.jsmath_avoid_list()
     331    sage: latex.mathjax_avoid_list([])
     332    sage: latex.mathjax_avoid_list()
    343333    []
    344     sage: latex.jsmath_avoid_list(['foo', 'bar'])
    345     sage: latex.jsmath_avoid_list()
     334    sage: latex.mathjax_avoid_list(['foo', 'bar'])
     335    sage: latex.mathjax_avoid_list()
    346336    ['foo', 'bar']
    347     sage: latex.add_to_jsmath_avoid_list('tikzpicture')
    348     sage: latex.jsmath_avoid_list()
     337    sage: latex.add_to_mathjax_avoid_list('tikzpicture')
     338    sage: latex.mathjax_avoid_list()
    349339    ['foo', 'bar', 'tikzpicture']
    350     sage: latex.jsmath_avoid_list([])
    351     sage: latex.jsmath_avoid_list()
     340    sage: latex.mathjax_avoid_list([])
     341    sage: latex.mathjax_avoid_list()
    352342    []
    353343
    354344Suppose a LaTeX expression is produced in the notebook
    355345with ``view()`` or while the "Typeset" button is checked, and
    356346then recognized as requiring the external LaTeX
    357 installation through the "jsmath avoid list."  Then the selected
     347installation through the "mathjax avoid list."  Then the selected
    358348executable (as specified by ``latex.engine()``) will process the
    359349LaTeX.  However, instead of then spawning an external
    360350viewer (which is the command-line behavior), Sage will attempt to
    properly. To actually see the examples, 
    410400    'latex.add_to_preamble("\\usepackage[matrix,arrow,curve,cmtip]{xy}")',
    411401    and try viewing again -- it should work in the command line but not
    412402    from the notebook.  In the notebook, run
    413     'latex.add_to_jsmath_avoid_list("xymatrix")' and try again -- you
     403    'latex.add_to_mathjax_avoid_list("xymatrix")' and try again -- you
    414404    should get a picture (a part of the diagram arising from a filtered
    415405    chain complex).
    416406
    should succeed at the Sage command-line  
    443433with an appropriate image of the complete graph `K_4`.
    444434
    445435For a similar experience in the notebook, it is necessary
    446 to disable jsMath processing of the LaTeX code for the graph
    447 by using the "jsmath avoid list."  Graphs are included with a
     436to disable MathJax processing of the LaTeX code for the graph
     437by using the "mathjax avoid list."  Graphs are included with a
    448438``tikzpicture`` environment, so this is a good choice for
    449439a string to include in the avoidance list.  Now,
    450440``view(graphs.CompleteGraph(4))`` in a worksheet
    graphs processed by LaTeX in the noteboo 
    459449    sage: latex.extra_preamble() # random - depends on system's TeX installation
    460450    '\\usepackage{tikz}\n\\usepackage{tkz-graph}\n\\usepackage{tkz-berge}\n'
    461451    sage: latex.engine('pdflatex')
    462     sage: latex.add_to_jsmath_avoid_list('tikzpicture')
    463     sage: latex.jsmath_avoid_list()
     452    sage: latex.add_to_mathjax_avoid_list('tikzpicture')
     453    sage: latex.mathjax_avoid_list()
    464454    ['tikzpicture']
    465455
    466456At this point, a command like ``view(graphs.CompleteGraph(4))``
    information. 
    516506tex2sws begins with a LaTeX document, but defines extra
    517507environments for the placement of Sage code.  When processed with
    518508the right tools, the result is a Sage worksheet, with content
    519 properly formatted for jsMath and the Sage code incorporated as
     509properly formatted for MathJax and the Sage code incorporated as
    520510input cells.  So a textbook or article can be authored in
    521511LaTeX, blocks of Sage code included, and the whole
    522512document can be transformed into a Sage worksheet where the
  • sage/matrix/matrix0.pyx

    diff --git a/sage/matrix/matrix0.pyx b/sage/matrix/matrix0.pyx
    a b cdef class Matrix(sage.structure.element 
    19171917            \hline\hline
    19181918            0 & 0 & 0 & 0
    19191919            \end{array}\right)
    1920 
    1921         Note that size-zero subdivisions are ignored in the notebook::
    1922            
    1923             sage: sage.server.support.EMBEDDED_MODE = True
    1924             sage: latex(B)
    1925             \left(\begin{array}{rr}
    1926             \left(\begin{array}{rrr}
    1927             0 & 0 & 0 \\
    1928             0 & 0 & 0
    1929             \end{array}\right) & \left(\begin{array}{r}
    1930             0 \\
    1931             0
    1932             \end{array}\right) \\
    1933             \\
    1934             \left(\begin{array}{rrr}
    1935             0 & 0 & 0
    1936             \end{array}\right) & \left(\begin{array}{r}
    1937             0
    1938             \end{array}\right)
    1939             \end{array}\right)
    1940             sage: sage.server.support.EMBEDDED_MODE = False
    19411920        """
    19421921        latex = sage.misc.latex.latex
    19431922        matrix_delimiters = latex.matrix_delimiters()