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
==============================================
|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
.. role:: math(raw)
:format: html latex
..
(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
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.7.tar.gz
(658.2 kB
view details)
File details
Details for the file jupyter_latex_envs-1.3.5.7.tar.gz
.
File metadata
- Download URL: jupyter_latex_envs-1.3.5.7.tar.gz
- Upload date:
- Size: 658.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10167c41eb11cff900d7ca40b96adcbbbc88b2dd03a96239d5025cd7f0db09ee |
|
MD5 | ef0135735ac3bfc7c487c8e1a8b56597 |
|
BLAKE2b-256 | e9e172a3ccf24c19070ff158c2b81e8341c1cbcb973b689559b7758d50b4b282 |