Oh, sure, because who doesn't love manually cleaning up messy .bib files? bib_optimizer.py heroically steps in to remove those lazy, unused citations and reorder the survivors exactly as they appear in the .tex file—because, clearly, chaos is the default setting for bibliographies.
In layman's terms, it automates bibliography management by:
- removing unused citations,
- reordering the remaining ones to match their order of appearance in the
.texfile.
Input Files:
main.tex– The LaTeX source file.ref.bib– The original bibliography file.
These input files will remain unchanged.
Output File:
ref_opt.bib– A placeholder filename for the newly generated, cleaned, and ordered bibliography file.
It can be installed with pip, ideally by using a virtual environment. Open up a terminal and install the package and the dependencies with:
pip install bib_optimizer
or
python -m pip install bib_optimizer
🐍 This requires Python 3.8 or newer versions
-
Prepare the input files (e.g., by downloading them from Overleaf).
-
Run the command to generate a new
.bibfile (for example, you may name itref_opt.bib):bibopt main.tex ref.bib ref_opt.bib -
Use the Cleaned Bibliography
Replaceref.bibwithref_opt.bibin your LaTeX project.
You may test the installation using the sample input files (sample_main.tex and sample_ref.bib) located in the test folder.
sample_main.tex and sample_ref.bib
A sample ref_opt.bib created after running bibopt sample_main.tex sample_ref.bib ref_opt.bib
If the main.tex calls inputs from other .tex (e.g., with \input{...}), the newly generated ref_opt.bib will preserve the order of appearances in the main.tex with each inputted .tex as well.
(The dependent .tex files need to be placed in the same directory as main.tex.)
On top of version 0.4, skip any \input .tex file if not found.
In addition to handling the \input{...} command, it also supports the \include{...} command.
♥ Lastly executed on Python 3.10 on 2025-07-14.



