123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- % !TEX encoding = UTF-8 Unicode
- \glsdisablehyper % disable hyperlinks
-
- \newglossarystyle{persian-to-english}{%
- % \glossarystyle{listdotted}% the base style
- % put the glossary in a two column page and description (as in listdotted style) environment:
- \renewenvironment{theglossary}%
- {\begin{multicols}{2}\begingroup \flushleft }%
- {\endgroup \end{multicols}}%
- % \renewenvironment{theglossary}{}{}%
- % have nothing after \begin{theglossary}:
- \renewcommand*{\glossaryheader}{}%
- % have nothing between glossary groups:
- \renewcommand*{\glsgroupheading}[1]{}%
- \renewcommand*{\glsgroupskip}{}%
- % set how each entry should appear: \glossaryentryfield{label}{formatted name}{description}{symbol}{number list}
- \renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2}% persian term
- \dotfill%dots
- \space \lr{##3} \\%
- % \dotfill%
- % \space {##5} \\%translation term
- }%
- % set how sub-entries appear:
- \renewcommand*{\glossarysubentryfield}[6]{%
- \glossaryentryfield{##2}{##3}{##4}{##5}{##6}%
- }%
- }
- % ========= Glossary styles (put in files) =========
- \newglossarystyle{english-to-persian}{%
- % \glossarystyle{listdotted}% the base style
- % put the glossary in a two column page and description (as in listdotted style) environment:
- \renewenvironment{theglossary}%
- {\begin{multicols}{2}\begingroup \flushright }%
- {\endgroup \end{multicols}}%
- % \renewenvironment{theglossary}{\Latin{}}{\Persian{}}%
- % have nothing after \begin{theglossary}:
- \renewcommand*{\glossaryheader}{}%
- % have nothing between glossary groups:
- \renewcommand*{\glsgroupheading}[1]{}%
- \renewcommand*{\glsgroupskip}{}%
- % set how each entry should appear:
- \renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2}% persian term
- \dotfill%dots
- \space \rl{##3} \\%translation term
- }%
- % set how sub-entries appear:
- \renewcommand*{\glossarysubentryfield}[6]{%
- \glossaryentryfield{##2}{##3}{##4}{##5}{##6}%
- }%
- }
-
- % ========= GLOSSARIES =========
- \newglossary{p2e-terms}{fa.gls}{fa.glo}{واژهنامه فارسی به انگلیسی} % persian to english
- \newglossary{e2p-terms}{en.gls}{en.glo}{English to Persian Glossary} % english to persian
-
- \newcommand{\newtrans}[3][]{% params: persian, english translations, first optional is a key
- \newtranspl[#1]{#2}{#3}{#2ها}%
- }
-
- \newcommand{\newtranspl}[4][]{% params: persian, english, plural form of persian, first optional is a key
- \ifthenelse{\isempty{#1}}{\def\key{#2}}{\def\key{#1}}%
- \newglossaryentry{en:\key}{type={e2p-terms}, name={#3}, description={#2}}% english glossary
- % \newglossaryentry{fa:\key}{type={p2e-terms}, name={#2}, description={#3}}% persian glossary
- \newglossaryentry{fa:\key}{type={p2e-terms}, name={#2}, plural={#4}, description={#3}}% persian glossary
- }
- % ========= END OF GLOSSARIES =========
-
- % Show a translation and footnote it.
- % Params (the same as \glsdisplayfirst):{text}{description}{symbol}{insert}
- % insert can possibly be filled with some notes on the translation.
- \newcommand{\showTransFirst}[4]{% translation for the first time
- \ifthenelse{\isempty{#4}}%
- {\textit{#1}\LTRfootnote{ #2}}% if #4 is empty (no notes)
- %%%{\textit{#1}\LTRfootnote{{#2} #4}}% if #4 is not empty
- {\textiranic{#1}\LTRfootnote{{#2} #4}}% if #4 is not empty
- %{\textit{#1}\footnote{ \lr{#2}؛ #4}}% if #4 is not empty
- }
-
- \newcommand{\showTrans}[4]{% translation for next times
- \ifthenelse{\isempty{#4}}%
- {{#1}}% if #4 is empty (no notes)
- {\textit{#1}\footnote{#4}}% if #4 is not empty
- }
-
- \defglsdisplayfirst[p2e-terms]{\showTransFirst{#1}{#2}{#3}{#4}}% protect fragile commands
- \defglsdisplay[p2e-terms]{\showTrans{#1}{#2}{#3}{#4}}
-
- % Symbol may temporarily used to keep some notes on the translation.
- % It must be replaced with a user1 key which now raises error, texlive must be upgraded.
- \newcommand{\term}[2][]{%
- \glsadd{en:#2}%
- \ifthenelse{\isempty{#1}}{\gls{fa:#2}}{\gls{fa:#2}[#1]}%
- }
- \newcommand{\termpl}[2][]{%
- \glsadd{en:#2}%
- \ifthenelse{\isempty{#1}}{\glspl{fa:#2}}{\glspl{fa:#2}[#1]}%
- }
- %=========== Print Glossaries ===============
- % see: http://www.parsilatex.com/forum/SMF/index.php?topic=345.0
- %\glossarystyle{persian-to-english}
- %\def\glossaryname{واژهنامه فارسی به انگلیسی}
- %\printglossaries
-
- \newcommand{\printpersianglossary}[1][واژهنامه فارسی به انگلیسی]{{%
- \phantomsection % hyperref: enable hyperlinking from the table of contents to this point
- \addcontentsline{toc}{chapter}{#1} % add a line in the Table of Contents (first option, toc), it will be like the ones
- \renewcommand{\glossarymark}[1]{\markboth{##1}}% correct handling of page header
- \printglossary[type={p2e-terms},style={persian-to-english},title={#1}]%
- }}
-
-
- \newcommand{\printenglishglossary}[1][واژهنامه انگلیسی به فارسی]{{%
- \phantomsection % hyperref: enable hyperlinking from the table of contents to this point
- \addcontentsline{toc}{chapter}{#1} % add a line in the Table of Contents (first option, toc), it will be like the ones
- \renewcommand{\glossarymark}[1]{\markboth{##1}}% correct handling of page header
- \begin{latin}%
- \printglossary[type={e2p-terms},style={english-to-persian},title={\rl{#1}}]%
- \end{latin}%
- }}
-
- % Reset the first-use flag of the transaltion glossareis
- \newcommand{\resettranslations}{\glsresetall[e2p-terms,p2e-terms]}
|