![获取 xindy 词汇表的错误](https://linux22.com/image/383000/%E8%8E%B7%E5%8F%96%20xindy%20%E8%AF%8D%E6%B1%87%E8%A1%A8%E7%9A%84%E9%94%99%E8%AF%AF.png)
当我使用它xindy
来制作词汇表时XeLatex
出现以下错误:
xindy.pl: input file xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.glg -o %.gls %.glo |
xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.blg -o %.bls %.blo |
xindy -L english -C utf8 -I xindy -M %.xdy -t %.alg -o %.acr %.acn does not exist at c:/texlive/2014/texmf-dist/scripts/xindy/xindy.pl line 542.
C:\texlive\2014\bin\win32\runscript.tlu:652: command failed with exit code 2:
perl.exe c:/texlive/2014/texmf-dist/scripts/xindy/xindy.pl "xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.glg -o %.gls %.glo |
xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.blg -o %.bls %.blo |
xindy -L english -C utf8 -I xindy -M %.xdy -t %.alg -o %.acr %.acn"
我必须做什么才能获得期望的输出?
答案1
你的texlive
已经很旧了。根据描述这一页
这是 texlive 2014 中 xindy 的一个错误。
它已在新版 texlive 中修复。您应该下载并安装2018 年 TEXLIVE.然后运行以下结构:
\documentclass[12pt]{book}
\usepackage[pagebackref=false,colorlinks,linkcolor=red,citecolor=magenta]{hyperref}
\usepackage[nottoc]{tocbibind}
\usepackage{makeidx}
\makeindex
\usepackage{xepersian}
\settextfont[Scale=1.2]{IRZar}
\begin{document}
\tableofcontents
\chapter{فصل اول}
مطالب فصل اول اینجا وارد شوند.
\index{توپولوژی}
\section{بخش اول}
مطالب بخش اول اینجا وارد شوند.
\index{آینده}
\index{انسان}
\index{\lr{horizontal mode}}
\printindex
\end{document}
您还必须创建以下用户:
xindy -L persian-variant1 -C utf8 -M numeric-sort -M latex -M latex-loc-fmts -M texindy %.idx
(option->configure texstudio->build->add-> xindy -L persian-variant1 -C utf8 -M numeric-sort -M latex -M latex-loc-fmts -M texindy %.idx ->ok) 然后编译它。(f1+above xindy user+f1 in texstudio)
您将获得与以下相同的输出:
但在词汇表中,您必须创建以下用户:
xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.glg -o %.gls %.glo |
xindy -L persian-variant1 -C utf8 -I xindy -M %.xdy -t %.blg -o %.bls %.blo |
xindy -L english -C utf8 -I xindy -M %.xdy -t %.alg -o %.acr %.acn
还有这个结构:
\documentclass{report}
\usepackage{dblfnote}
\usepackage[xindy,acronym,nonumberlist=true]{glossaries}
\usepackage[pagebackref=false,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\setdigitfont[Scale=1.3]{PGaramond}
\setlatintextfont[Scale=1.2]{Times New Roman}
\newglossarystyle{myFaToEn}{%
\renewenvironment{theglossary}{}{}
\renewcommand*{\glsgroupskip}{\vskip 10mm}
\renewcommand*{\glsgroupheading}[1]{\subsection*{\glsgetgrouptitle{##1}}}
\renewcommand*{\glossentry}[2]{\noindent\glsentryname{##1}\dotfill\space \glsentrytext{##1}
}
}
\newglossarystyle{myEntoFa}{%
\renewenvironment{theglossary}{}{}
\renewcommand*{\glsgroupskip}{\vskip 10mm}
\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \subsection*{\glsgetgrouptitle{##1}} \end{LTR}}
\renewcommand*{\glossentry}[2]{\noindent\glsentrytext{##1}\dotfill\space \glsentryname{##1}
}
}
\newglossarystyle{myAbbrlist}{%
\renewenvironment{theglossary}{}{}
\renewcommand*{\glsgroupskip}{\vskip 10mm}
\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \subsection*{\glsgetgrouptitle{##1}} \end{LTR}}
\renewcommand*{\glossentry}[2]{\noindent\glsentrytext{##1}\dotfill\space \Glsentrylong{##1}
}
\renewcommand*{\acronymname}{\rl{فهرست اختصارات
}}
}
\newglossary[glg]{english}{gls}{glo}{واژهنامه انگلیسی به فارسی}
\newglossary[blg]{persian}{bls}{blo}{واژهنامه فارسی به انگلیسی}
\makeglossaries
\glsdisablehyper
\let\oldgls\gls
\let\oldglspl\glspl
\makeatletter
\renewrobustcmd*{\gls}{\@ifstar\@msgls\@mgls}
\newcommand*{\@mgls}[1] {\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\oldgls{#1}\glsuseri{f-#1}}{\oldgls{#1}}}
\newcommand*{\@msgls}[1]{\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\glstext{#1}\glsuseri{f-#1}}{\oldgls{#1}}}
\renewrobustcmd*{\glspl}{\@ifstar\@msglspl\@mglspl}
\newcommand*{\@mglspl}[1] {\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\oldglspl{#1}\glsuseri{f-#1}}{\oldglspl{#1}}}
\newcommand*{\@msglspl}[1]{\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\glsplural{#1}\glsuseri{f-#1}}{\oldglspl{#1}}}
\makeatother
\newcommand{\newword}[4]{
\newglossaryentry{#1} {type={english},name={\lr{#2}},plural={#4},text={#3},description={}}
\newglossaryentry{f-#1} {type={persian},name={#3},text={\lr{#2}},description={}}
}
\defglsentryfmt[english]{\glsgenentryfmt\ifglsused{\glslabel}{}{\LTRfootnote{\glsentryname{\glslabel}}}}
\defglsentryfmt[acronym]{\glsentryname{\glslabel}\ifglsused{\glslabel}{}{\LTRfootnote{\glsentrydesc{\glslabel}}}}
\newcommand{\printabbreviation}{
\cleardoublepage
\phantomsection
\baselineskip=.75cm
\addcontentsline{toc}{chapter}{فهرست اختصارات}
\setglossarystyle{myAbbrlist}
\begin{RTL}
\Oldprintglossary[type=acronym]
\end{RTL}
\clearpage
}%
\newcommand{\printacronyms}{\printabbreviation}
\let\Oldprintglossary\printglossary
\renewcommand{\printglossary}{
\let\appendix\relax
\clearpage
\phantomsection
\twocolumn{}
\addcontentsline{toc}{chapter}{واژه نامه انگلیسی به فارسی}
\setglossarystyle{myEntoFa}
\Oldprintglossary[type=english]
\clearpage
\phantomsection
\addcontentsline{toc}{chapter}{واژه نامه فارسی به انگلیسی}
\setglossarystyle{myFaToEn}
\Oldprintglossary[type=persian]
\onecolumn{}
}%
\newword{HAU}{Hausdorff Space}{فضای هاسدورف}{هاسدورف}
\newword{TOS}{Topology Space}{فضای توپولوژی}{فضای توپولوژی}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newacronym{WL}{w.l.o.g}{\lr{
Without Loss of Generality}}
\begin{document}
مثال برای دیگشنریها و پانویس:
\\
یک
\glspl{TOS}
را
\glspl{HAU}
گویند هرگاه ...
\vspace*{3cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%مثال برای اختصارات:
در این پایاننامه
\gls{WL}
تمام فضاها را در نظر میگیریم.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5555
دستور قرار دادن دیکشنریها
\printglossary
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
دستور قرار دادن فهرست اختصارات
\printabbreviation
\end{document}
祝你好运。