xindy 和词汇表的问题

xindy 和词汇表的问题

我在创建词汇表时遇到了一些问题。我使用的是装有 Mountain Lion OS 10.8.3 的 MacBook,我安装了麦金塔电脑2012 年及详情xindy是:

xindy release: 2.4
xindy script version: 1.16
xindy kernel version: 3.0
CLISP version 2.48 (2009-07-28) (built on richard-kochs-computer.local [10.0.1.2])
architecture: X86_64

当我尝试运行这个程序时

\documentclass[10pt,twoside,a4paper,fleqn]{book}
\usepackage[utf8]{inputenc}
\usepackage{ifthen, xkeyval, xfor, amsgen}
\usepackage[xindy]{glossaries}
\usepackage{translator}
\makeglossaries

\begin{document}

\newglossaryentry{real number}
{
    name={real number},
    description={include both rational numbers and irrational numbers},
    symbol={\ensuremath{\mathbb{R}}}
}

\newglossaryentry{Agypten}
{
name = {{Ä}gypten}
description = {German:Egypt}
}

\chapter{Model chapter for a report}

This is the first chapter of the report. Most certainly it will have
    some \glspl{real number}. Maybe there will be
    something in German, like \gls{Agypten}

\printglossary

\end{document}

现在当我跑步时makeindex在终端中像这样:

pdflatex document
makeindex document.glo -s document.ist -t document.glg -o document.gls
pdflatex document

如果我没有使用变音符号,它就会起作用。考虑到我的学士论文肯定会用德语,那将不太理想。在发现xindy多语言工作后,我也尝试了:

pdflatex test
xindy -L german -I xindy -M test -t test.glg -o test.gls test.glo
pdflatex test

我收到的礼物:

Cannot locate xindy module for language german.

好吧,考虑到我可以找到该模块,我想我可以告诉她它在哪里,但不幸的是,我不知道怎么做。另一种方法是将该模块复制到目录中,然后xindy使用查找模块,但我也想不出这个方法。

当然我也尝试了简单版本:

makeglossaries test

输出内容为:

No \@istfilename found in 'test.aux'.
Did your LaTeX run fail?
Did your LaTeX run produce any output?
Did you remember to use \makeglossaries? 

有趣的是:在该声明上方的几行中,我看到了这样的内容:

\@istfilename{test.xdy}

但当我查看时test.aux,它不在那里。当我把它放在那里并再次运行命令时,根本没有编译器输出,xindy我猜这可能是因为。

我希望你们中有人能帮助我。

答案1

您必须将文档语言设置为德语,以便了解glossaries如何对条目进行排序。由于存在xindy错误,您还必须手动设置编码:

\documentclass[10pt,twoside,a4paper,fleqn]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{ifthen, xkeyval, xfor, amsgen}
\usepackage[xindy]{glossaries}
\GlsSetXdyCodePage{duden-utf8}
\usepackage{translator}
\makeglossaries

\begin{document}

\newglossaryentry{real number}
{
    name={real number},
    description={include both rational numbers and irrational numbers},
    symbol={\ensuremath{\mathbb{R}}}
}

\newglossaryentry{Agypten}
{
    name = {{Ä}gypten},
    description = {German:Egypt}
}

\chapter{Model chapter for a report}

This is the first chapter of the report. Most certainly it will have
    some \glspl{real number}. Maybe there will be
    something in German, like \gls{Agypten}

\printglossary

\end{document}  

重要的行是\usepackage[german]{babel}\GlsSetXdyCodePage{duden-utf8}。请注意,您在Agypten词汇表条目中漏掉了逗号。

编辑:如果makeglossaries仍然不起作用,请尝试以下操作:

xindy -M lang/german/duden-utf8 -I xindy -M test -t test.glg -o test.gls test.glo

答案2

类似的事情发生在我身上(Arch Linux,自定义 TeX Live 安装)使用LuaLaTeXmakeglossaries。@michal.h21 提供一个明显的解决方案xindy手动执行,传递在以下位置找到的语言/编码模块的名称模块目录(参见man xindy)。我不需要\GlsSetXdyCodePage在 TeX 文档中设置。

MWE(就我而言,我用的是西班牙语写作):

\documentclass{article}
\usepackage{polyglossia}
    \setmainlanguage{spanish}
\usepackage{fontspec}
    \setmainfont{Charis SIL}% This font not essential to the example, just what I use
\usepackage[xindy]{glossaries}
    \makeglossaries

\newacronym[shortplural={PPNNSS},longplural={polimorfismos de nucleótido simple}]
    {PNS}{PNS}{polimorfismo de nucleótido simple}

\begin{document}

\printglossaries

\dots el \gls{PNS} rs2710102 \dots

\end{document}

加工:

a=resumen-6; lualatex $a; xindy -M lang/spanish/modern-utf8 -I xindy -M $a -t $a.glg -o $a.gls $a.glo; lualatex $a

编辑

我已经发现了在我的案例中如何makeglossaries工作:通过将正确的值传递给xindy调用选项\usepackage{glossaries},例如:

\usepackage[xindy={language=spanish-modern,codepage=utf8}]{glossaries}

相关内容