2

I am on Mac OS X Yosemite, with Texshop (via Mac Live). I am using biblatex with bibtex as backend, and a verbose style (all this I cannot change).

I need to put together several files with their own (sometimes not compatible) bibliographical bib.files. i have written a main file, with the preamble, the bib.files, and \input (or \include)for the varous files. And in each file, I have a refsection environment. The program runs LaTeX, then BibTeX, then asks to repeat Bibtex on each fileblx(.aux).

More precisely, in the console file it is written

Package biblatex Warning: Please (re)run BibTeX on the file(s): (biblatex) Livre200220171-blx.aux (biblatex) Livre200220172-blx.aux (biblatex) Livre20022017.aux (biblatex) and rerun LaTeX afterwards.

How to do this concretely in my case ? If I open the fileblx(.aux), the button I use in TexShop to run Bibtex usually is not operational.

Some people already asked the same kind of question but with different systems and the answers do not seem to apply here (or I am too stupid to understand how). Do I have to write some command (which one ?) somewhere (where ?).

If there is another, simpler, solution for putting together the files and their bibliographies (with biblatex, etc), I am of course also interested.

  • You can only run bibtex on the .tex-files. – TeXnician Feb 28 '17 at 20:30
  • @TeXnician. I have edited my question to give you the exact requirement of the programme. It seems possible because of other discussions but with Linux or other things (where one seems to have an obvious place to enter a command). Thanks – Catherine Feb 28 '17 at 20:37
  • You need to open a command window, switch to the folder that contains your tex and bib files, and run bibtex Livre200220171-blx, bibtex Livre200220172-blx, and bibtex Livre20022017. I take it there are three separate aux files; do not specify the aux extensions explicitly. The three separate bibtex runs will create the files Livre200220171-blx.bbl, Livre200220172-blx.bbl, and Livre20022017.bbl (as well as .blg files). – Mico Feb 28 '17 at 20:40
  • This is my question : how do I open a "command window" and run etc. ? Terminal ? – Catherine Feb 28 '17 at 21:16
  • The most 'mac-like' way: open a Finder window showing Applications -> Utilities. Open another Finder window showing the folder containing your work. Drag the folder onto the terminal icon. – Ian Thompson Feb 28 '17 at 21:37
1

Since you are using TeXShop you can easily use the pdflatexmk engine which will automatically do all the necessary runs of bibtex (or biber, if you set up biblatex to use it) and pdflatex, etc. Simply place the line

% !TEX TS–program = pdflatexmk

at the top of your root .tex file. Then typeset by using Typeset->Typeset (Cmd-T).

  • I have tried this and it does not work : I get multiple error messages about the references. Is it possible that the TeXshop version on the machine I am using is too old ? – Catherine Feb 28 '17 at 21:14
  • @Catherine --- TeXShop is just a front end. To find which version of TeXLive you are using (this is the important thing), go to System Preferences -> TeX Distribution. – Ian Thompson Feb 28 '17 at 21:41
  • @IanThompson I have the latest TeXlive version (TexLive-2016, TeXshop 3.62. But I get error messages of various sorts, including that using fall-back bibtex backend may give reduced functionalities. I need an IsoLatin encoding and bibtex (sorry, I cannot change this). The first problem says :(./Livre20022017.aux ./Livre20022017.aux:10: Missing number, treated as zero. <to be read again> \divide l.10 \@writefile {toc}{\boolfalse{citerequest}\boolfalse{citetracker}\boolfal... If I force it, it generates even more errors. – Catherine Feb 28 '17 at 22:56
  • I solved this one...Now I have :Package biblatex Warning: File 'Livre20022017.bbl' is wrong format version - ex pected 2.7. (./Livre20022017.bbl ./Livre20022017.bbl:19: Undefined control sequence. \entry ...ata@\the \c@refsection @\blx@slist@name @\abx@field@entrykey }\csu... – Catherine Feb 28 '17 at 23:04
  • 1
    @Catherine : I think we need a minimal working example that demonstrates your problem. I have no idea what packages, etc., you are using or what files you are using. – Herb Schulz Mar 1 '17 at 1:47
2

You need to run BibTeX on each of the indicated files.

Instead of the usual

pdflatex Livre20022017
bibtex Livre20022017
pdflatex Livre20022017

sequence, you need to run

pdflatex Livre20022017
bibtex Livre200220171-blx
bibtex Livre200220172-blx
bibtex Livre20022017
pdflatex Livre20022017

Since the additional files you have to run BibTeX on are not 'predictable' before a run of LaTeX over your document and vary with the contents of your document, your editor will most likely not have a button to do that for you. (The button in your editor will probably just run BibTeX on the main file .aux: Livre20022017.aux.)

You can use one of the automatic compilation tools as suggested by Herb Schulz in his answer such as latexmk or arara. These tools can do the necessary compilation steps automatically by examining log files and the like or by dedicated rules set up for them.

But there is an even better solution: Use Biber. Biber is the replacement backend for BibTeX in biblatex. For quite some time now BibTeX has been designated 'legacy backend' and is really only supported for backwards compatibility reasons. BibTeX only offers a reduced set of functions (even though Joseph Wright has done a hell of a job to bring BibTeX support up to speed with Biber, there are a few things that just cannot be done with BibTeX alone), so only with Biber can you really enjoy the full power of biblatex.

One major advantage in your case is that Biber only needs to run on one file per .tex document regardless of its structure. You only ever need to run Biber on the main .bcf, so a valid compilation sequence is always

pdflatex Livre20022017
biber Livre20022017
pdflatex Livre20022017

(Biber picks the file with the right file extension itself).

For help on switching to Biber, see How to use biber and Biblatex with Biber: Configuring my editor to avoid undefined citations. The only change required in your document is to use backend=biber instead of backend=bibtex (as described in the first link). It then remains to compile with Biber instead of BibTeX, the second link tells you how tell your editor about that.

  • Given certain restrictions in the question (the bibliography style is fixed) you do need to beware of switching to biblatex if someone else is doing the compilation. See for example Biblatex: submitting to a journal. But biblatex is better in so many ways that it's worth the switch overall. – Chris H Mar 1 '17 at 9:10
  • @ChrisH A fixed bibliography style is no problem at all (I noted that the OP seems to think she cannot dump BibTeX? - I don't understand why though). If one submits to a journal biblatex probably is not a good choice with either back-end, though I will admit that chances are slightly better with BibTeX. (One should hope for a good - i.e. functioning - journal style sheet/template including a bibliography style when submitting to journals anyway.) – moewe Mar 1 '17 at 9:17
  • The fixed style isn't an issue per se, it's more that it sounds like a symptom of someone else imposing style rules (for exmaple in the template you mention). My experience is mostly with RevTeX which depends on BibTeX; in addition some of the jounrals that use it require that references are placed inline in the .tex file. Hence my caveat to an answer I commend – Chris H Mar 1 '17 at 9:25
  • Thanks moewe, but although I am also convinced about biber, I cannot use it here (fixed rules) unfortunately. – Catherine Mar 1 '17 at 9:56
  • @ChrisH as far as I understand the OP is necessarily using biblatex but with backend=bibtex, moewe is not suggesting a switch to biblatex but a switch of the backend used with biblatex. This is I think quite different from the issues with revtex et al., if the biblatex package can be accepted (from journals this is unlikely to hold in the first place as you say), I would expect backend=biber to be as feasible as backend=bibtex. – Dai Bowen Mar 1 '17 at 9:58

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.