我在创建词汇表时遇到了一些问题。我使用的是装有 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 安装)使用LuaLaTeX
和makeglossaries
。@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}