# xindy could not find file “lang/english/utf8-lang.xdy” despite being available

I get a strange error upon running

perl.exe \path\to\xindy.pl -L english -C utf8 -I xindy -M "main" -t "main.alg" -o "main.acr" "main.acn"

or equivalently,

xindy.exe -L english -C utf8 -I xindy -M "main" -t "main.alg" -o "main.acr" "main.acn"

The console output showing the error message is as follows

Opening logfile "main.alg" (done)

"C:\\Documents\\phd_thesis\\1htZ_vspxV"...

Error in line 1:

(require "lang/english/utf8-lang.xdy")

ERROR: Could not find file "lang/english/utf8-lang.xdy" !

Why am I getting this error, and how do I fix it?

## Update (Temporary Workaround)

This looks like a xindy bug. The required .sty file was already present in the folder %TEXDIR%\texmf-dist\xindy\modules\lang\english\, but was not found (and therefore not loaded) by xindy. To get this to work, I had to do two thngs

• copy the contents & structure of the lang\english tree into my project's root directory.
• copy the tex.xdy file from %TEXDIR%\texmf-dist\xindy\modules\base\ also to my project's root directory.

Can a TeX expert here look into this and advise me on what is going on?

## Minimal example to reproduce the issue (main.tex)

\documentclass[12pt,a4paper,oneside,openright]{book}
\usepackage[nomain,acronym,xindy]{glossaries-extra}

\makeglossaries
\glssetcategoryattribute{acronym}{nohyperfirst}{true}
\setabbreviationstyle[acronym]{long-short} % applicable only for glossaries-extra.sty

\begin{document}

\cleardoublepage
\printglossary[type=acronym,title={List of Acronyms}]\label{ch:glossary} % basic style

This is some random text which uses \glspl{adc}.

\end{document}


Now, run

pdflatex main.tex
makeglossties main    (fails)
pdflatex main.tex     (redundant here since makeglossaries has failed. But required to print glossaries in the PDF once step 2 works.)


Also, I can confirmed that my aforesaid workaround (copying the xindy language tree as well as tex.xdy to this folder) is valid for this minimal example.

### Environment

• Windows 10 64-bit (v1709, build 16299.846)
• pdfTeX 3.14159265-2.6-1.40.19 (TeX Live 2018/W32TeX)
• xindy release: 2.5.1
• xindy.pl script version: 1.18
• Strawberry perl v5.28.1 built for MSWin32-x64-multi-thread
• Makeglossaries Version 4.41 (2018-07-23)

### TeXLive portable setup

The library machines in our university all run Windows 10. Obviously, students do not have admin access to install software. To workaround this, and to have a reproducible working environment, I keep all my favourite utilities and other tools on a network-mounted Home drive, labelled H: provided by the uni to all students. Each day I find myself on a different physical machine, but this is not a problem since the network drive gets mounted automatically upon login. Therefore, I have set up a portable TeXlive whose environment variables are setup by running the following batch script at each login.

setx path "H:\username\texlive\2018\bin\win32;H:\username\perl-portable\perl\bin;"
setx TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL "1"


where username is my username using which I login to all university public computers.

Note:

One of the folks who commented below said that my minimal example worked fine for them and did not give any errors. So I wonder if the issue is related to this portable setup?

• perl xindy.pl looks odd. In which directory are you when calling this command? And why aren't you calling xindy.exe? – Ulrike Fischer Dec 24 '18 at 19:43
• @Ulrike that's exactly what makeglossaries calls behind the scenes. Instead of xindy.pl, it provides the full path to xindy.pl. Is there a way to instruct makeglossariez to directly use the exe when on Windows and switch appropriately when on Linux? – Krishna Dec 24 '18 at 19:47
• Sorry but it is quite a difference if you do perl xindy or perl path/to/xindy. So what are you doing really? And did you check if the missing file is in ...\texmf-dist\xindy\modules\lang\english? – Ulrike Fischer Dec 24 '18 at 19:49
• @KJO that's from 2013 and it is on ubuntu. Krishna has a texlive 2018 on windows. – Ulrike Fischer Dec 24 '18 at 21:49
• @UlrikeFischer my bad I did not read question fully and see the windows reference I will delete comment as very misleading – user170109 Dec 24 '18 at 21:51

In order to run from the command line an additional search variable needs to be set (it is NOT recursive so in this case it needs several;locations)

Set XINDY_SEARCHPATH=H:\username\texlive\2018\texmf-dist\xindy\modules;H:\username\texlive\2018\texmf-dist\xindy\modules\base


or for portable use after TEXMFDIST is set

Set XINDY_SEARCHPATH=%TEXMFDIST%\xindy\modules;%TEXMFDIST%\xindy\modules\base


then the following should work as it did for me

pdfLaTeX main
makeglossaries main
pdfLaTeX main

• still does not work for me – Krishna Dec 30 '18 at 23:05
• I am using portable but my directories are different so to check yours At a command prompt enter where /r h:\ tex.xdy based on my experience you should get H:\username\texlive\2018\texmf-dist\xindy\modules\base hence my suggested setting for search path – user170109 Dec 31 '18 at 3:34