11

I want citations in numerical style sorted in order of appeareance, using biblatex.

BUT: I want to have citations before the mainmatter, e.g., in nomenclature or on the title back page, without affecting the sort order (meaning my titleback citation should not necessarily be [1]). All citations will appear again in the mainmatter.

Can I achieve that with biblatex? For example, with a command that ...

  • allows to cite but is invisible to "order of appearance", or
  • a command to reset the list of citations before the mainmatter?

MWE: (citations in the "mainmatter" should be [1] ... [4])

\documentclass{article}
\usepackage[
 style=numeric,
 sorting=none
]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
 The title picture shows the original cover of
 Aristotles' poetics \cite{aristotle:poetics}. \\

 Nomenclature: four --- said by Augustine \cite{augustine}. \\   

 Mainmatter: \\
 Aksin~\cite{aksin} says one in his article.
 Aristotle~\cite{aristotle:poetics} says two in his book.
 Angenendt~\cite{angenendt} says three in his article.
 And Augustine \cite{augustine} says four in his book.
 \printbibliography
\end{document}

edit:

found an ugly hack, but does not really count as solution:
I inserted

\makeatletter
\immediate\write\@mainaux{\@percentchar mainmatterstartshere}
\makeatother

where the mainmatter starts, and used an external script to kill all \citation{...} commands from the aux file in front of that before running bibtex (except the \citation{biblatex-control} which does not seem like a good idea).

9

Here's a solution, and although it requires some manual intervention it is much less hacky than your external script solution. Furthermore, as I show at the end, we can automate it quite easily.

The solution involves (ab)using the \mancite command from biblatex, which provides a means for manual citation for schemes using ibid etc. The trick is that if on your first compilation (before running biber) you use \mancite in your front matter, you can then in subsequent compilations redefine it to be \cite and the correct numbers from the main matter will be used.

The only downside is remembering to do this, but since this is really something that only matters for the final compilation of your document, it's probably not too much of a problem. Alternatively, you can automate the whole process using arara.

\documentclass{article}
\usepackage[
 style=numeric,
 sorting=none,
 ]{biblatex}
\let\mancite=\cite % comment this line out for your initial compilation
\addbibresource{biblatex-examples.bib}
\begin{document}

 The title picture shows the original cover of
 Aristotles' poetics \mancite{aristotle:poetics}.

 Nomenclature: four --- said by Augustine \mancite{augustine}.   


 Mainmatter:
 Aksin~\cite{aksin} says one in his article.
 Aristotle~\cite{aristotle:poetics} says two in his book.
 Angenendt~\cite{angenendt} says three in his article.
 And Augustine \cite{augustine} says four in his book.
 \printbibliography
\end{document}

output of code

Automating the solution

Through the wonderful automation tool arara it is actually quite easy to make this solution more automatic. We use the technique described in this answer plus arara to change the definition of \mancite on compilations after the first. You need to replace <basename> with the name of your source file (without the .tex extension). Then compile the file using arara.

% arara: pdflatex: { files: [ '\def\mmcite{}\input{<basename>}' ] }
% arara: biber
% arara: pdflatex: { files: [ '\def\mmcite{\let\mancite=\cite}\input{<basename>}' ] }

\documentclass{article}
\usepackage[
 style=numeric,
 sorting=none,
 ]{biblatex}
\addbibresource{biblatex-examples.bib}
\mmcite % this command is defined when pdflatex is invoked
\begin{document}

 The title picture shows the original cover of
 Aristotles' poetics \mancite{aristotle:poetics}.

 Nomenclature: four --- said by Augustine \mancite{augustine}.   


 Mainmatter:
 Aksin~\cite{aksin} says one in his article.
 Aristotle~\cite{aristotle:poetics} says two in his book.
 Angenendt~\cite{angenendt} says three in his article.
 And Augustine \cite{augustine} says four in his book.
 \printbibliography
\end{document}

Thanks to Paulo Cereda for helping with the arara code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.