TransWikia.com

Language detection for "glossaries" package

TeX - LaTeX Asked by Opsse on May 29, 2021

I want to use the glossaries-french package, according to the documentation it is in the TEX Live package bundle:

Contained in TEX Live as glossaries-french

And I installed the packages texlive-latex-extra texlive-lang-french in my Ubuntu. So I expect to be able to import it with usepackage{glossaries-french}.

But I face this error message during the compilation :

LaTeX Error: File `glossaries-french.sty’ not found.

Note that I don’t have any error using only usepackage[acronym]{glossaries}.

So I guess that I don’t understand how the LaTeX packages works or I don’t understand the documentation.


Edit

Based on comments I remove the glossaries-french import and I check the babel parameters, and I found what was wrong. But it’s still not the expected behaviour :

documentclass[11pt]{report}
usepackage[utf8]{inputenc}
usepackage[english,french]{babel} % french is the main language
usepackage[acronym]{glossaries}

makeglossaries

newacronym[longplural={réseaux de neurones artificiels}]{rna}{RNA}{réseau de neurones artificiels}

begin{document}
    Test acrfull : acrfull{rna}

    Test acrfullpl : acrfullpl{rna}
end{document}

latex bad result

And if I reverse the languages in the babel parameters I got the expected result (no s at the end of the acronym) :

usepackage[french,english]{babel} % english is the main language
...

latex good result

The result is all good, but the main language is not french anymore. Based on babel documentation :

In multilingual documents, just use a list of the required languages as package or class options. The last language is considered the main one, activated by default.

Is it a bug or I miss something?

One Answer

As explained in the comments, the first issue come from the confusion between a module and a package. The module doesn't need to be imported.

The second issue is about language detection, it's necessary to give to glossaries the good information about the language to make sure it load the appropriate language module.

The documentation says :

The glossaries package uses the tracklang package to detect document languages.

And the tracklang package explains that it can't easily detect the language only with babel. So, in this case the solution is to add this in the document class declaration : documentclass[fr-CA,11pt]{report}.

documentclass[fr-CA,11pt]{report}
usepackage[utf8]{inputenc}
usepackage[english,french]{babel} % french is the main language
usepackage[acronym]{glossaries}

makeglossaries

newacronym[longplural={réseaux de neurones artificiels}]{rna}{RNA}{réseau de neurones artificiels}

begin{document}
    Test acrfull : acrfull{rna}

    Test acrfullpl : acrfullpl{rna}
end{document}

latex output

See this post for effect of the definition of a language for documentclass.

Correct answer by Opsse on May 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP