如何建立一个仅通过引用就能起作用的单词列表

如何建立一个仅通过引用就能起作用的单词列表

我想用我的母语(波斯语)写论文。但是人们对某些技术词汇的翻译意见不一致。我有一组宏可以正确定义词汇表中的条目,但我不想干扰它们的运行。

\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}

您的输出与以下相同:


在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

祝你好运。

相关内容