-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglossaries-settings.tex
154 lines (130 loc) · 8.5 KB
/
glossaries-settings.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
%%% تنظیمات مربوط به بسته glossaries
%%% تعریف استایل برای واژه نامه فارسی به انگلیسی، در این استایل واژههای فارسی در سمت راست و واژههای انگلیسی در سمت چپ خواهند آمد. از حالت گروه بندی استفاده میکنیم،
%%% یعنی واژهها در گروههایی به ترتیب حروف الفبا مرتب میشوند، مثلا:
%%% الف
%%% افتصاد ................................... Economy
%%% اشکال ........................................ Failure
%%% ش
%%% شبکه ...................................... Network
\newglossarystyle{myFaToEn}{%
\renewenvironment{theglossary}{}{}
\renewcommand*{\glsgroupskip}{\vskip 10mm}
\renewcommand*{\glsgroupheading}[1]{\subsection*{\glsgetgrouptitle{##1}}}
\renewcommand*{\glossentry}[2]{\noindent\glsentryname{##1}\dotfill\space \glsentrytext{##1}
}
}
%% % تعریف استایل برای واژه نامه انگلیسی به فارسی، در این استایل واژههای فارسی در سمت راست و واژههای انگلیسی در سمت چپ خواهند آمد. از حالت گروه بندی استفاده میکنیم،
%% % یعنی واژهها در گروههایی به ترتیب حروف الفبا مرتب میشوند، مثلا:
%% % E
%%% Economy ............................... اقتصاد
%% % F
%% % Failure................................... اشکال
%% %N
%% % Network ................................. شبکه
\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\Glsentrylong{##1}\dotfill\space \glsentrytext{##1}
}
%%% تغییر نام محیط abbreviation به فهرست اختصارات
\renewcommand*{\acronymname}{\rl{فهرست کوتهنوشتها}}
}
%%% برای اجرا xindy بر روی فایل .tex و تولید واژهنامهها و فهرست اختصارات و فهرست نمادها یکسری فایل تعریف شده است. Latex داده های مربوط به واژه نامه و .. را در این
%%% فایلها نگهداری میکند. مهمترین option این قسمت این است که
%%% عنوان واژهنامهها و یا فهرست اختصارات و یا فهرست نمادها را میتوانید در اینجا مشخص کنید.
%%% در این جا عباراتی مثل glg، gls، glo و ... پسوند فایلهایی است که برای xindy بکار میروند.
\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}}{\lr{\oldgls{#1}}}}
\newcommand*{\@msgls}[1]{\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\glstext{#1}\glsuseri{f-#1}}{\lr{\glsentryname{#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}}{\glsentryplural{#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}}}}
%%%%%% ============================================================================================================
%%%%%
% Add by Morteza
%\usepackage{etoolbox}
%\makeatletter
%\apptocmd{\@gls@}{\shyam@index{#2}}{}{}
%\def\shyam@index#1{%
% \expandafter\expandafter\expandafter\shyam@index@aux\csname glo@#1@index\endcsname\shyam@index
%}
%\def\shyam@index@aux#1?#2\shyam@index{\index{#1}}
%\makeatother
%%%%%
%%============================ دستور برای قرار دادن فهرست اختصارات
\newcommand{\printabbreviation}{
%\cleardoublepage
%\phantomsection
\baselineskip=.75cm
%% با این دستور عنوان فهرست اختصارات به فهرست مطالب اضافه میشود.
\phantomsection
\addcontentsline{toc}{chapter}{فهرست کوتهنوشتها}
\setglossarystyle{myAbbrlist}
%\begin{LTR}
\Oldprintglossary[type=acronym]
%\end{LTR}
\clearpage
}%
\newcommand{\printacronyms}{\printabbreviation}
%%% در این جا محیط هر دو واژه نامه را باز تعریف کرده ایم، تا اولا مشکل قرار دادن صفحه اضافی را حل کنیم، ثانیا عنوان واژه نامه ها را با دستور addcontentlist وارد فهرست مطالب کرده ایم.
\let\Oldprintglossary\printglossary
\renewcommand{\printglossary}{
\let\appendix\relax
%% تنظیم کننده فاصله بین خطوط در این قسمت
\clearpage
\phantomsection
%% این دستور موجب این میشود که واژهنامهها در حالت دو ستونی نوشته شود.
\twocolumn{}
%% با این دستور عنوان واژهنامه به فهرست مطالب اضافه میشود.
\addcontentsline{toc}{chapter}{واژهنامه فـارسی به انگلیسی}
\setglossarystyle{myFaToEn}
\Oldprintglossary[type=persian]
\clearpage
%\phantomsection
%% با این دستور عنوان واژهنامه به فهرست مطالب اضافه میشود.
\addcontentsline{toc}{chapter}{واژهنامه انگلیسی به فـارسی}
\setglossarystyle{myEntoFa}
%\begin{LTR}
\Oldprintglossary[type=english]
%\end{LTR}
\onecolumn{}
}%
%%%%%%