docxlatex is a lightweight Python package for extracting text and mathematical equations from .docx files.
It does not convert the entire .docx file to a LaTeX source file, only the inserted equations.
Installation
Install docxlatex using pip:
$ pip install docxlatex
Usage
API
Usage is straightforward. For almost all cases you will only need the Document class.
from docxlatex import Document
Create a Document object by giving it the path to a .docx file, a path-like object, or a file-like object, and call the get_text() method:
doc = Document("path/to/your/document.docx")
text = doc.get_text()
equations = doc.equations # A list of strings containing the LaTeX code of the equations
print(equations)
CLI
docxlatex also provides a CLI for quick extraction of text and equations from .docx files. You can use it as follows:
$ docxlatex path/to/your/document.docx
It also provides some options to customize the output:
$ docxlatex --help
usage: docxlatex [-h] [--op OP] [--xml] [-l] ip
positional arguments:
ip An absolute or relative path to the input .docx file
options:
-h, --help show this help message and exit
--op OP An absolute or relative path to the output file (defaults to stdout)
--xml Dump the document's XML instead of converting to text
-l Specifies that the document has been converted to "Linear" format
Examples
API
Here is a simple example of how an equation is extracted from a .docx file containing the Fourier series equation:
Using the API as shown above:
from docxlatex import Document
doc = Document("./fourier_series.docx")
text = doc.get_text()
print(text)
This will output:
$ f\left( x \right)={a}_{0}+\sum_{n=1}^{∞}{\left( {a}_{n}\cos_{}^{}{\frac{nπx}{L}}+{b}_{n}\sin_{}^{}{\frac{nπx}{L}} \right)} $
CLI
Here is how you can use the CLI on the same file:
$ docxlatex ./fourier_series.docx
This will output the same LaTeX code to the console:
$ f\left( x \right)={a}_{0}+\sum_{n=1}^{∞}{\left( {a}_{n}\cos_{}^{}{\frac{nπx}{L}}+{b}_{n}\sin_{}^{}{\frac{nπx}{L}} \right)} $
Issues
docxlatex is not perfect, and you may encounter issues with certain .docx files, especially those with complex formatting or non-standard elements, or on older versions of Word.
If you find a bug or have a feature request, please open an issue on the GitHub repository. All bug reports and feature requests are welcome and greatly appreciated!
Metadata
Release files for docxlatex 1.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| docxlatex-1.2.3.tar.gz | 5.9 MB | Without provenance | Details for docxlatex-1.2.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| docxlatex-1.2.3-py3-none-any.whl | Python 3 | none | any | Details for docxlatex-1.2.3-py3-none-any.whl |
Total release size: 12.8 MB
Release files / docxlatex-1.2.3.tar.gz
| Download URL | docxlatex-1.2.3.tar.gz |
|---|---|
| Size | 5.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ab8e724f3a39c8597b07a20b2a2329886c2a7579eeacd81d578702be51f8e12
|
|
BLAKE2b-256 checksum How to use checksums |
2633df89a39a0397a7d6e27ed5c1a09e121eafbedfb827a6f3bc7984c2453676
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|
Release files / docxlatex-1.2.3-py3-none-any.whl
| Download URL | docxlatex-1.2.3-py3-none-any.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ee464749941d8325312ae0b7eba18e25cc71aedb8bc8e96ea182f4fe632c910
|
|
BLAKE2b-256 checksum How to use checksums |
0179bf20379c9c26a0482ae8edb185d7d7ee25da37bc6f92bc51bfee6c377899
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|
Security for docxlatex 1.2.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.