Latest news 2019-12-05: new blog post "RSS Feeds and Other Notifications."

Bug Tracker

ID115
StatusClosed (Fixed)
Categorytracklang
Version1.3.1
SummaryTrouble 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.
  │ <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.

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.

Add comment.

Watch This Report

If you would like to be notified whenever updates are made to this report, please fill in your email address in the box below and click on "Notify Me of Changes" button. (Please ensure the address is valid.) Your details won't be passed on to third parties in line with this site's Privacy Policy.

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).

(Optional.)
E mail:
Confirm E mail:
Confirm Bug ID:

To unsubscribe from all notifications use the notifications page.

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).

(Optional. If provided, it will be shown with the comment.)
Confirm Bug ID:

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.

Return to list.

© 2019 Dickimaw Books. "Dickimaw", "Dickimaw Books" and the Dickimaw parrot logo are trademarks. The Dickimaw parrot was painted by Magdalene Pritchett.

Terms of Use Privacy Policy Cookies Site Map FAQs