3

I know, this is most likely well documented and has been asked before, so probably I am just overwhelmed by the amount of available information on the issue. I'm trying to install the development version of BibLaTeX (and biber). (In a sense, this is a follow-up to my earlier question).

Environment

  • MiKTeX
  • Windows 10

What I did:

  • Step 0: Update MiKTeX (as administrator and normal user); refresh FNDB.
  • Step 1: Following this answer, I created a local texmf tree by creating the folder localtexmf on C: and running

    initexmf --register-root=c:\localtexmf
    initexmf --update-fndb
    initexmf --update-fndb --admin % probably irrelevant 
    
  • Step 2: Created C:\localtexmf\bin and added it to my PATH (before the MiKTeX installation folder), restarted system.
  • Step 3: Downloaded the binary development version of biber from Sourceforge and extracted biber.exe to C:\localtexmf\bin. (+ Updated FNDB.)

This seems to have been successful; when running biber on my document it reports

INFO - This is Biber 2.7 (beta)

The problematic part is getting the development version of BibLaTeX to run, which should be explained in this answer. However, the development version of BibLaTeX is not available as dtx/ins bundle but only as tgz or tds.tgz. In the linked answer, the instructions on tds.tgz are just "check README files" and "extract it to the right place". I tried to find the "right place", but without any success:

  • Step 4a: Downloaded biblatex-3.7.tds.tgz and extracted biblatex-3.7.tds.tgz/biblatex-3.7.tds.tar/ to the new local tree. Updated FNDB. Result: New version not recognized (still using version 3.6) Copy
  • Step 4b: Trying to follow the "Semi-automatic installation" section from the README (included in the tgz archive). This refers to a .tds.zip file which I assume to be identical to my .tds.tar file. Then, 4b boils down to what I did in 4a.
  • Step 4c: Trying to follow the "Manual installation" section from the README. This refers to a .tar.gz file which I assume to be identical to my .tgz file. Extracting the files as described in the README (steps 3–5 and 7) and updating the FNDB has the same effect as 4a.
  • Step 4d: Analogous to step 4a, I tried to extract biblatex-3.7.tgz/biblatex-3.7.tar to the local tree (with and without the enclosing biblatex folder), without an effect.

Each time I installed/tried to install a new version of BibLaTeX, I deleted all intermediate files created in the by the previous run of LaTeX (to avoid using an old bcf file). I suppose my directory structure is somehow wrong or that I downloaded the wrong archives. The full error message biber throws is:

INFO - Reading 'document.bcf'

ERROR - Error: Found biblatex control file version 3.2, expected version 3.3. This means that your biber (2.7) and biblatex (3.6) versions are incompatible.

I know that the versions are incompatible, but how can I install BibLaTeX 3.7 (the current development version)?


Update: A very helpful comment by Ulrike Fischer made me realize that there is something wrong with how my roots are ordered: kpsewhich --all biblatex.sty returns my C:\localtexmf root as second, after a MiKTeX-maintained root in C:\Users\.... However, in the MiKTeX Options I cannot move my local tree up (the button is grayed out). According to bug #1952 this is by design, but then I don't understand how to make use of local trees. (I added the tree as non-administrator and are trying to move it as non-administrator. I also tried to move it as administrator, or to add and then move it as administrator.)

Trees

  • You need first to unpack the tds.tgz, this should give you a tar-file. tar is again an "archive" format, so you need to unpack the tar too so that you get "normal" folders, (tex/latex etc). These you can then copy to your local texmf. Btw: You can rename the biber.exe e.g. to biberdev.exe and copy it to your normal bin-folder. Then adapt the editor to use biberdev instead of biber. – Ulrike Fischer Sep 26 '16 at 9:58
  • @UlrikeFischer This is what I did in step 4a. – CL. Sep 26 '16 at 10:01
  • No, you did put the tar-file in your local texmf. But tar is like zip a container, you need to unpack it first. Do the extraction in some empty temp folder and then copy the tex/latex and bibtex and biber folder. – Ulrike Fischer Sep 26 '16 at 10:02
  • @UlrikeFischer I did not put the tar file in the texmf folder. Sorry if my question wrongly suggests this. I was hoping to make this clear with "extracted biblatex-3.7.tds.tgz/biblatex-3.7.tds.tar/": I extracted the tar file, which is in the tgzfile, to the tree. – CL. Sep 26 '16 at 10:04
  • 2
    Yes. If it doesn't work you either didn't update the FNDB correctly (run initexmf -u and initexmf --admin -u), or you have a version which is found first (check the log-file, run kpsewhich --all biblatex.sty. Also delete before your test old .bcf, .aux, .blg-files to avoid that they interfere. – Ulrike Fischer Sep 26 '16 at 10:28
1

In summary, this were the required steps on my system:

  • Create a local texmf tree. The gist is, create the folder C:\localtexmf and a subfolder tex and then run

    initexmf --register-root=c:\localtexmf
    initexmf --update-fndb
    
  • Open MiKTeX Options and go to the "Roots" tab. Check the "Show MiKTeX-maintained root directories" box. Your local tree should be before "UserInstall".

    1. If your local tree is before "UserInstall", you can skip to the next bullet point.
    2. If you can use the "Up" button to move your local tree before "UserInstall", then do so.
    3. Else, your setup probably looks like this, i.e. "UserInstall" and "UserConfig" point to the same path. In this case, you need to separate "UserInstall" and "UserConfig". To this end, set an environment variable MIKTEX_USERINSTALL that points to the new "UserInstall" path. I chose C:\Users\CL\AppData\Roaming\MiKTeX\2.9\install.
    4. Run initexmf --update-fndb --verbose. Now, the local texmf directory should be listed before UserInstall but after UserConfig and UserData.
    5. Run kpsewhich --all biblatex.sty. This will probably point to a file in your UserConfig tree (in my case: C:\Users\CL\AppData\Roaming\MiKTeX\2.9\tex\latex\biblatex). I suppose that this should not be the case but is an artifact of separating UserConfig and UserInstall after the fact. Delete that biblatex directory and update FNDB.
  • Download the development version of BibLaTeX from Sourceforge. Choose the file with the tds.tgz extension (e.g. biblatex-3.7.tds.tgz).

  • Open the tds.tgz file. It contains a tds.tar file. Copy the contents of the tds.tar file to your local texmf directory: Copying the files
  • Run initexmf --update-fndb --verbose and then kpsewhich --all biblatex.sty. This should point to biblatex.sty in your local texmf directory.
  • Don't forget to use the matching (development) version of biber.

A remark on step 5 under the second bullet point. As the local texmf tree has precedence over UserInstall (if MiKTeX is set up correctly), it is usually not necessary to remove the old/stable version of a package before copying a new version to the local texmf tree. The reason why the biblatex directory needs to be deleted in step 5 is because after separating UserInstall and UserConfig, the files (wrongly?) remain in UserConfig. Packages that are installed after the trees have been separated end up in UserInstall and don't need to be removed manually when another version from the local tree is to be used.

Christian Schenk suggests to move the contents of UserConfig to UserInstall when separating the trees. This should make deleting the biblatex folder obsolete.

  • Many thanks to Ulrike Fischer and Christian Schenk for their support in figuring this out! – CL. Oct 16 '16 at 10:25

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.