Bibliography
Skill SeidSmatti/misc-CC-Plugins/plugins/academic-latex/skills/bibliography
Personal multi usage Claude Code plugins/skills marketplace
npx -y skills add SeidSmatti/misc-CC-Plugins --skill bibliographyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Manages LaTeX bibliographies — biblatex+biber (modern, Unicode, customizable) and natbib+bibtex (classic, journal-template-required). Detects the active stack from the preamble, sets up new ones from scratch, picks an appropriate style, normalizes .bib entries, and converts between stacks when migration is needed. Use when the user adds citations, edits .bib files, asks about citation styles, or hits a "Citation undefined"/"empty bibliography" error. Delegates to /academic-latex:docs-lookup for non-trivial style options.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.5 KB, as published. Nobody here has run it
bibliography — biblatex+biber and natbib+bibtex
This suite supports both stacks equally. The first action is always: detect what the document uses.
Detect the active stack
# biblatex+biber if either is present:
grep -E '\\usepackage(\[[^\]]*\])?\{biblatex\}' main.tex
grep -E '\\addbibresource' main.tex
# natbib+bibtex if these are present and biblatex is not:
grep -E '\\usepackage(\[[^\]]*\])?\{natbib\}' main.tex
grep -E '\\bibliographystyle\{' main.tex
grep -E '\\bibliography\{' main.tex
If both biblatex and natbib are loaded, that's a bug — they conflict. Stop and report.
If neither is loaded but the document has \cite{...} calls, the user is using LaTeX's built-in thebibliography env or the document is broken.
biblatex + biber (recommended for new work)
Setup
\usepackage[backend=biber, style=authoryear-comp, sorting=nyt, maxcitenames=2]{biblatex}
\addbibresource{refs.bib} % NOTE: WITH .bib extension
% In body:
As shown by \textcite{einstein1905}, ...
\parencite{wallace1905} % "(Wallace, 1905)"
\printbibliography
Compile order: pdflatex → biber → pdflatex → pdflatex. Latexmk handles automatically.
Built-in biblatex styles
| Style | Output |
|---|---|
numeric (default) | [1] |
numeric-comp | [1, 2-4] |
alphabetic | [Ein05] |
authoryear | (Einstein, 1905) |
authoryear-comp | (Einstein 1905; Wallace 1906) |
authortitle | (Einstein, "Theory") |
verbose | full bibliographic info on first cite |
reading | annotated reading-list style |
Discipline-specific styles (load matching package)
- IEEE:
\usepackage[backend=biber, style=ieee]{biblatex}+biblatex-ieeepackage. - APA 7:
\usepackage[backend=biber, style=apa]{biblatex}+biblatex-apa. - Chicago author-date:
\usepackage[backend=biber, style=chicago-authordate]{biblatex}+biblatex-chicago. - Chicago notes-bib:
style=chicago-notes. - Nature:
style=nature+biblatex-nature. - ACS (chemistry):
\usepackage[style=chem-acs]{biblatex}+biblatex-chem.
Citation commands
| Command | Output (authoryear-comp) |
|---|---|
\cite{key} | per-style default |
\textcite{key} | "Author (year)" |
\parencite{key} | "(Author year)" |
\autocite{key} | engine-style aware |
\footcite{key} | footnote with full cite |
\nocite{*} | include all .bib entries without citing |
Common errors
Empty bibliography— ran bibtex when biber expected. Check<main>.bcfexists (biber) vs<main>.auxonly (bibtex). Latexmk normally picks correctly.Package biblatex Warning: Please rerun LaTeXafter biber — needs anotherpdflatexpass. Latexmk auto-handles.- Mixing
\bibliography{refs}(legacy) with biblatex causes silent miscompiles. Use\addbibresource{refs.bib}only.
Sources: https://ctan.org/pkg/biblatex, https://github.com/plk/biblatex.
natbib + bibtex (legacy and many journal templates)
Setup
\usepackage[round, authoryear]{natbib} % options: round|square, authoryear|numbers
% In body:
\citet{einstein1905} % "Einstein (1905)" textual
\citep{einstein1905} % "(Einstein, 1905)" parenthetical
% Bibliography:
\bibliographystyle{plainnat} % no .bst extension
\bibliography{refs} % no .bib extension
Compile order: pdflatex → bibtex → pdflatex → pdflatex. Latexmk handles automatically.
Standard natbib styles
plainnat, abbrvnat, unsrtnat. Plus discipline-specific: agsm (Harvard), apalike, chicago, dinat.
Journal-required styles (often natbib-mandated)
| Publisher / Journal | Style file |
|---|---|
Elsevier elsarticle | elsarticle-num, elsarticle-harv, model5-names |
| Springer SVJour | spbasic, spphys, spmpsci |
IEEE (with IEEEtran class) | IEEEtran (bibtex), or biblatex-ieee for biblatex |
| ACM (older) | acm, acmlarge |
| AGU | agu |
| AMS | various per-journal .bst files |
When a journal class loads natbib and provides a .bst, do not switch to biblatex. Switching breaks submission.
Citation commands (natbib)
| Command | Output |
|---|---|
\citet{key} | "Author (year)" |
\citep{key} | "(Author, year)" |
\citealt{key} | "Author year" (no parens) |
\citealp{key} | "Author, year" (no parens) |
\citeauthor{key} | "Author" |
\citeyear{key} | "year" |
Common errors
I couldn't open database file refs.bib.bib— passedrefs.bibto\bibliography{}; pass basenamerefsonly.- Citation appears as
[?]— bibtex didn't run, or the key isn't in any.bib. Runbibtex <main>and check output. - Loading
natbibAFTERhyperrefbreaks citation links — natbib must be loaded first. - Non-ASCII in
.bibmay corrupt silently — use{\"o},\'eescapes for bibtex; or migrate to biblatex+biber.
Sources: https://ctan.org/pkg/natbib.
.bib file hygiene
Whichever stack:
- Use stable, lowercase, hyphen-separated keys:
einstein1905-relativity, notEinstein 05orMyKey42. - One reference per record. Required fields per type per BibTeX spec (
@articleneeds author, title, journal, year; etc.). - For DOI:
doi = {10.1234/abc}(no URL prefix; biblatex/natbib add it). - For multi-author last names with prefixes ("van der Waals"), use
{van der Waals}to keep them grouped, or split withfamily=Waals, prefix=van der.
Migrating natbib → biblatex (or vice versa)
When a paper changes target journal:
- Confirm the new template's required stack (read the journal's author-instructions PDF — delegate to
/academic-latex:docs-lookup). - Remove the old stack's preamble lines and bibliography commands.
- Add the new stack's preamble.
- Rewrite citation commands per the mapping table:
| natbib | biblatex |
|---|---|
\citet{x} | \textcite{x} |
\citep{x} | \parencite{x} |
\citealt{x} | \textcite[][]{x} (rough) |
\citeauthor{x} | \citeauthor{x} (same) |
\citeyear{x} | \citeyear{x} (same) |
- Replace
\bibliography{refs}+\bibliographystyle{...}with\addbibresource{refs.bib}+ biblatex'sstyle=option. - Recompile. Confirm output looks right.
Mass-rewrite with care — sed -i on \citet→\textcite is OK only if you've reviewed the .tex first; some \citet calls may need \textcite while others want \citeauthor.
When uncertain
For style-specific options (e.g., "does biblatex-apa support et-al-min=3 for 7th edition?") delegate to /academic-latex:docs-lookup. For journal templates, fetch the journal's author-instructions PDF before assuming a stack.
Last verified
2026-05-09 — biblatex v3.21 (2025-07-10), natbib v8.31b, biber, plk/biblatex on GitHub.