获取 xindy 词汇表的错误

获取 xindy 词汇表的错误

当我使用它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}

祝你好运。

相关内容