.. _tex-html: #### html #### The `html` extension gives you access to some HTML features like styles, classes, element ID's, data-* attributes, and clickable links. It defines the following non-standard macros: .. describe:: \\href{url}{math} Makes ``math`` be a link to the page given by ``url``. Note that the url is not processed by TeX, but is given as the literal url. In actual TeX or LaTeX, special characters must be escaped; so, for example, a url containing a ``#`` would need to use ``\#`` in the url in actual TeX. That is not necessary in MathJax, and if you do use ``\#``, it will produce ``/#`` in the url (since the ``\`` will be inserted into the url verbatim, and browsers will convert that to ``/`` (thinking it is a DOS directory separator). .. describe:: \\class{name}{math} Attaches the CSS class ``name`` to the output associated with ``math`` when it is included in the HTML page. This allows your CSS to style the element. .. describe:: \\cssId{id}{math} Attaches an id attribute with value ``id`` to the output associated with ``math`` when it is included in the HTML page. This allows your CSS to style the element, or your javascript to locate it on the page. .. describe:: \\style{css}{math} Adds the give ``css`` declarations to the element associated with ``math``. .. describe:: \\data{dataset}{math} Adds `data-* `__ attributes to the element associated with ``math``. For example: .. code-block:: latex x \href{why-equal.html}{=} y^2 + 1 (x+1)^2 = \class{hidden}{(x+1)(x+1)} (x+1)^2 = \cssId{step1}{\style{visibility:hidden}{(x+1)(x+1)}} x = \data{during=quadratic}{\frac{-b\pm\sqrt{b^2-4ac}}{2a}} .. Note:: For the ``\href`` macro, the `url` parameter is not processed further, as it is in actual TeX, so you do not need to quote special characters. For example, ``\href{#section1}{x}`` is fine, but ``\href{\#section}{x}`` will not work as expected. This extension is loaded automatically when the `autoload` extension is used. To load the `html` extension explicitly, add ``'[tex]/html'`` to the ``load`` array of the ``loader`` block of your MathJax configuration, and add ``'html'`` to the ``packages`` array of the ``tex`` block. .. code-block:: javascript window.MathJax = { loader: {load: ['[tex]/html']}, tex: {packages: {'[+]': ['html']}} }; Alternatively, use ``\require{html}`` in a TeX expression to load it dynamically from within the math on the page, if the `require` extension is loaded. ----- .. _tex-html-commands: html Commands ------------- The `html` extension implements the following macros: ``\class``, ``\cssId``, ``\data``, ``\href``, ``\style`` |-----|