我想用我的母语(波斯语)写论文。但是人们对某些技术词汇的翻译意见不一致。我有一组宏可以正确定义词汇表中的条目,但我不想干扰它们的运行。
\newglossarystyle{mylistFa}{
\glossarystyle{list}\addcontentsline{toc}
{chapter}{واژهنامه فارسی به انگلیسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]
{\section*{\glsgetgrouptitle{##1}}}
\renewcommand*{\glsgroupskip}{\vspace*
{-1cm}}
\renewcommand*{\glossaryentryfield}[5]
{\noindent\glstarget{##1}{##2}\dotfill
\space ##3 \\}
\renewcommand*{\glossarysubentryfield}[6]
{\glossaryentryfield{##2}{##3}{##4}{##5}
{##6}}
}
\newglossarystyle{mylistEn}{
\glossarystyle{list}\addcontentsline{toc}
{chapter}{واژهنامه انگلیسی به فارسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]
{\begin{LTR} \section*
{\lr{\glsgetgrouptitle{##1}}} \end{LTR}}
\renewcommand*{\glsgroupskip}{\vspace*
{-1cm}}
\renewcommand*{\glossaryentryfield}[5]
{\noindent\glstarget{##1}{##3}\dotfill
\space ##2 \\}
\renewcommand*{\glossarysubentryfield}[6]
{\glossaryentryfield{##2}{##3}{##4}{##5}
{##6}}
}
% تعریف دو نمونه واژه نامه
\newglossary[glg]{english}{gls}{glo}
{واژهنامه انگلیسی به فارسی}
\newglossary[blg]{persian}{bls}{blo}
{واژهنامه فارسی به انگلیسی}
% توسط این دستور واژه مورد نظر در متن،
هر دو واژه نامه و پاورقی می آید.
\newcommand{\inpdic}[2]{
\newglossaryentry{fa-#1}
{type=persian,name={#1}, sort=
{#1},description={\lr{#2}}}\gls{fa-
#1}\LTRfootnote{#2}
\newglossaryentry{en-#1}
{type=english,name={\lr{#2}}, sort=
{#2},description={#1}}\glsuseri{en-#1}
\!\!\!\!}
% توسط این دستور واژه مورد نظر در متن،
هر دو واژه نامه می آید.
\newcommand{\indic}[2]{
\newglossaryentry{fa-#1}
{type=persian,name={#1}, sort=
{#1},description={\lr{#2}}}\gls{fa-#1}
\newglossaryentry{en-#1}
{type=english,name={\lr{#2}}, sort=
{#2},description={#1}}\glsuseri{en-#1}
}
% توسط این دستور واژه مورد نظر فقط در
هر دو واژه نامه می آید.
\newcommand{\ingls}[2]{
\newglossaryentry{fa-#1}
{type=persian,name={#1}, sort=
{#1},description={\lr{#2}}}\glsuseri{fa-
#1}
\newglossaryentry{en-#1}
{type=english,name={\lr{#2}}, sort=
{#2},description={#1}}\glsuseri{en-#1}
}
\makeglossaries
\glsdisablehyper
我使用这些宏如下
\inpdic{احساس}{emotion}
但是我想在论文开头定义词汇表中的所有条目,然后使用此表,只需从该表中检索我想要的条目即可。这样,我论文中某个单词的所有翻译都将相同,当我想更改某个条目时,我不必在我的所有论文中都进行更改。
我该怎么做?
这是一段简短的可编译代码。它可以编译,但不幸的是,它不会打印词汇表。我不知道为什么。\documentclass{minimal}
\usepackage{glossaries}
\newglossarystyle{mylistFa}{
\glossarystyle{list}\addcontentsline{toc}{chapter}{واژهنامه فارسی به
انگلیسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{\section*{\glsgetgrouptitle{##1}}}
\renewcommand*{\glsgroupskip}{\vspace*{-1cm}}
\renewcommand*{\glossaryentryfield}[5] {\noindent\glstarget{##1}
{##2}\dotfill \space ##3 \\}
\renewcommand*{\glossarysubentryfield}[6]{\glossaryentryfield{##2}{##3}{##4}
{##5}{##6}}
}
\newglossarystyle{mylistEn}{
\glossarystyle{list}\addcontentsline{toc}{chapter}{واژهنامه انگلیسی به
فارسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \section*
{\lr{\glsgetgrouptitle{##1}}} \end{LTR}}
\renewcommand*{\glsgroupskip}{\vspace*{-1cm}}
\renewcommand*{\glossaryentryfield}[5] {\noindent\glstarget{##1}
{##3}\dotfill \space ##2 \\}
\renewcommand*{\glossarysubentryfield}[6]{\glossaryentryfield{##2}{##3}{##4}
{##5}{##6}}
}
% تعریف دو نمونه واژه نامه
\newglossary[glg]{english}{gls}{glo}{واژهنامه انگلیسی به فارسی}
\newglossary[blg]{persian}{bls}{blo}{واژهنامه فارسی به انگلیسی}
% توسط این دستور واژه مورد نظر در متن، هر دو واژه نامه و پاورقی می آید.
\newcommand{\inpdic}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\gls{fa-#1}\LTRfootnote{#2}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
\!\!\!\!}
% توسط این دستور واژه مورد نظر در متن، هر دو واژه نامه می آید.
\newcommand{\indic}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\gls{fa-#1}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
}
% توسط این دستور واژه مورد نظر فقط در هر دو واژه نامه می آید.
\newcommand{\ingls}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\glsuseri{fa-#1}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
}
\makeglossaries
\glsdisablehyper
\usepackage{enumerate}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\begin{document}
این فقط یک آزمایش است
\ingls{احساس}{emotion}
\makeatletter
\indic{دانش}{Knowledge}
\glossarystyle{mylistFa}
\printglossary[type=persian]
\glossarystyle{mylistEn}
\printglossary[type=english]
% دقت کنید که این نمایه براساس حروف انگلیسی هم قابل مرتب شدن است، و آن
را به عنوان نمایه و واژهنامه به طور همزمان نیز میتوان به کار برد.
\renewcommand\glossaryname{نمایه}
\glossarystyle{list}
\addcontentsline{toc}{chapter}{نمایه}
\printglossary
\end{document}
答案1
首先你应该看到这一页为了正确编译。
第二,你将拥有Deprecated command \glossarystyle
警告,编译后。使用以下结构,您可以删除此警告:
\usepackage{silence}
\WarningFilter{glossaries}{Deprecated command}
因此您的代码与以下相同:
\documentclass[12pt]{book}
\usepackage[colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}
\usepackage[xindy,acronym]{glossaries}
\usepackage{silence}
\WarningFilter{glossaries}{Deprecated command}
\newglossarystyle{mylistFa}{
\glossarystyle{list}\addcontentsline{toc}{chapter}{واژهنامه فارسی به
انگلیسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{\section*{\glsgetgrouptitle{##1}}}
\renewcommand*{\glsgroupskip}{\vspace*{-1cm}}
\renewcommand*{\glossaryentryfield}[5] {\noindent\glstarget{##1}
{##2}\dotfill \space ##3 \\}
\renewcommand*{\glossarysubentryfield}[6]{\glossaryentryfield{##2}{##3}{##4}
{##5}{##6}}
}
\newglossarystyle{mylistEn}{
\glossarystyle{list}\addcontentsline{toc}{chapter}{واژهنامه انگلیسی به
فارسی}
\renewenvironment{theglossary}{}{}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \section*
{\lr{\glsgetgrouptitle{##1}}} \end{LTR}}
\renewcommand*{\glsgroupskip}{\vspace*{-1cm}}
\renewcommand*{\glossaryentryfield}[5] {\noindent\glstarget{##1}
{##3}\dotfill \space ##2 \\}
\renewcommand*{\glossarysubentryfield}[6]{\glossaryentryfield{##2}{##3}{##4}
{##5}{##6}}
}
% تعریف دو نمونه واژه نامه
\newglossary[glg]{english}{gls}{glo}{واژهنامه انگلیسی به فارسی}
\newglossary[blg]{persian}{bls}{blo}{واژهنامه فارسی به انگلیسی}
% توسط این دستور واژه مورد نظر در متن، هر دو واژه نامه و پاورقی می آید.
\newcommand{\inpdic}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\gls{fa-#1}\LTRfootnote{#2}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
\!\!\!\!}
% توسط این دستور واژه مورد نظر در متن، هر دو واژه نامه می آید.
\newcommand{\indic}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\gls{fa-#1}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
}
% توسط این دستور واژه مورد نظر فقط در هر دو واژه نامه می آید.
\newcommand{\ingls}[2]{
\newglossaryentry{fa-#1}{type=persian,name={#1}, sort={#1},description=
{\lr{#2}}}\glsuseri{fa-#1}
\newglossaryentry{en-#1}{type=english,name={\lr{#2}}, sort={#2},description=
{#1}}\glsuseri{en-#1}
}
\makeglossaries
\glsdisablehyper
\usepackage{xepersian}
\settextfont{XB Niloofar}
\setdigitfont[Scale=1.3]{PGaramond}
\setlatintextfont[Scale=1.2]{Times New Roman}
\begin{document}
\null\vfill\noindent
این فقط یک آزمایش است
\noindent
\inpdic{قابل اعتماد}{believable}\\
\indic{دانش}{Knowledge}
\ingls{احساس}{emotion}
\glossarystyle{mylistFa}
\printglossary[type=persian]
\glossarystyle{mylistEn}
\printglossary[type=english]
% دقت کنید که این نمایه براساس حروف انگلیسی هم قابل مرتب شدن است، و آن
%را به عنوان نمایه و واژهنامه به طور همزمان نیز میتوان به کار برد.
\renewcommand\glossaryname{نمایه}
\glossarystyle{list}
\addcontentsline{toc}{chapter}{نمایه}
\printglossary
\end{document}
您的输出与以下相同:
祝你好运。