Skip to main content
(some) LaTeX environments for Jupyter notebook
==============================================

|Join the chat at https://gitter.im/jfbercher/jupyter\_latex\_envs|

This extension for Jupyter notebook enables the use of some LaTeX
commands and environments markdown cells.

1. **LaTeX commands and environments**

- support for some LaTeX commands within markdown cells, *e.g.*
``\textit``, ``\textbf``, ``\underline``.
- support for **theorems-like environments**, support for labels and
cross references
- support for **lists**: *enumerate, itemize*,
- limited support for a **figure environment**,
- support for an environment *listing*,
- additional *textboxa* environment

2. **Citations and bibliography**

- support for ``\cite`` with creation of a References section

3. **Document-wide numbering of equations and environments, support for
``\label`` and ``\ref``**
4. **Configuration toolbar**
5. **LaTeX\_envs dropdown menu for a quick insertion of environments**
6. **User's LaTeX definitions** file can be loaded and used
7. **Export to HTML and LaTeX with a customized exporter**
8. Environments title/numbering can be customized by users in
``user_envs.json`` config file.
9. Styles can be customized in the ``latex_env.css`` stylesheet

More environments can be simply added in ``user_envs.json`` or in the
source file (``thmsInNb4.js``).

It is possible to export the notebooks to plain :math:`\LaTeX` and html
while keeping all the features of the ``latex_envs`` notebook extension
in the converted version. We provide specialized exporters, pre and post
processors, templates. We also added entry-points to simplify the
conversion process. It is now as simple as

.. code:: bash

jupyter nbconvert --to html_with_lenvs FILE.ipynb

or

.. code:: bash

jupyter nbconvert --to latex_with_lenvs FILE.ipynb

to convert ``FILE.ipynb`` into html/latex while keeping all the features
of the ``latex_envs`` notebook extension in the converted version. The
LaTeX converter also expose several conversion options (read the
`docs <https://rawgit.com/jfbercher/jupyter_latex_envs/master/src/latex_envs/static/doc/latex_env_doc.html>`__).

Demo/documentation
------------------

The ``doc`` subdirectory that constains an example notebook and its html
and pdf versions. This serves as the documentation. A demo notebook
``latex_env_doc.ipynb`` is provided. Its html version is
`latex\_env\_doc.html <https://rawgit.com/jfbercher/jupyter_latex_envs/master/src/latex_envs/static/doc/latex_env_doc.html>`__
and a pdf resulting from conversion to LaTeX is available as
`documentation <https://rawgit.com/jfbercher/jupyter_latex_envs/master/src/latex_envs/static/doc/documentation.pdf>`__.

Installation
------------

The extension consists of a pypi package that includes a javascript
notebook extension, along with python code for nbconvert support. Since
Jupyter 4.2, pypi is the recommended way to distribute nbextensions. The
extension can be installed

- from the master version on the github repo (this will be always the
most recent version)
- via pip for the version hosted on Pypi
- via conda, from the `conda-forge <https://conda-forge.github.io/>`__
`channel <https://anaconda.org/conda-forge>`__
- as part of the great
`jupyter\_contrib\_nbextensions <https://github.com/ipython-contrib/jupyter_contrib_nbextensions>`__
collection. Follow the instructions there for installing. Once this
is done, you can open a tab at ``http://localhost:8888/nbextensions``
to enable and configure the various extensions.

From the github repo or from Pypi,

1. install the package

- ``pip3 install https://github.com/jfbercher/jupyter_latex_envs/archive/master.zip [--user][--upgrade]``
- or ``pip3 install jupyter_latex_envs [--user][--upgrade]``
- or clone the repo and install git clone
https://github.com/jfbercher/jupyter\_latex\_envs.git python3
setup.py install

2. install the notebook extension

::

jupyter nbextension install --py latex_envs [--user|--sys-prefix|--system]

3. and enable it

::

jupyter nbextension enable --py latex_envs [--user|--sys-prefix|--system]

For Jupyter versions before 4.2, the situation after step 1 is more
tricky, since the ``--py`` option isn't available, so you will have to
find the location of the source files manually as follows (instructions
adapted from [@jcb91](https://github.com/jcb91)'s
`jupyter\_highlight\_selected\_word <https://github.com/jcb91/jupyter_highlight_selected_word>`__).
Execute

::

python -c "import os.path as p; from latex_envs import __file__ as f, _jupyter_nbextension_paths as n; print(p.normpath(p.join(p.dirname(f), n()[0]['src'])))"

Then, issue

::

jupyter nbextension install <output source directory>
jupyter nbextension enable latex_envs/latex_envs

where ``<output source directory>`` is the output of the first python
command.

Disclaimer, sources and acknowledgments
---------------------------------------

Originally, I used a piece of code from the nice online markdown editor
`stackedit <https://github.com/benweet/stackedit/issue/187>`__, where
the authors also considered the problem of incorporating LaTeX markup in
their markdown.

I also studied and used examples and code from
`ipython-contrib/jupyter\_contrib\_nbextensions <https://github.com/ipython-contrib/jupyter_contrib_nbextensions>`__.

This is done in the hope it can be useful. However there are many
impovements possible, in the code and in the documentation.
**Contributions will be welcome and deeply appreciated.**

- This is done in the hope it can be useful. However there are many
impovements possible, in the code and in the documentation.
**Contributions will be welcome and deeply appreciated.**
- If you have issues, please post an issue at
``https://github.com/jfbercher/jupyter_latex_envs/issues``
`here <https://github.com/jfbercher/jupyter_latex_envs/issues>`__.

**Self-Promotion** -- Like ``latex_envs``? Please star and follow the
`repository <https://github.com/jfbercher/jupyter_latex_envs>`__ on
GitHub.

.. |Join the chat at https://gitter.im/jfbercher/jupyter\_latex\_envs| image:: https://badges.gitter.im/jfbercher/jupyter_latex_envs.svg
:target: https://gitter.im/jfbercher/jupyter_latex_envs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_latex_envs-1.3.5.8.tar.gz (658.2 kB view details)

Uploaded Source

File details

Details for the file jupyter_latex_envs-1.3.5.8.tar.gz.

File metadata

File hashes

Hashes for jupyter_latex_envs-1.3.5.8.tar.gz
Algorithm Hash digest
SHA256 e53372d046b752cab70ed7268da8edf470751419b27667f28aeaa14217e052a1
MD5 587527945832c0c1e7bafce5c8ccc9c5
BLAKE2b-256 0b4368d10e6b142d36cb91017290fad4aea3e08e7b80bbabda2eee9e0a0a984c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.4.6

1 file

1.4.5

1 file

1.4.4

1 file

1.4.3

1 file

1.4.2

1 file

1.4.1

1 file

1.4.0

1 file

1.3.8.4

1 file

1.3.8.3

1 file

1.3.8.2

1 file

1.3.8.1

1 file

1.3.8

1 file

1.3.7.2

1 file

1.3.7.1

1 file

1.3.7

1 file

1.3.6

1 file

1.3.5.11

1 file

1.3.5.10

1 file

1.3.5.9

1 file

This release

1.3.5.8 This release

1 file

1.3.5.7

1 file

1.3.5.6

1 file

1.3.5.5

1 file

1.3.5.4

1 file

1.3.5.3

1 file

1.3.5.2

1 file

1.3.5.1

1 file

1.3.5

1 file

1.3.4

1 file

1.3.3

1 file

1.3.2

1 file

1.3.1

1 file

1.3.0.2

1 file

1.3.0.1

1 file

1.2.95

1 file

1.2.14

1 file

1.2.13

1 file

1.2.11

1 file

1.2.10

1 file

1.2.8

1 file

1.2.7

1 file

1.2.6

1 file

1.2.5

1 file

1.2.4

1 file

1.2.3

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page