bibsync 0.3.4

A Rust package to automatically resolve, synchronize, and validate LaTeX citations across BibTeX databases
Documentation
# Examples

The repository includes example TeX files and generated BibTeX fixtures under
`examples/`.

## InspireHEP Example

`examples/inspire-main.tex` cites the first LIGO/Virgo gravitational-wave
detection paper by arXiv ID and DOI:

```tex
\cite{1602.03837}
\cite{10.1103/PhysRevLett.116.061102}
```

Generate its bibliography with:

```shell
cargo run -- --fix --provider inspire --no-backup examples/inspire-main.tex
```

Because the TeX file contains:

```tex
\bibliography{inspire-main}
```

the output is discovered automatically as `examples/inspire-main.bib`.

## NASA ADS Example

`examples/main.tex` cites the same paper with three identifier styles:

```tex
\cite{1602.03837}
\cite{10.1103/PhysRevLett.116.061102}
\cite{2016PhRvL.116f1102A}
```

Generate its bibliography with:

```shell
cargo run -- --fix --provider ads --no-backup examples/main.tex
```

This writes `examples/main.bib`.

The example also defines `\prl`:

```tex
\providecommand{\prl}{Phys. Rev. Lett.}
```

That keeps the document self-contained when ADS returns `journal = {\prl}`.

## Explicit Output Files

The example commands can also write to ad hoc output files:

```shell
cargo run -- --fix --provider inspire --output examples/generated-inspire.bib --no-backup examples/inspire-main.tex
cargo run -- --fix --provider ads --output examples/generated-ads.bib --no-backup examples/main.tex
```

Those `generated-*.bib` files are ignored by Git because they are demonstration
outputs rather than canonical fixtures.

## Compile Smoke Test

The examples are covered by integration tests:

```shell
cargo test --test examples
```

The default tests verify that each checked-in bibliography contains every
citekey referenced by its TeX file.

There is also an ignored LaTeX compile smoke test:

```shell
cargo test --test examples -- --ignored
```

This requires `latexmk`, `pdflatex`, and `bibtex` to be installed locally. It is
ignored by default because the normal CI matrix does not install a TeX
distribution.