Re: [MiKTeX] (pdf)texify using biber instead of bibtex
MiKTeX source code moved to GitHub
Brought to you by:
csc
|
From: Ulrike F. <li...@ni...> - 2010-10-22 08:26:19
|
am Donnerstag, 21. Oktober 2010 um 18:51 schrieb Stefan Pinnow:
>>> has anybody an idea how to convince (pdf)texify to use biber instead
>>> of bibtex?
>>
>> Well you can set an environment variable as mentioned in the
>> documentation: "The values of the BIBTEX, LATEX (or PDFLATEX),
>> MAKEINDEX, MAKEINFO, TEX (or PDFTEX), and TEXINDEX environment
>> variables are used to run those commands, if they are set."
>>
>> I can switch between bibtex and bibtex8 by using set BIBTEX=bibtex8.
>> But for some reason I get with biber always biber could not be found.
> When I am doing this I don't get such an error, regardless if I set BIBTEX
> to bibtex or biber. The only message in the log I am getting is
> % ---
> Package biblatex Warning: Please (re)run Biber on the file:
> (biblatex) minimal
> (biblatex) and rerun LaTeX afterwards.
> & ---
Well for me texify seems to find biber when I put it in the miktex/bin
folder but not when it is simply somewhere in the path. But texify
executed biber only without the "backend=biber" part in the biblatex options (which
naturally gives other errors). So texify simply doesn't realize that a
"bibtex" run is needed (biber doesn't write to the aux-file). I found
in the source of texify from miktex 2.8. the following list:
Run bibtex on current file:
- If its input (AUX) exists.
- If AUX contains both '\bibdata' and '\bibstyle'.
- If some citations are missing (LOG contains 'Citation') or the
LOG complains of a missing .bbl.
We run bibtex first, because I can see reasons for the indexes to
change after bibtex is run, but I see no reason for the converse.
Don't try to be too smart. Running bibtex only if the bbl file
exists and is older than the LaTeX file is wrong, since the
document might include files that have changed. Because there can
be several AUX (if there are \include's), but a single LOG, looking
for missing citations in LOG is easier, though we take the risk to
match false messages.
With this information the following worked for me:
1. Set the environment variable BIBTEX to full/path/to/biber.exe.
2. Run this document:
\documentclass{book}
\usepackage[
backend=biber,
]{biblatex}
\bibliography{test_bib}
\begin{document}
\makeatletter
\immediate\write\@mainaux{\noexpand\bibstyle{}}%
\immediate\write\@mainaux{\noexpand\bibdata{}}
\makeatother
%\nocite{*}
\cite{companion}
\printbibliography
\end{document}
I haven't tried to find out if it works with documents with includes.
Do you know why the windows firewall always pops up when biber is
called?
--
Mit freundlichen Grüßen
Ulrike Fischer
|