Bib2gls 支持非 ASCII 字符或非英语语言;.glstex 无法加载非 ASCII 字符

Bib2gls 支持非 ASCII 字符或非英语语言;.glstex 无法加载非 ASCII 字符

我正在尝试将 bib2gls 纳入我的项目中的词汇表管理中,但是在使用我的母语(捷克语)及其变音符号时遇到了麻烦(据我所知,那些是非 ASCII 的,但 Unicode 可以接受的字符)。

明确地显示这些,其为“ěščřžýáíéďťň”。

就我的故障排除能力而言,我能够在 .glstex 文件中追踪问题的根源,该文件无法接受包含非 ASCII 字符的 .bib 文件。

我偶然发现了包 newunicode,答案可能就在那里,但我不知道如何将它用于我的具体情况。

我希望找到一种理想情况下可以在 XeLaTeX 和 LuaLaTeX 中工作的解决方案,或者至少是其中一种。据我所知,我尝试了编码包的组合,但没有一种能够正确显示所有字符(字形)。

梅威瑟:

% !TEX encoding = UTF-8 Unicode

%% Pokyny pro arara:

% arara: xelatex
% arara: bib2gls if found("aux", "glsxtr@resource")
% arara:  xelatex
% arara: bib2gls if found("aux", "glsxtr@resource")
% arara:  xelatex
% arara:  xelatex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass [a4paper, 12pt, twoside,openright] {book}                %nastavení knihy

\usepackage [czech] {babel} 
%\usepackage[utf8]{inputenc}        
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{microtype}          
\usepackage [a4paper, twoside, inner=2.5cm, outer=2.5cm, bottom=3cm] {geometry}         

\usepackage{import}     
\usepackage{filecontents}       

\usepackage[record, nopostdot, automake, abbreviations,% 
                    nostyles, stylemods={all}%
                    ]{glossaries-extra}

\GlsXtrLoadResources[selection={all},%
            src={testgls},%
            save-locations=false,%
            ]

%Glossary entries
\begin{filecontents}{testgls.bib}
% !TEX encoding = UTF-8 Unicode
@entry{nonasciichartest,
    name={ačšěřžýáíéťďň},
    description={ačšěřžýáíéťďň}
}
@entry{asciitest,
    name={ASCII test},
    description={abcdefghijklmopqrstuvwxyz}
}
\end{filecontents}{testgls.bib}

\begin{document}

\nonfrenchspacing
%\pagenumbering{roman}                  %nutné pro kompilovatelnost referencí - hned od začátku nastavit číslování stránek

\thispagestyle{empty}

\printunsrtglossary[type={main}, style={altlistgroup}, title=Slovníček pojmů, toctitle=Slovníček pojmů]

\clearpage

Standard text:

ěščřžýáíéťďň

\end{document}

最后说明:我也尝试使用魔术注释,但这也没有带来有效的解决方案。它们的使用甚至可能是多余的 :)

非常感谢您针对此复杂情况提供的任何帮助和提示。Bib2gls 是一款很棒的工具,我希望学会使用它。

托马斯

答案1

正如菲舍尔女士所指示的,我正在回答我自己的问题(奇怪)。

解决此问题的方法是向 \GlsXtrLoadResources 添加选项“charset=UTF-8”,从而:

% !TEX encoding = UTF-8 Unicode

% arara: xelatex
% arara: bib2gls if found("aux", "glsxtr@resource")
% arara:  xelatex
% arara: bib2gls if found("aux", "glsxtr@resource")
% arara:  xelatex
% arara:  xelatex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass [a4paper, 12pt, twoside,openright] {book}       
\usepackage [czech] {babel}       
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{microtype}          
\usepackage [a4paper, twoside, inner=2.5cm, outer=2.5cm, bottom=3cm] {geometry}         

\usepackage{import}     
\usepackage{filecontents}       

\usepackage[record, nopostdot, automake, abbreviations,% 
                    nostyles, stylemods={all}%
                    ]{glossaries-extra}

\GlsXtrLoadResources[selection={all},%
            src={testgls},%
            save-locations=false,%
            charset=UTF-8%
            ]

%Glossary entries
\begin{filecontents}{testgls.bib}
% !TEX encoding = UTF-8 Unicode
@entry{nonasciichartest,
    name={ačšěřžýáíéťďň},
    description={ačšěřžýáíéťďň}
}
@entry{asciitest,
    name={ASCII test},
    description={abcdefghijklmopqrstuvwxyz}
}
\end{filecontents}{testgls.bib}

\begin{document}

\nonfrenchspacing

\thispagestyle{empty}

\printunsrtglossary[type={main}, style={altlistgroup}, title=Slovníček pojmů, toctitle=Slovníček pojmů]

\clearpage

Standard text:

ěščřžýáíéťďň

\end{document}

相关内容