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!
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 | |
|---|---|---|---|
| docxlatex-1.2.3.tar.gz | 5.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docxlatex-1.2.3-py3-none-any.whl | Python 3 | none | any | Details |
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
|