Jupyter notebook extension which supports (some) LaTeX environments within markdown cells. Also provides support for labels and crossreferences, document wide numbering, bibliography, and more...
Project description
.. default-role:: code
.. role:: math(raw)
:format: html latex
..
(some) LaTeX environments for Jupyter notebook
==============================================
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.**
- 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.
.. role:: math(raw)
:format: html latex
..
(some) LaTeX environments for Jupyter notebook
==============================================
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.**
- 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.
Project details
Release history Release notifications | RSS feed
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.10.tar.gz
(658.0 kB
view hashes)
Close
Hashes for jupyter_latex_envs-1.3.5.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d308cb5962fa2374e484a68f8628629e0fe246b1d49de3bd8e263a6ba47e3ab5 |
|
MD5 | 426c86639fdb1224ed6649fed75ea6c9 |
|
BLAKE2b-256 | 41f87f94a89c8e5a619744a22e394d26a7a7ee5b952b72a5c8ad07a3b1bd9dd7 |