Flatten your LaTeX document
Project description
🗜️ Flatten the file structure of a LaTeX document
✨ What can it do?
- replace
\input{FILE}
with contents ofFILE
- point all
\includegraphics{PATH}
next to the .tex file - replace
\bibliography
with contents of.bbl
file (--replace-bib
, needed e.g. for PLoS) - Rename figure filenames like
fig3.pdf
(--sequential-figures
) - Hide figures by commenting
\includegraphics{}
(--hide-figures
, needed for PLoS) - copy all source files next to the LaTeX file (
--inplace
) - modify your LaTeX file in-place (
--inplace
) - make a new folder with the flattened LaTeX project structure (
--outdir MYDIR
) - make a ZIP file with the flattened LaTeX project structure (
--zip
)
These steps are necessary for some Journals (e.g. Springer, PLoS, etc.).
With latex-flatten
, one can work flexibly on a manuscript with a nested structure and included files and flatten the project only before submission.
📝 TODO - Known Issues - Planned Features
- Have
--hide-figures
and--sequential-figures
operate only withinfigure
environments. The currently don't know whether they're manipulating an actual figure or just a random included graphic anywhere. - Use relative (not absolute) symlinks for linking to
--outdir
. - Find input files from
TEXINPUTS
- 🐛 If the same graphic file is
\includegraphics
ed multiple times, it will only land once in the outdir or ZIP.
❓ Usage
You can run this tool if you have nix installed:
nix run gitlab:nobodyinperson/latex-flatten
# or with arguments (note the lonely double dash --)
nix run gitlab:nobodyinperson/latex-flatten -- --help
Otherwise, you can install it like any other Python package, e.g. with pip
or better pipx
:
pipx install latex-flatten
# latest development version
pipx install git+https://gitlab.com/nobodyinperson/latex-flatten
This installs the latex-flatten
command:
# will operate on all *.tex documents in this folder
latex-flatten
# specific document
latex-flatten myfile.tex
# Make a ZIP for PLoS submission
latex-flatten --plos --zip
# Make a new folder with flattened LaTeX structure (to check compilation, etc.)
latex-flatten --outdir FLATTENED
# Make a flat ZIP from your LaTeX project
latex-flatten --zip
# Be moreo chatty, useful for debugging
latex-flatten -vvv
# Help
latex-flatten --help
🛠️ Workflow
- Compile LaTeX successfully with
latexmk
orpdflatex -recorder
once - Run this script next to (or on) the
.tex
file.
Before using --inplace
, you should probably back up your files or git-track them to see the differences and revert in case something unexpected happens.
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
Built Distribution
File details
Details for the file latex_flatten-0.3.0.tar.gz
.
File metadata
- Download URL: latex_flatten-0.3.0.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.1.65
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 671cd00d1289f86df5dfb80e80daf16fa1ddf8d222567f978e956306f3ad601d |
|
MD5 | 4e3471e63862f9ad6a2f03362046bcec |
|
BLAKE2b-256 | d8967d8050ef723035597c8ff2083faa88c400b8c71db6437bf553b37e8e168c |
File details
Details for the file latex_flatten-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: latex_flatten-0.3.0-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.1.65
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16d7ed0f4d21e59075f8597104313adb6ba1f0e89baa0295e79bdf649f4030c7 |
|
MD5 | 90fc9fd06ed96d0c616b8667b1326c5b |
|
BLAKE2b-256 | 71632f4bd4263a5c2cb0a51d5558046d3e6c6f5271ddd79150548980a4da41c0 |