[Tex/LaTex] Texmaker and MacTex are unable to compile Index, Nomenclature and Biber

biberindexingmactextexmaker

On Mac (Maverick) with MacTex (up-to-date), I can compile the following (A) MWE using the Engine (B) for Texshop, however not using the (C) custom command for Texmaker. I searched for two days and found no solution:

(A) MWE.tex for my setup of Biber, Index and Nomenclature (using Makeindex)

\listfiles

\documentclass{article}

\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{makeidx}
\usepackage{robustindex}
\makeindex
\usepackage{nomencl}
\makenomenclature

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\printnomenclature

\nomenclature{Alpha}{alpha test}%

Here is \index{some} text \autocite{A01}.

\printbibliography

\printindex

\end{document}  

(B) Functioning Engine for Texshop:

#!/bin/bash
pdflatex -synctex=1 "$1"
for file in *.idx ; do
makeindex -s *.ist $file
done
for file in *.bcf ; do
biber $file
done
pdflatex -synctex=1 "$1"
for file in *.nlo ; do
bfname=$(dirname "$1")/"`basename "$1" .tex`"
makeindex "$bfname".nlo -s nomencl.ist -o "$bfname".nls
done
pdflatex -synctex=1 "$1"

(C) Not working command for Texmaker (note: my_index_style.ist in working directory with mwe.tex)

"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode|"/usr/texbin/biber" %|"/usr/texbin/makeindex" %.idx -s my_index_style.ist|"/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls|"/usr/texbin/pdflatex"  -synctex=1 -interaction=nonstopmode|"/usr/texbin/pdflatex"  -synctex=1 -interaction=nonstopmode|open %.pdf

results in

Input index file MWE.idx not found. Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]

Process exited with error(s)

(D) Of course I tried to run the commands separately in Texmaker:

  1. "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode %.tex works

a. "/usr/texbin/biber" % seems 99 of 100 times it freezes Texmaker (seeing a circle with two white and two black quarters?!), so I need to killall texmaker.

b. "/usr/texbin/makeindex" %.idx -s index_style_wenger.ist process exited normally (after first running pdflatex)
c. "/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls process exited normally (after first running pdflatex)

Could someone please help? I want to use Texmaker for its better functions for handling large multi file projects.

Update: As suggested in the comment below I tried:

"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode && “/usr/texbin/biber" % && “/usr/texbin/makeindex" %.idx -s index_style_wenger.ist && “/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls && “/usr/texbin/pdflatex"  -synctex=1 -interaction=nonstopmode| && “/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode && open %.pdf

which resulted in

Process started

This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). Scanning style file ./index_style_wenger.ist.....

.....done (10 attributes redefined, 2 ignored). Scanning input file MWE.idx....done (1 entries accepted, 0 rejected). Sorting entries...done (0 comparisons). Generating output file MWE.ind....done (6 lines written, 0 warnings). Output written in MWE.ind. Transcript written in MWE.ilg.

Process exited normally

but, in the end the bibliography and the index are ok, but no nomenclature is shown.

Best Answer

Not a direct answer, but a method that's equivalent to yours and much easier to manage.

Add a Texmaker user command that does

arara -v %.tex

and prefix your document with

% arara: pdflatex
% arara: makeindex: { style: index_style_wenger.ist }
% arara: nomencl
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }

\documentclass{article}

Running arara instead of pdflatex will do the same exact sequence of commands that you're trying to pass to a single tool.

You have the advantage that, in order not to run all those commands, you just disable one or more, which is obtained by adding a ! after the leading %.

This requires Java, if you don't have it installed you'll be prompted to.

Related Question