# Bug Tracker

ID 115 Closed (Fixed) tracklang 1.3.1 Trouble with \shellescape

## Report

This bug report is concerning more tracklang' than glossaries' package but: 1. the bug tracker list doesn't contain tracklang', 2. as explained below, if used standalone, an easy workaround does exist for tracklang' but not for glossaries'. With the last update of tracklang' package (2016/10/08 v1.3.1), an error involving \shellescape' arises in some circumstances, as in the joined M(n)WE: ┌──── │ ! Missing number, treated as zero. │ <to be read again> │ \shellescape │ l.279 \ifnum\shellescape │ =0\relax │ ? └──── In the MWE, it is enough to move tracklang' before imakeidx' to fix the bug. But tracklang' is loaded by glossaries', which is recommended to be loaded after hyperref', which is one of last packages to be loaded.

Denis Bitouzé

### MWE

\listfiles

\documentclass[english]{article}
\usepackage{imakeidx}
\usepackage{glossaries}
\usepackage{babel}
\begin{document}
Foo.
\end{document}

This bug report is concerning more tracklang' than glossaries' package but:

1. the bug tracker list doesn't contain tracklang',
2. as explained below, if used standalone, an easy workaround does exist for
tracklang' but not for glossaries'.

With the last update of tracklang' package (2016/10/08 v1.3.1), an error
involving \shellescape' arises in some circumstances, as in the joined M(n)WE:
┌────
│ ! Missing number, treated as zero.
│                    \shellescape
│ l.279      \ifnum\shellescape
│                              =0\relax
│ ?
└────
In the MWE, it is enough to move tracklang' before imakeidx' to fix the
bug. But tracklang' is loaded by glossaries', which is recommended to be
loaded after hyperref', which is one of last packages to be loaded.


## Evaluation

(Your MWE needs to swap babel and glossaries.) \shellescape is a xetex primitive, which should expand to a number (0, 1, or 2) but it seems that imakeidx is defining it to \relax when used with (pdf)latex:
\documentclass[english]{article}
\show\shellescape
\usepackage{imakeidx}
\show\shellescape
\usepackage{babel}
\usepackage{glossaries}
\begin{document}
Foo.
\end{document}

produces (with pdflatex):
> \shellescape=undefined.
l.6 \show\shellescape

?
(/home/texlive/2016/texmf-dist/tex/latex/imakeidx/imakeidx.sty
(/home/texlive/2016/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/home/texlive/2016/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/home/texlive/2016/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/home/texlive/2016/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/home/texlive/2016/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(/home/texlive/2016/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(/home/texlive/2016/texmf-dist/tex/latex/tools/multicol.sty))
> \shellescape=\relax.
l.8 \show\shellescape

?

A workaround is to load babel and tracklang before imakeidx:
\documentclass[english]{article}
\usepackage{babel}
\usepackage{tracklang}
\usepackage{imakeidx}
\usepackage{glossaries}
\begin{document}
Foo.
\end{document}

Update: tracklang v1.3.2 (2016-10-11) now checks for \pdfshellescape before \shellescape and also checks if either of those primitives have been set to \relax. (Please allow a few days for the new version to appear in distributions.)

Comment from Denis Bitouzé
Date: 2016-10-17 00:31:08 CDT

Sorry for the wrong order between babel and glossaries.

Everything goes smoothly now: thanks!

Comment from Nicola Talbot
Date: 2016-10-17 11:15 BST

Not to worry. I worked it out :-)

Glad it's working now. Thank you for alerting me to the problem.

## Watch This Report

If you supply your name, it will be used in the email greeting, which provides a more personal message, otherwise you'll just get a generic greeting. If you have previously supplied your name when signing up for notifications, you don't need to resupply it unless you want to change it.

If you have previously subscribed to notifications for this report, you can unsubscribe by clicking on the "Stop Notification" button.

The "Confirm Bug ID" field helps to protect against spambots. Please enter the bug ID (which you can find at the top of this page).

Name: (Optional.)

## Comment

You can append a comment to the report using the form below. Comments are checked first before being added. Any spam or offensive content will be removed first according to this site's Terms of Website Use. Please bear in mind that I develop and maintain free software in my spare time. If you want commerical level support then you can hire a TeX consultant.

The "Confirm Bug ID" field helps to protect against spambots. Please enter the bug ID (which you can find at the top of this page).

Name: (Optional. If provided, it will be shown with the comment.) Message: You can use the following markup: [pre]Displayed verbatim[/pre] [tt]monospace text[/tt] [em]emphasized text[/em] [b]bold text[/b] [url]web address[/url] Ordered list: [ol] [li]first item[/li] [li]second item[/li] [/ol] Unordered list: [ul] [li]first item[/li] [li]second item[/li] [/ul]

Click on the Preview button to preview the message.