diff options
author | Karl Berry <karl@freefriends.org> | 2009-01-14 18:49:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-01-14 18:49:06 +0000 |
commit | ae54731f22c86144ff5705f3db206fba358c04be (patch) | |
tree | 17c50cb6bab0b43cfcf93019675d7f31f4043123 /Master | |
parent | 899fb3d535cb0d801d8f1f8b528b47581e73f2f7 (diff) |
xepersian update (5jan09)
git-svn-id: svn://tug.org/texlive/trunk@11873 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
67 files changed, 6385 insertions, 1077 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xepersian/README b/Master/texmf-dist/doc/xelatex/xepersian/README index 68c9d74e0f1..07d7807c65d 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/README +++ b/Master/texmf-dist/doc/xelatex/xepersian/README @@ -1,10 +1,10 @@ ------------------------------- -The XePersian Package v0.162 +The XePersian Package v0.163 -Updates: Huge Improvements: written a new package for unicode farsi maths digits, updated the user-guide. +Updates: Huge Improvements: Almost rewritten all the macros, new functionalities have been added and lots of changes are done, written some new classes and packages. XePersian is a package written for XeLaTeX that allows users to typeset -Persian properly. The current version is 0.162 and it will be +Persian properly. The current version is 0.163 and it will be developed to meet the needs of Persian typesetting properly. In order to use XePersian without getting any problem, the users are @@ -29,8 +29,8 @@ from http://wiki.irmug.org/index.php/X_Series_2#Download_fonts and http://wiki.irmug.org/index.php/XWZar -Please report any bugs to the authors (mostafa.vahedi@gmail.com,vafa.khalighi@students.mq.edu.au,mehdioa@gmail.com). +Please report any bugs to the author (vafa.khalighi@students.mq.edu.au). ------------------------------- -FarsiLaTeX Group -2008/09/27 +Vafa Khalighi +2009/01/05 diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.pdf Binary files differdeleted file mode 100644 index b27f1474368..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.tex b/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.tex deleted file mode 100644 index 9964a2bba7f..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example1.tex +++ /dev/null @@ -1,13 +0,0 @@ -\documentclass[hyperref=xetex]{beamer} -\usepackage{xepersian} -\newfontfamily\farsifont[Script=Arabic,Scle=1.2,Mapping=parsidigits]{XB Zar} -\title{نمونه اسلاید توسط \lr{\XePersian}} -\author{وفا خلیقی} -\begin{document} -\frame{\maketitle} -\section{مقدمه} -\begin{frame} - -این یک نمونه اسلاید است که توسط \lr{\XePersian} درست شده است. -\end{frame} -\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.pdf Binary files differdeleted file mode 100644 index 17404c82399..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.tex b/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.tex deleted file mode 100644 index 5418651514a..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/beamer-example2.tex +++ /dev/null @@ -1,31 +0,0 @@ -\documentclass{beamer} -\usepackage{xepersian} -\newfontfamily\farsifont[Script=Arabic,Scle=1.2,Mapping=parsidigits]{XB Zar} -\mode<presentation> -{ -\usetheme{Warsaw} -} -\title{تهیه اسلاید توسط \lr{\XePersian}} -\author{وفا خلیقی} -\institute{نام دانشگاه} -\begin{document} -\begin{frame} - \titlepage -\end{frame} -\section{مقدمه} -\subsection{حرف اول} -\begin{frame} -\frametitle{عنوان} -متن اینجا قرار میگیرد. -\end{frame} -\section{قسمت بعدی} -\subsection{یک زیرقسمت} -\begin{frame} -\framesubtitle{عنوان متن} -متن اینجا قرار میگیرد. -\end{frame} - - -\end{document} - - diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Goettingen.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Goettingen.pdf Binary files differnew file mode 100644 index 00000000000..4f7645fbbbb --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Goettingen.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Hannover.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Hannover.pdf Binary files differnew file mode 100644 index 00000000000..0867fef3ab0 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Hannover.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Marburg.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Marburg.pdf Binary files differnew file mode 100644 index 00000000000..66ea58fa08d --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Marburg.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Montpellier.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Montpellier.pdf Binary files differnew file mode 100644 index 00000000000..1fc478cf951 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Montpellier.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-PaloAlto.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-PaloAlto.pdf Binary files differnew file mode 100644 index 00000000000..6c05f4697dc --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-PaloAlto.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Pittsburgh.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Pittsburgh.pdf Binary files differnew file mode 100644 index 00000000000..f20c315696a --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Pittsburgh.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Szeged.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Szeged.pdf Binary files differnew file mode 100644 index 00000000000..4f46519ac37 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-Szeged.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-malmoe.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-malmoe.pdf Binary files differnew file mode 100644 index 00000000000..ed56a8d3cab --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-malmoe.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-singapore.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-singapore.pdf Binary files differnew file mode 100644 index 00000000000..b9d27f7541b --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-singapore.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-warsaw.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-warsaw.pdf Binary files differnew file mode 100644 index 00000000000..53992b095c9 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-warsaw.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.pdf Binary files differnew file mode 100644 index 00000000000..22929001e7a --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.tex b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.tex new file mode 100644 index 00000000000..f8cc07f7fa4 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample-xepersian-JLTree.tex @@ -0,0 +1,88 @@ +\documentclass{beamer} +\usetheme{xepersian-JLTree} +\usepackage{xepersian} +\settextfont[Scale=1]{XB Zar} +\setromantextfont[Scale=1]{Linux Libertine} +\AtBeginDocument{\setdigitfont[Scale=1]{XB Zar}} +\title{عنوان اسلاید} +\subtitle{این یک زیرعنوان است} +\author{وفا خلیقی} +\institute{دانشگاه تهران} +\AtBeginSubsection[] +{ + \begin{frame}<beamer> + \frametitle{فهرست مطالب} + \tableofcontents[currentsection] + \end{frame} +} +\begin{document} +\begin{frame} +\titlepage +\end{frame} +\section{کتابنامه} +\begin{frame}{کتابنامه} +[۱] دیوان حافظ +\end{frame} +\section{قضیههای ریاضی} +\begin{frame}{این یک عنوان است} +\framesubtitle{این زیرعنوان است} +\begin{مثال} +در این مثال به برسی توابعی خواهیم پرداخت که برای ما قابل استفاده هستند: +\begin{equation} +(x-y)^2=x^2-2xy+y^2 +\end{equation} +\end{مثال} +\begin{پاسخ} +این یک پاسخ است +\end{پاسخ} + +\end{frame} +\section{ادامه عنوان قبلی} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{قضیه} +این یک قضیه است. +\end{قضیه} +\begin{اثبات} +این یک اثبات است +\end{اثبات} +\begin{نتیجه} +این یک نتیجه است +\end{نتیجه} +\end{frame} +\section{شروع مبحثی دیگر} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{لما} +این یک لما است +\end{لما} +\begin{تعریف} +این یک تعریف است +\end{تعریف} +\begin{تعریفها} +این محیط مخصوص بیشتر از یک تعریف است +\end{تعریفها} +\end{frame} +\section{نتیجهگیری نهائی} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{بلوک}{محیط بلوک} +این محیط بلوک است +\end{بلوک} +\begin{بلوکمثال}{محیط بلوک مثال} +این محیط بلوک مثال است +\end{بلوکمثال} +\begin{بلوکهشدار}{محیط بلوک هشدار} +این محیط بلوک هشدار است. +\end{بلوکهشدار} +\end{frame} +\section{مقداری متن معمولی} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +این هم مقداری متن معمولی مینویسم تا بتوانم به خط بعدی بروم و ببینم که آیا واقعاً \lr{beamer} دست از لجاجت برمیدارد یا نه +\begin{roman} +This is an English paragraph that I am writing here to see what happens after this, will I get a new bug or I am lucky enough? +\end{roman} +این دوباره متنی است فارسی که من آن را مینویسم و هنوز در حال آزمایش هستم تا بتوانم به خط بعدی بروم و نتیجه را مشاهده کنم. +\end{frame} +\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.pdf b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.pdf Binary files differnew file mode 100644 index 00000000000..b88b3240eb3 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.tex b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.tex new file mode 100644 index 00000000000..270b23bbc3c --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/beamer-sample.tex @@ -0,0 +1,82 @@ +\documentclass{beamer} +\usetheme{Warsaw} +\usepackage{xepersian} +\settextfont[Scale=1]{XB Zar} +\setromantextfont[Scale=1]{Linux Libertine} +\AtBeginDocument{\setdigitfont[Scale=1]{XB Zar}} +\title{عنوان اسلاید} +\subtitle{این یک زیرعنوان است} +\author{وفا خلیقی} +\institute{دانشگاه تهران} +\begin{document} +\begin{frame} +\titlepage +\end{frame} + + +\begin{frame}{این یک عنوان است} +\framesubtitle{این زیرعنوان است} +\begin{مثال} +در این مثال به برسی توابعی خواهیم پرداخت که برای ما قابل استفاده هستند: +\begin{equation} +(x-y)^2=x^2-2xy+y^2 +\end{equation} +\end{مثال} +\begin{پاسخ} +این یک پاسخ است +\end{پاسخ} +\begin{مسئله} +این یک مسئله است. +\end{مسئله} +\end{frame} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{قضیه} +این یک قضیه است. +\end{قضیه} +\begin{اثبات} +این یک اثبات است +\end{اثبات} +\begin{نتیجه} +این یک نتیجه است +\end{نتیجه} +\begin{حقیقت} +این یک حقیقت است +\end{حقیقت} +\end{frame} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{لما} +این یک لما است +\end{لما} +\begin{تعریف} +این یک تعریف است +\end{تعریف} +\begin{تعریفها} +این محیط مخصوص بیشتر از یک تعریف است +\end{تعریفها} +\begin{مثالها} +این محیط مخصوص بیشتر از یک مثال است. +\end{مثالها} +\end{frame} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +\begin{بلوک}{محیط بلوک} +این محیط بلوک است +\end{بلوک} +\begin{بلوکمثال}{محیط بلوک مثال} +این محیط بلوک مثال است +\end{بلوکمثال} +\begin{بلوکهشدار}{محیط بلوک هشدار} +این محیط بلوک هشدار است. +\end{بلوکهشدار} +\end{frame} +\begin{frame}{ادامهّ عنوان قبلی} +\framesubtitle{ادامهٔ زیرعنوان قبلی} +این هم مقداری متن معمولی مینویسم تا بتوانم به خط بعدی بروم و ببینم که آیا واقعاً \lr{beamer} دست از لجاجت برمیدارد یا نه +\begin{roman} +This is an English paragraph that I am writing here to see what happens after this, will I get a new bug or I am lucky enough? +\end{roman} +این دوباره متنی است فارسی که من آن را مینویسم و هنوز در حال آزمایش هستم تا بتوانم به خط بعدی بروم و نتیجه را مشاهده کنم. +\end{frame} +\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/clouds.jpg b/Master/texmf-dist/doc/xelatex/xepersian/clouds.jpg Binary files differnew file mode 100644 index 00000000000..b4073a07231 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/clouds.jpg diff --git a/Master/texmf-dist/doc/xelatex/xepersian/ftun-0.1.py b/Master/texmf-dist/doc/xelatex/xepersian/ftun-0.1.py new file mode 100644 index 00000000000..6d53ef6adfa --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/ftun-0.1.py @@ -0,0 +1,430 @@ +######################################### +# General Public License # +# Author: Mostafa Vahedi # +# Date: 3 Mar. 2008 # +# Version 0.1 # +######################################### + +import codecs + +import sys + + +ft_numerical = [ +chr(0xB9), # Arabic Thoushads Seperator +chr(0xBC) # ARABIC DECIMAL SEPARATOR +] + + +ft_vowels = [ +chr(0xB0), # ARABIC FATHA +chr(0xB1), # ARABIC KASRA +chr(0xB2), # ARABIC DAMMA +chr(0xB3), # ARABIC FATHATAN +chr(0xB4), # ARABIC SHADDA +chr(0xBA), # ARABIC LETTER SUPERSCRIPT ALEF +chr(0xBB), # ARABIC HAMZA ABOVE +chr(0xC4) # ARABIC SUKUN +] + +ft_non_joiners = [ +chr(0x8F) # ARABIC LETTER HAMZA +] + +ft_bidi_joiners_initial = [ +chr(0xE4), # ARABIC LETTER AIN, initial form +chr(0xE8), # ARABIC LETTER GHAIN, initial form +chr(0xFB) # ARABIC LETTER HEH, initial form +] + +ft_bidi_joiners_medial = [ +chr(0xE3), # ARABIC LETTER AIN, medial form +chr(0xE7), # ARABIC LETTER GHAIN, medial form +chr(0xFA) # ARABIC LETTER HEH, medial form +] + +ft_bidi_joiners_final = [ +chr(0xE2), # ARABIC LETTER AIN, final form +chr(0xE6), # ARABIC LETTER GHAIN, final form +chr(0xFC) # ARABIC LETTER FARSI YEH, final form +] + +ft_bidi_joiners_isolated = [ +chr(0xE1), # ARABIC LETTER AIN, isolated form +chr(0xE5), # ARABIC LETTER GHAIN, isolated form +chr(0xFD) # ARABIC LETTER FARSI YEH, isolated form +] + +ft_bidi_joiners_initial_medial = [ +chr(0x8B), # ARABIC TATWEEL +chr(0x8E), # ARABIC LETTER YEH WITH HAMZA ABOVE, initial-medial form +chr(0x93), # ARABIC LETTER BEH, initial-medial form +chr(0x95), # ARABIC LETTER PEH, initial-medial form +chr(0x97), # ARABIC LETTER TEH, initial-medial form +chr(0x99), # ARABIC LETTER THEH, initial-medial form +chr(0x9B), # ARABIC LETTER JEEM, initial-medial form +chr(0x9D), # ARABIC LETTER TCHEH, initial-medial form +chr(0x9F), # ARABIC LETTER HAH, initial-medial form +chr(0xA1), # ARABIC LETTER KHAH, initial-medial form +chr(0xA8), # ARABIC LETTER SEEN, initial-medial form +chr(0xAA), # ARABIC LETTER SHEEN, initial-medial form +chr(0xAC), # ARABIC LETTER SAD, initial-medial form +chr(0xAE), # ARABIC LETTER DAD, initial-medial form +chr(0xAF), # ARABIC LETTER TAH, initial-medial form +chr(0xE0), # ARABIC LETTER ZAH, initial-medial form +chr(0xEA), # ARABIC LETTER FEH, initial-medial form +chr(0xEC), # ARABIC LETTER QAF, initial-medial form +chr(0xEE), # ARABIC LETTER KEHEH, initial-medial form +chr(0xF0), # ARABIC LETTER GAF, initial-medial form +chr(0xF3), # ARABIC LETTER LAM, initial-medial form +chr(0xF5), # ARABIC LETTER MEEM, initial-medial form +chr(0xF7), # ARABIC LETTER NOON, initial-medial form +chr(0xFE) # ARABIC LETTER FARSI YEH, initial-medial form +] + +ft_bidi_joiners_final_isolated = [ +chr(0x92), # ARABIC LETTER BEH, final-isolated form +chr(0x94), # ARABIC LETTER PEH, final-isolated form +chr(0x96), # ARABIC LETTER TEH, final-isolated form +chr(0x98), # ARABIC LETTER THEH, final-isolated form +chr(0x9A), # ARABIC LETTER JEEM, final-isolated form +chr(0x9C), # ARABIC LETTER TCHEH, final-isolated form +chr(0x9E), # ARABIC LETTER HAH, final-isolated form +chr(0xA0), # ARABIC LETTER KHAH, final-isolated form +chr(0xA7), # ARABIC LETTER SEEN, final-isolated form +chr(0xA9), # ARABIC LETTER SHEEN, final-isolated form +chr(0xAB), # ARABIC LETTER SAD, final-isolated form +chr(0xAD), # ARABIC LETTER DAD, final-isolated form +chr(0xC1), # ARABIC LETTER TAH, final-isolated form +chr(0xC2), # ARABIC LETTER ZAH, final-isolated form +chr(0xE9), # ARABIC LETTER FEH, final-isolated form +chr(0xEB), # ARABIC LETTER QAF, final-isolated form +chr(0xED), # ARABIC LETTER KEHEH, final-isolated form +chr(0xEF), # ARABIC LETTER GAF, final-isolated form +chr(0xF1), # ARABIC LETTER LAM, final-isolated form +chr(0xF4), # ARABIC LETTER MEEM, final-isolated form +chr(0xF6), # ARABIC LETTER NOON, final-isolated form +chr(0xF9) # ARABIC LETTER HEH, final-isolated form +] + +ft_right_joiners_final = [ +chr(0x91) # ARABIC LETTER ALEF, final form +] + +ft_right_joiners_isolated = [ +chr(0x8D), # ARABIC LETTER ALEF WITH MADDA ABOVE, isolated form +chr(0x90) # ARABIC LETTER ALEF, isolated form +] + +ft_right_joiners_final_isolated = [ +chr(0xA2), # ARABIC LETTER DAL +chr(0xA3), # ARABIC LETTER THAL +chr(0xA4), # ARABIC LETTER REH +chr(0xA5), # ARABIC LETTER ZAIN +chr(0xA6), # ARABIC LETTER JEH +chr(0xBF), # ARABIC LETTER TEH MARBUTAH +chr(0xF2), # ARABIC LIGATURE LAM WITH ALEF +chr(0xF8) # ARABIC LETTER WAW +] + + +table_FT_UN = { +chr(0x80) : [u'\u06F0'], # EXTENDED ARABIC-INDIC DIGIT ZERO +chr(0x81) : [u'\u06F1'], # EXTENDED ARABIC-INDIC DIGIT ONE +chr(0x82) : [u'\u06F2'], # EXTENDED ARABIC-INDIC DIGIT TWO +chr(0x83) : [u'\u06F3'], # EXTENDED ARABIC-INDIC DIGIT THREE +chr(0x84) : [u'\u06F4'], # EXTENDED ARABIC-INDIC DIGIT FOUR +chr(0x85) : [u'\u06F5'], # EXTENDED ARABIC-INDIC DIGIT FIVE +chr(0x86) : [u'\u06F6'], # EXTENDED ARABIC-INDIC DIGIT SIX +chr(0x87) : [u'\u06F7'], # EXTENDED ARABIC-INDIC DIGIT SEVEN +chr(0x88) : [u'\u06F8'], # EXTENDED ARABIC-INDIC DIGIT EIGHT +chr(0x89) : [u'\u06F9'], # EXTENDED ARABIC-INDIC DIGIT NINE +chr(0x8A) : [u'\u060C'], # ARABIC COMMA +chr(0x8B) : [u'\u0640'], # ARABIC TATWEEL +chr(0x8C) : [u'\u061F'], # ARABIC QUESTION MARK +chr(0x8D) : [u'\u0622'], # ARABIC LETTER ALEF WITH MADDA ABOVE, isolated form +chr(0x8E) : [u'\u0626'], # ARABIC LETTER YEH WITH HAMZA ABOVE, initial-medial form +chr(0x8F) : [u'\u0621'], # ARABIC LETTER HAMZA +chr(0x90) : [u'\u0627'], # ARABIC LETTER ALEF, isolated form +chr(0x91) : [u'\u0627'], # ARABIC LETTER ALEF, final form +chr(0x92) : [u'\u0628'], # ARABIC LETTER BEH, final-isolated form +chr(0x93) : [u'\u0628'], # ARABIC LETTER BEH, initial-medial form +chr(0x94) : [u'\u067E'], # ARABIC LETTER PEH, final-isolated form +chr(0x95) : [u'\u067E'], # ARABIC LETTER PEH, initial-medial form +chr(0x96) : [u'\u062A'], # ARABIC LETTER TEH, final-isolated form +chr(0x97) : [u'\u062A'], # ARABIC LETTER TEH, initial-medial form +chr(0x98) : [u'\u062B'], # ARABIC LETTER THEH, final-isolated form +chr(0x99) : [u'\u062B'], # ARABIC LETTER THEH, initial-medial form +chr(0x9A) : [u'\u062C'], # ARABIC LETTER JEEM, final-isolated form +chr(0x9B) : [u'\u062C'], # ARABIC LETTER JEEM, initial-medial form +chr(0x9C) : [u'\u0686'], # ARABIC LETTER TCHEH, final-isolated form +chr(0x9D) : [u'\u0686'], # ARABIC LETTER TCHEH, initial-medial form +chr(0x9E) : [u'\u062D'], # ARABIC LETTER HAH, final-isolated form +chr(0x9F) : [u'\u062D'], # ARABIC LETTER HAH, initial-medial form +chr(0xA0) : [u'\u062E'], # ARABIC LETTER KHAH, final-isolated form +chr(0xA1) : [u'\u062E'], # ARABIC LETTER KHAH, initial-medial form +chr(0xA2) : [u'\u062F'], # ARABIC LETTER DAL +chr(0xA3) : [u'\u0630'], # ARABIC LETTER THAL +chr(0xA4) : [u'\u0631'], # ARABIC LETTER REH +chr(0xA5) : [u'\u0632'], # ARABIC LETTER ZAIN +chr(0xA6) : [u'\u0698'], # ARABIC LETTER JEH +chr(0xA7) : [u'\u0633'], # ARABIC LETTER SEEN, final-isolated form +chr(0xA8) : [u'\u0633'], # ARABIC LETTER SEEN, initial-medial form +chr(0xA9) : [u'\u0634'], # ARABIC LETTER SHEEN, final-isolated form +chr(0xAA) : [u'\u0634'], # ARABIC LETTER SHEEN, initial-medial form +chr(0xAB) : [u'\u0635'], # ARABIC LETTER SAD, final-isolated form +chr(0xAC) : [u'\u0635'], # ARABIC LETTER SAD, initial-medial form +chr(0xAD) : [u'\u0636'], # ARABIC LETTER DAD, final-isolated form +chr(0xAE) : [u'\u0636'], # ARABIC LETTER DAD, initial-medial form +chr(0xAF) : [u'\u0637'], # ARABIC LETTER TAH, initial-medial form +chr(0xB0) : [u'\u064E'], # ARABIC FATHA +chr(0xB1) : [u'\u0650'], # ARABIC KASRA +chr(0xB2) : [u'\u064F'], # ARABIC DAMMA +chr(0xB3) : [u'\u064B'], # ARABIC FATHATAN +chr(0xB4) : [u'\u0651'], # ARABIC SHADDA +chr(0xB5) : [u'\u0023'], # * # +chr(0xB6) : [u'\u0024'], # * $ +chr(0xB7) : [u'\u0025'], # * % +chr(0xB8) : [u'\u0026'], # * & +chr(0xB9) : [u'\u066C'], # Arabic Thoushads Seperator +chr(0xBA) : [u'\u0670'], # ARABIC LETTER SUPERSCRIPT ALEF +chr(0xBB) : [u'\u0654'], # ARABIC HAMZA ABOVE +chr(0xBC) : [u'\u066B'], # ARABIC DECIMAL SEPARATOR +chr(0xBD) : [u'\u0029'], # * RIGHT PARENTHESIS +chr(0xBE) : [u'\u0028'], # * LEFT PARENTHESIS +chr(0xBF) : [u'\u0629'], # ARABIC LETTER TEH MARBUTAH +chr(0xC0) : [u'\u00BB'], # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +chr(0xC1) : [u'\u0637'], # ARABIC LETTER TAH, final-isolated form +chr(0xC2) : [u'\u0638'], # ARABIC LETTER ZAH, final-isolated form +chr(0xC3) : [u'\u00AB'], # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +chr(0xC4) : [u'\u0652'], # ARABIC SUKUN +chr(0xC5) : [u'\u002D'], # * - +chr(0xC6) : [u'\u002E'], # * FULL STOP +chr(0xC7) : [u'\u002F'], # * / +chr(0xC8) : [u'\u002A'], # * * +chr(0xC9) : [u'\u007E'], # * ~ +chr(0xCA) : [u'\u003A'], # * COLON +chr(0xCB) : [u'\u061B'], # ARABIC SEMICOLON +chr(0xCC) : [u'\u003E'], # * GREATER-THAN SIGN +chr(0xCD) : [u'\u002B'], # * + +chr(0xCE) : [u'\u003D'], # * = +chr(0xCF) : [u'\u003C'], # * LESS-THAN SIGN +chr(0xD0) : [u'\u0040'], # * @ +chr(0xD1) : [u'\u005D'], # * [ +chr(0xD2) : [u'\u005C'], # * \ +chr(0xD3) : [u'\u005B'], # * ] +chr(0xD4) : [u'\u005E'], # * ^ +chr(0xD5) : [u'\u005F'], # * _ +chr(0xD6) : [u'\u0060'], # * ` +chr(0xD7) : [u'\u007D'], # * { +chr(0xD8) : [u'\u007C'], # * | +chr(0xDA) : [u'\u0020'], # * SPACE +chr(0xDD) : [u'\u0021'], # * EXCLAMATION MARK +chr(0xDE) : [u'\u007B'], # * } +chr(0xE0) : [u'\u0638'], # ARABIC LETTER ZAH, initial-medial form +chr(0xE1) : [u'\u0639'], # ARABIC LETTER AIN, isolated form +chr(0xE2) : [u'\u0639'], # ARABIC LETTER AIN, final form +chr(0xE3) : [u'\u0639'], # ARABIC LETTER AIN, medial form +chr(0xE4) : [u'\u0639'], # ARABIC LETTER AIN, initial form +chr(0xE5) : [u'\u063A'], # ARABIC LETTER GHAIN, isolated form +chr(0xE6) : [u'\u063A'], # ARABIC LETTER GHAIN, final form +chr(0xE7) : [u'\u063A'], # ARABIC LETTER GHAIN, medial form +chr(0xE8) : [u'\u063A'], # ARABIC LETTER GHAIN, initial form +chr(0xE9) : [u'\u0641'], # ARABIC LETTER FEH, final-isolated form +chr(0xEA) : [u'\u0641'], # ARABIC LETTER FEH, initial-medial form +chr(0xEB) : [u'\u0642'], # ARABIC LETTER QAF, final-isolated form +chr(0xEC) : [u'\u0642'], # ARABIC LETTER QAF, initial-medial form +chr(0xED) : [u'\u06A9'], # ARABIC LETTER KEHEH, final-isolated form +chr(0xEE) : [u'\u06A9'], # ARABIC LETTER KEHEH, initial-medial form +chr(0xEF) : [u'\u06AF'], # ARABIC LETTER GAF, final-isolated form +chr(0xF0) : [u'\u06AF'], # ARABIC LETTER GAF, initial-medial form +chr(0xF1) : [u'\u0644'], # ARABIC LETTER LAM, final-isolated form +chr(0xF2) : [u'\u0644\u0627'], # ARABIC LIGATURE LAM WITH ALEF +chr(0xF3) : [u'\u0644'], # ARABIC LETTER LAM, initial-medial form +chr(0xF4) : [u'\u0645'], # ARABIC LETTER MEEM, final-isolated form +chr(0xF5) : [u'\u0645'], # ARABIC LETTER MEEM, initial-medial form +chr(0xF6) : [u'\u0646'], # ARABIC LETTER NOON, final-isolated form +chr(0xF7) : [u'\u0646'], # ARABIC LETTER NOON, initial-medial form +chr(0xF8) : [u'\u0648'], # ARABIC LETTER WAW +chr(0xF9) : [u'\u0647'], # ARABIC LETTER HEH, final-isolated form +chr(0xFA) : [u'\u0647'], # ARABIC LETTER HEH, medial form +chr(0xFB) : [u'\u0647'], # ARABIC LETTER HEH, initial form +chr(0xFC) : [u'\u06CC'], # ARABIC LETTER FARSI YEH, final form +chr(0xFD) : [u'\u06CC'], # ARABIC LETTER FARSI YEH, isolated form +chr(0xFE) : [u'\u06CC'] # ARABIC LETTER FARSI YEH, initial-medial form +} + + +def ft_is_numeric(ch): + if ((ch in ft_numerical) or + ((ch >= chr(0x80)) and (ch <= chr(0x89))) ): + return 1 + return 0 + +def ft_can_join_left(ch): + if ((ch in ft_bidi_joiners_initial) or + (ch in ft_bidi_joiners_medial) or + (ch in ft_bidi_joiners_final) or + (ch in ft_bidi_joiners_isolated) or + (ch in ft_bidi_joiners_initial_medial) or + (ch in ft_bidi_joiners_final_isolated)): + return 1 + return 0 + +def ft_can_join_right(ch): + if (ft_can_join_left(ch) or + (ch in ft_right_joiners_final) or + (ch in ft_right_joiners_isolated) or + (ch in ft_right_joiners_final_isolated)): + return 1 + return 0 + +def ft_joining_left(ch): + if ((ch in ft_bidi_joiners_initial) or + (ch in ft_bidi_joiners_medial) or + (ch in ft_bidi_joiners_initial_medial)): + return 1 + return 0 + + +def ft_joining_right(ch): + if ((ch in ft_right_joiners_final) or + (ch in ft_bidi_joiners_medial) or + (ch in ft_bidi_joiners_final)): + return 1 + return 0 + +def ft_not_right_joined(ch): + if ((ch in ft_bidi_joiners_initial) or + (ch in ft_right_joiners_isolated) or + (ch in ft_bidi_joiners_isolated)): + return 1 + return 0 + +def ft_adjust_shaping(text, i): + current = text[i] + u = u'' + try: + u = table_FT_UN[current][0] + except KeyError: + return u'' + + #if you don't want shaping remove the following comment + #return u + + if ((current in ft_vowels) or (ft_is_numeric(current))): + return u + + #find next non-vowel character on the left + text_len = len(text) + next_index = i+1 + while ((next_index < text_len) and (text[next_index] in ft_vowels)): + next_index += 1 + + if (next_index == text_len): + next = '' + else: + next = text[next_index] + + # if current letter is joining from left but next letter is or can not joining + if (ft_joining_left(current)): + if (not ft_can_join_right(next)): + u += u'\u200D' #ZWJ + elif (ft_not_right_joined(next)): + u += u'\u200D\u200C' #ZWJ+ZWNJ + # if current letter can join but next letter is joining from right + elif (ft_can_join_left(current)): + if (ft_joining_right(next)): + u += u'\u200C\u200D' #ZWNJ+ZWJ + elif (ft_can_join_right(next)): + u += u'\u200C' #ZWNJ + return u + +def ft_adjust_number(text): + result = u'' + i = len(text)-1 + while (i >= 0): + result += ft_adjust_shaping(text, i) + i -= 1 + return result + + +def map_ft_unicode(text): + mapped_text = u'' + + i = 0 + while (i < len(text)): + if (ft_is_numeric(text[i])): + next_index = i + while ((next_index+1 < len(text)) and + (ft_is_numeric(text[next_index+1]))): + next_index += 1 + mapped_text += ft_adjust_number(text[i:next_index+1]) + i = next_index+1 + continue + + mapped_text += ft_adjust_shaping(text, i) + i += 1 + return mapped_text + +def ft_next_part(line, i): + j = i + language_flag = (line[j]<chr(0x80)) + while ((j<line_len) and ((line[j]<chr(0x80)) == language_flag) ): + j += 1 + return j + +# Main body of the program +if len(sys.argv) <= 2: + print 'usage: python undk in_filename out_filename' + exit(0) + +filename = sys.argv[1] +outfile = sys.argv[2] + +try: + f = open(filename, 'r') +except IOError: + print "Can not open the input file: " + filename + exit(0) + +try: + of = codecs.open(outfile, encoding='utf-8', mode='w') +except IOError: + print "Can not open the output file: " + outfile + exit(0) + +line_number = 0 +for line in f: + line_number += 1 + output_line = u'' + line_len = len(line) + + line_direction_rtl = 1 + if line[0] == '>': + line_direction_rtl = 0 + elif line[0] != '<': + print "FORMAT ERROR AT LINE: " + str(line_number) + exit(0) + + i = 1 + + while (i<line_len): + next_part_index = ft_next_part(line, i) + next_part = line[i:next_part_index] + next_part_latin = (line[i]<chr(0x80)) + + if next_part_latin: + output_line += next_part.encode( 'utf-8' ) + else: + output_line += map_ft_unicode(next_part) + i = next_part_index + # end of while + + # write the processed line + of.write(output_line) + # end of line processing +# end of file processing + +of.close() +f.close() diff --git a/Master/texmf-dist/doc/xelatex/xepersian/gradient1.png b/Master/texmf-dist/doc/xelatex/xepersian/gradient1.png Binary files differnew file mode 100644 index 00000000000..02cff8d380a --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/gradient1.png diff --git a/Master/texmf-dist/doc/xelatex/xepersian/gradient2.png b/Master/texmf-dist/doc/xelatex/xepersian/gradient2.png Binary files differnew file mode 100644 index 00000000000..e6db39cf0c1 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/gradient2.png diff --git a/Master/texmf-dist/doc/xelatex/xepersian/iran.jpg b/Master/texmf-dist/doc/xelatex/xepersian/iran.jpg Binary files differnew file mode 100644 index 00000000000..7ab38904137 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/iran.jpg diff --git a/Master/texmf-dist/doc/xelatex/xepersian/ireland.jpg b/Master/texmf-dist/doc/xelatex/xepersian/ireland.jpg Binary files differnew file mode 100644 index 00000000000..bacd5b97700 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/ireland.jpg diff --git a/Master/texmf-dist/doc/xelatex/xepersian/logo.pdf b/Master/texmf-dist/doc/xelatex/xepersian/logo.pdf Binary files differnew file mode 100644 index 00000000000..1363dc199a9 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/logo.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.pdf b/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.pdf Binary files differnew file mode 100644 index 00000000000..05deac3a84e --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.tex b/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.tex new file mode 100644 index 00000000000..5197b86757f --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/magazine-sample.tex @@ -0,0 +1,178 @@ +\documentclass[12pt,twoside]{xepersian-magazine} +\usepackage{xepersian} +\settextfont[Scale=1]{XB Zar} +\setromantextfont[Scale=1]{Junicode} +\setdigitfont{XB Zar} +\pagestyle{fancy} +\title{مجلهٔ زیپرشین} +\author{وفا خلیقی} +\edition{جلد اول} +\customlogo{مجلهٔ زیپرشین} +\customminilogo{مجلهٔ زیپرشین} +\custommagazinename{مجلهٔ زیپرشین} +\customwwwTxt{http://parsilatex.org} +\begin{document} +\begin{frontpage} +\firstimage{img/ireland.jpg}{این زیرنویس تصویر اصلی در صفحهٔ اول است.} +\firstarticle{این تیتر مقالهٔ اول است.} + {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی میتوانیم زمان را هم درج کنیم که در سمت راست قرار میگیرد.}% + {۱۲:۳۴} +\secondarticle{این هم سر تیتر مقالهٔ دوم است.}% + {این هم زیر تیتر مقالهٔ دوم است که آن را در اینجا مینویسیم.}% + {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی میتوانیم زمان را هم درج کنیم که در سمت راست قرار میگیرد.}% + {قسمت الف}% + {۱۰:۲۳} + +\thirdarticle{این سرتیتر مقالهٔ سوم است.}% + {این هم زیرتیتر مقالهٔ سوم است که ما آن را در اینجا قرار میدهیم.}% + {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی میتوانیم زمان را هم درج کنیم که در سمت راست قرار میگیرد. و همانطور که میبینید من مطلبی برای گفتن ندارم فقط متن علکی مینویسم تا کمی صفحه را پر کرده باشم. اما در قسمتهای بعدی مقداری از سهراب سپهری خواهم نوشت.}% + + {قسمت ب}% + {۱۰:۰۲} + +\begin{indexblock}{نمایه (فهرست مطالب) اصلی} +\indexitem{۱- مقاله اول}{1} + +\indexitem{۲- مقاله دوم}{3} + +\indexitem{۳- مقاله سوم}{3} + +\indexitem{۴- مقاله چهارم}{5} +\end{indexblock} + +\begin{weatherblock}{وضع آب و هوا} +\weatheritem{img/weather/rain.jpg}{امروز}{13}{9}{} +\weatheritem{img/weather/sun.jpg}{فردا}{15}{1}{} +\weatheritem{img/weather/clouds.jpg}{جمعه}{12}{6}{} +\end{weatherblock} + + +\begin{authorblock} +\textbf{ویرایشگران} + +وفا خلیقی، مهدی امیدعلی و مصطفی واحدی + +\texttt{vafa@aol.com.au\\[5pt] +http://parsilatex.org}\\ +\end{authorblock} +\end{frontpage} +\newsection{قسمت الف} +\begin{article}{2} + {این تیتر این مقاله است.} + {این هم زیرتیتر این مقاله هست.} + {قسمت الف} + {1} +\authorandplace{نام نویسنده}{مکان} + + + + +\noindent\timestamp{۸:۲۵} +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. +\footnote{این یک زیرنویس فارسی است.}\Footnote{This is an English footnote.} +\begin{equation} +(a+b)^3=a^3+3a^2b+3ab^2+b^3\label{eq-1} +\end{equation} +این معادلهٔ \eqref{eq-1} است. +\columntitle{lines}{این را برای مهم یا نشان دادن حرفی مهم در این مجله انجام میدهیم.} + +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. +\end{article} + +\articlesep + +\begin{article}{2} + {این تیتر این مقاله است.} + {این هم زیرتیتر این مقاله هست.} + {قسمت الف} + {1} +\authorandplace{نام نویسنده}{مکان} + +\noindent\timestamp{08:25} +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. +\Footnote{This is an English footnote.}\footnote{این یک زیرنویس فارسی است.} +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. + +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. + +\expandedtitle{doublebox}{این هم مطلی است مهم یا چیزی که از خلاصهٔ این مقاله ما متوجه شدهایم و این برای ما و خوانندگان خیلی مهم است.} + +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. +\end{article} + +\articlesep + +\newsection{قسمت ب} + + +\begin{article}{2} + {این یک تیتر کوتاه است.وفا خلیقی} + {این هم مثل همیشه زیرتیتر است که ما آن را در اینجا قرار میدهیم.} + {قسمت ب} + {3} + +\authorandplace{نام نویسنده}{مکان} + + + +\noindent\timestamp{08:25} et ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. + +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. + +\expandedtitle{lines}{این هم دوباره مطلب مهمی است که ما آن را از لابلای این مقاله برای خواننده درست کردهایم.} + +ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. +\end{article} + +\articlesep + + +\begin{editorial}{1}{این یک مثال از مقالهای از طرف ویرایشگر است.}{نام و نام خانوادگی}{4} +يژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند. + +اما معماری همتابههمتا ويژگیهای ديگری نيز دارد که آن را هم برای فراهمکنندگان کاربردها و هم برای استفادهکنندگان جذابتر میکند. از آنجا که شبکههای همتابههمتا از همان زيرساختهای اينترنت استفاده میکنند ونيازی به راهاندازی سرورها ندارند، ساخت اين شبكهها بسيار ارزانتر از ايجاد زير ساختهای لازم برای راهاندازی شبكههای مشتری/خدمتگزار است. همچنين با زياد شدن تعداد کاربران چون درعمل تعداد گرههای ارائه کنندهی خدمات هم بالا میرود، نه تنها عملكرد شبكه افت پيدا نمیكند بلكه انتظار بهبود عملکرد نيز میرود. گذشته از اين موارد، مالكيت اين شبكهها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمیتواند سياستهای دلخواه خود را در اين نوع شبكهها اعمال کند. + +اماهيچ چيزی بی بها به دست نمیآید. نبود سرور مرکزی اگر چه ويژگیهای جذابی به شبکههای همتابههمتا میبخشد اما از طرف ديگر آنها را با دشواریهايی نيز روبهرو میکند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل میکند. از يک طرف، تغيير و رفتوآمد زیاد کاربران از ويژگیهای ذاتی اين شبکهها است و از طرف ديگر در اين شبكهها، ديگر اين گرههای معمولی هستند كه عهدهدار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكهها، مقابله با تغييرات لحظهای و فراهم آوردن ثبات در ارائه خدمات در بستری از بیثباتی است. +\end{editorial} + +\articlesep + + +\begin{shortarticle}{4}{محیط مقالهٔ کوتاه}{محیط مقالهٔ کوتاه داخل مجلهٔ زیپرشین}{5} +\shortarticleitem{این یک تیتر کوتاه است}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آنها در مقابل معماری قبلی شبكهها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گرهها است. در واقع در اين نوع شبكهها اثری از سرورها نيست و تمامی گرههای معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهدهی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گرههای معمولی در ضمن اينکه از خدمات شبکه بهرهمند میشود بايد نقش خدمتگزار را هم ايفا کنند . در اين نوع شبکهها گرههای معمولی به كمك روشها و پروتكلهای توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كنندهها و همچنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.} +\end{shortarticle} + +\articlesep + +\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad0.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad0.PNG Binary files differdeleted file mode 100644 index b8058e379d7..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/notepad0.PNG +++ /dev/null diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad1.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad1.PNG Binary files differindex 09cd1992404..fa4280a0541 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/notepad1.PNG +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad1.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad2.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad2.PNG Binary files differindex 296bf2b7e4d..2ca989ee4c6 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/notepad2.PNG +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad2.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad3.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad3.PNG Binary files differindex be72edccb8a..4caff0cd76f 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/notepad3.PNG +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad3.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad4.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad4.PNG Binary files differindex 95cf788b955..93eee3981c3 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/notepad4.PNG +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad4.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad5.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad5.PNG Binary files differnew file mode 100644 index 00000000000..966cbd4c731 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad5.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad6.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad6.PNG Binary files differnew file mode 100644 index 00000000000..117aa7e25ec --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad6.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad7.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad7.PNG Binary files differnew file mode 100644 index 00000000000..edd4d880f0c --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad7.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad8.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad8.PNG Binary files differnew file mode 100644 index 00000000000..af28f12a113 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad8.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/notepad9.PNG b/Master/texmf-dist/doc/xelatex/xepersian/notepad9.PNG Binary files differnew file mode 100644 index 00000000000..6d252b5f2bc --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/notepad9.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/farsi.xdy b/Master/texmf-dist/doc/xelatex/xepersian/persian.xdy index 548d939286d..548d939286d 100644 --- a/Master/texmf-dist/doc/xelatex/xepersian/farsi.xdy +++ b/Master/texmf-dist/doc/xelatex/xepersian/persian.xdy diff --git a/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.pdf b/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.pdf Binary files differnew file mode 100644 index 00000000000..756b9b0aac7 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.tex b/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.tex new file mode 100644 index 00000000000..9632d6ba3e7 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/presentation-sample.tex @@ -0,0 +1,53 @@ +\documentclass[12pt,twoside]{xepersian-presentation} +\usepackage{eso-pic} +\usepackage{xepersian} +\settextfont[Scale=1]{XB Zar} +\setromantextfont[Scale=1]{Linux Libertine} +\setdigitfont[Scale=1]{XB Zar} +\pagestyle{pres} +\AddToShipoutPicture{ +\includegraphics{gradient2.png} +} + +\begin{document} +\begin{titlepage} +\distance{1} +\centering \LARGE + \bfseries عنوان اسلاید + +\distance{1} +\large +وفا خلیقی\\[1ex]نام دانشگاه +\distance{2} +\end{titlepage} + +\begin{plainslide}[این عنوان یک صفحه است.] +این اولین صفحه اسلاید ما است که من در حال نوشتن آن هستم و کمی بیشتر مینویسم تا به خط بعدی بروم +\footnote{این یک زیرنویس فارسی است.}\Footnote{This is an English footnote.} +\begin{equation} +(a+b)^2=a^2+2ab+b^2 +\end{equation} +\begin{itemize} + \item یک + \item دو +\end{itemize} + +\begin{enumerate} + \item یک + \item دو +\end{enumerate} + +\begin{description} + \item [یک:] اولین عدد + \item [دو:] دومین عدد +\end{description} + +\end{plainslide} +\begin{rawslide} +دومین صفحه + +\end{rawslide} + +\end{document} + + diff --git a/Master/texmf-dist/doc/xelatex/xepersian/rain.jpg b/Master/texmf-dist/doc/xelatex/xepersian/rain.jpg Binary files differnew file mode 100644 index 00000000000..f33b75e7a0c --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/rain.jpg diff --git a/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf1.PNG b/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf1.PNG Binary files differnew file mode 100644 index 00000000000..de1339c964c --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf1.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf2.PNG b/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf2.PNG Binary files differnew file mode 100644 index 00000000000..ecee69220c3 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/sumatrapdf2.PNG diff --git a/Master/texmf-dist/doc/xelatex/xepersian/sun.jpg b/Master/texmf-dist/doc/xelatex/xepersian/sun.jpg Binary files differnew file mode 100644 index 00000000000..1e823100386 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/sun.jpg diff --git a/Master/texmf-dist/doc/xelatex/xepersian/thesis-sample.tex b/Master/texmf-dist/doc/xelatex/xepersian/thesis-sample.tex new file mode 100644 index 00000000000..ea9b50a224e --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/thesis-sample.tex @@ -0,0 +1,66 @@ +\documentclass[a4paper,11pt]{xepersian-thesis} +\usepackage{xepersian} +\settextfont[Scale=1]{XB Zar} +\setromantextfont[Scale=1]{Linux Libertine} +\setdigitfont[Scale=1]{XB Zar} + + + + +\begin{document} +\title{اعداد مرکب} +\author{وفا خلیقی} +\degree{کارشناسی ریاضیات محض} +\supervisor{محمد قدسی} +\department{ریاضی} +\university{تهران} +\city{تهران} +\thesisdate{\today} +\maketitle +\begin{acknowledgementpage} +در اینجا دوست دارم از همه تشکر کنم +\end{acknowledgementpage} +\begin{abstractpage} +اینجا هم باید مطلبی نوشت... +\keywords{ریاضی محض، هندسه و توپولوژی} +\end{abstractpage} +\tableofcontents +\listoftables +\chapter{مجموعه اعداد} +در اینجا لازم میدانم تا نگاهی روی مجموعهٔ اعداد اندازیم تا متوجه خصلتهای آن شویم +\begin{equation} +(a+b)^2=a^2+2ab+b^3 +\end{equation} +\newpage +این صفحهٔ جدید است که ما در این صفحه به نوشتن مقالات دیگری مشغول هستیم. +\section{مقدمه} + +\newpage +این هم یک صفحهٔ جدید دیگر +\chapter{دوم} +\chapter{سوم} +\appendix +\chapter{اول} +\chapter{دوم} +\chapter{سوم} +\bibliographystyle{unsrt} +\begin{thebibliography}{99} +\end{thebibliography} +%\printindex +\begin{roman} +\romantitle{Pure Mathematics} +\romanauthor{Vafa Khalighi} +\romandegree{Bachelor of Pure Mathematics} +\romanthesisdate{\romantoday} +\romansupervisor{Mohammad Ghodsi} +\romandepartment{Computer Science} +\romanuniversity{Iran University of Science \& Technology} +\romancity{Tehran} +\begin{romanabstract} +\noindent This is our abstract written in English and This thesis is written very very very carefully so that we can keep an eye on the beauty of typesetting. +\romankeywords{Mathematics, topology, geometry and category theory.} +\end{romanabstract} +\makeromantitle +\end{roman} +\end{document} + diff --git a/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.pdf b/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.pdf Binary files differnew file mode 100644 index 00000000000..d732dd86730 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.tex b/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.tex new file mode 100644 index 00000000000..34557f35426 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/userguide-persian.tex @@ -0,0 +1,662 @@ +\documentclass{article} +\makeatletter +\renewcommand*\l@section{\@dottedtocline{2}{.5em}{2.3em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{2.7em}{2.3em}} +\makeatother +\addtolength{\textwidth}{5cm} +\addtolength{\hoffset}{-2.5cm} +\addtolength{\voffset}{-1cm} +\addtolength{\textheight}{2.5cm} +%\usepackage{pdfsync} +\usepackage{fancyhdr} +\pagestyle{fancy} +% with this we ensure that the chapter and section +% headings are in lowercase. +% \renewcommand{\chaptermark}[1]{% +% \markboth{#1}{}} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}} +\fancyhf{} % delete current header and footer +\fancyhead[LO,RE]{\bfseries\thepage} +%\fancyhead[RO]{\bfseries\rightmark} +\fancyhead[LE,RO]{\bfseries\rightmark} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\addtolength{\headheight}{0.5pt} % space for the rule +\fancypagestyle{plain}{% + \fancyhead{} % get rid of headers on plain pages + \renewcommand{\headrulewidth}{0pt} % and the line +} +\usepackage{pstricks} +\usepackage{animate} +\usepackage{pstricks-add} +\usepackage{multido} +\usepackage{color} +\definecolor{myblue}{rgb}{0.02,0.04,0.48} +\definecolor{lightblue}{rgb}{0.61,.8,.8} +\definecolor{myred}{rgb}{0.65,0.04,0.07} +\definecolor{lightgray}{gray}{0.6} +\definecolor{mygreen}{rgb}{0,.43,0} +\usepackage{fancybox} +\usepackage{fancyvrb} +\usepackage{setspace} +\usepackage{perpage} +\usepackage{persianpoem} +\newenvironment{myverb}{\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+\[\]]}{\end{Verbatim}} +\usepackage{xepersian} +\settextfont[Scale=1.2]{XB Zar} +\setdigitfont[Scale=1.2]{XB Zar} +\setromantextfont[Scale=1.2]{Linux Libertine} +\defpersianfont\nastaliq[Scale=1.8]{IranNastaliq} +\defromanfont\linlib[Scale=1.5]{Linux Libertine} +%\addtolength{\hoffset}{-2cm} +%\addtolength{\textwidth}{3cm} +\newcommand{\textblue}[1]{{\addfontfeature{Color=0000FF}#1}} +\numberwithin{equation}{section} +\numberwithin{table}{section} +\onehalfspacing +\newcommand\femph[1]{«#1»} +\frenchspacing +\newcommand\LRcite[1]{\LR{\rmfamily{\cite{#1}}}} + + +\begin{document} + +\thispagestyle{empty} + +\noindent +\begin{LTR} +\begin{pspicture}(0,13.5)(\linewidth,0) + \psline[linewidth=3mm,linecolor=mygreen](0,13.5)(\linewidth,13.5) + \rput(\linewidth,13.5) + {\pspolygon*(-3.6,0)(-1.4,0)(0,-1.4)(0,-3.6)} + \rput(\linewidth,13.5) + {\rput{-45}(-1,-1){\Large\textbf{\white \rl{نسخهٔ}}}} + \rput(\linewidth,13.5) + {\rput{-45}(-1.5,-1.5){\Large\textbf{\white \rl{۰/۱۶۳}}}} + + \rput[l](13,3.7){\textsl{\huge \rl{راهنمای بستهٔ}}} + \psline[linewidth=3mm,linecolor=myred](0,3)(\linewidth,3) + \psline[linewidth=3mm,linecolor=myred](0,0)(\linewidth,0) + \rput[b](0.5\linewidth,5) + {\includegraphics[height=0.3\textheight]{iran.jpg}} + \rput[l](0,1.5){\psscaleboxto(\textwidth,2){\rl{زیپرشین}}} + +\end{pspicture} +\end{LTR} + +\vfill\noindent +{{\huge \textbf{گروه فارسی--لاتک}} \hfill +{\large\textsl{وفا خلیقی، مهدی امیدعلی، و مصطفی واحدی}}} +\newpage +\pagenumbering{harfi} +\section*{مقدمه} +\newpage +\tableofcontents +\newpage +\listoftables +\newpage +\listoffigures +\newpage +\pagenumbering{persian} +\pagestyle{fancy} + +\section{نمونهٔ فایل ورودی} + یک نمونه فایل ورودی میتواند به صورت زیر باشد. + + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+\(\)] ++color(myblue)\documentclass{book} ++color(lightblue)\usepackage{xepersian} ++color(myred)\settextfont[Scale=1]{XB Zar} ++color(myred)\setromantextfont[Scale=1]{Junicode} ++color(myred)\setdigitfont[Scale=1]{XB Zar} ++color(mygreen)\title{+rl(عنوان نوشتار)} ++color(mygreen)\author{+rl(نام نویسنده)} ++color(lightgray)\begin{document} +\maketitle +\tableofcontents +\chapter{+rl(فصل اول)} +\section{+rl(بخش اول)} +... ++color(lightgray)\end{document} +\end{Verbatim} + +همانطور که میبینید شکل فایل ورودی هیچگونه تفاوتی با یک فایل استاندارد لاتک ندارد. تنها ممکن است فرمانهای خط سوم، چهارم، و پنجم این فایل نمونه برای شما +نا آشنا باشند که در قسمتهای بعد به توضیح آنها میپردازیم. به طور کلی در استفاده از طبقههای استاندارد لاتک به جز فراخوانی بستهٔ \lr{\XePersian} هیچ +کار اضافهای لازم نیست که انجام دهید. تنها به عنوان یک توصیه، سعی کنید + +\centerline{\shadowbox{\nastaliq\textblue{ + این بسته آخرین بستهای باشد که فراخوانی میکنید و فرمانهای خود را بعد از فراخوانی این بسته قرار دهید.}} } + +همچنین توجه داشته باشید که +بستههای زیر به طور خودکار فراخوانی میشوند و شما نباید آنها را مستقیماً در فایل فراخوانی کنید. + +\centerline{\shadowbox{\lr{amsmath, amssymb, amsthm, graphicx.}}} + +همچنین بسته \lr{\XePersian} هنوز قابلیت استفاده از طبقهٔ \lr{memoir} را ندارد، ولی در آینده این امکان نیز افزوده خواهد شد. +\section{فرمانهای بسته} +در این قسمت تعدادی از فرمانهای مفید را که لازم است بدانید شرح میدهیم. در جدول \ref{commands} فرمانهای بسته را مشاهده +میکنید. همچنین در بسته چند نوع شمارنده تعریف شده است که در جدول \ref{counters} مشاهده میکنید. + + + +\begin{table}[!hbp] +\begin{center} +\begin{tabular}{|r|l|} +\hline + فرمان & شرح\\ + \hline + \verb+\settextfont[...]{...}+&قلم فارسی متن را مشخص میکند.\\ + \hline + \verb+\setromantextfont[...]{...}+&قلم انگلیسی متن را مشخص میکند.\\ + \hline + \verb+\setdigitfont[...]{...}+&قلم ارقام را در فرمولها مشخص میکند.\\ + \hline + \verb+\defpersianfont\fontname[...]{...}+&یک قلم فارسی را مشخص میکند.\\ +\hline + \verb+\defromanfont\fontname[...]{...}+&یک قلم انگلیسی را مشخص میکند.\\ +\hline +\verb+\footnote{...}+&برای درج یک پانوشت فارسی \\ +\hline +\verb+\Footnote{...}+&برای درج یک پانوشت انگلیسی \\ +\hline +\verb+\today+&درج تاریخ جاری خورشیدی\\ +\hline +\verb+\englishtoday+&درج تاریخ جاری میلادی\\ +\hline +\verb+\rldblcolumn+&ترتیب ستونها را در یک متن چندستونی از راست به چپ میکند (پیشفرض)\\ +\hline +\verb+\lrdblcolumn+&ترتیب ستونها را در یک متن چندستونی از چپ به راست میکند \\ +\hline +\verb+\twocolumnstableofcontents+ & فهرست مطالب را در دو ستون میچیند (نیاز به فراخوانی \verb+fmultico+ دارد)\\ +\hline +\verb+\lr{...}+&یک متن کوتاه انگلیسی را در یک پاراگراف فارسی قرار میدهد\\ +\hline + \verb+\rl{...}+&یک متن کوتاه فارسی را در یک پاراگراف انگلیسی قرار میدهد\\ +\hline +\verb+\begin{LTR}+&شروع محیط چپبهراست\\ + \verb+\end{LTR}+&پایان محیط چپبهراست\\ +\hline +\verb+\begin{RTL}+&شروع محیط راستبهچپ\\ +\verb+\end{RTL}+&پایان محیط راستبهچپ\\ +\hline +\verb+\begin{roman}+&شروع محیط انگلیسی مجهز به قلم انگلیسی متن\\ + \verb+\end{roman}+&پایان محیط انگلیسی\\ +\hline +\verb+\begin{persian}+&شروع محیط فارسی مجهز به قلم فارسی متن\\ +\verb+\end{persian}+&پایان محیط فارسی\\ +\hline +\verb+\Roman+&برای درج کتابنامههای انگلیسی\\ +\hline +\verb+\Persian+&برای درج کتابنامههای فارسی\\ +\hline + \verb+\rmfamily+&قلم انگلیسی را برای حروفچینی استفاده میکند (پیشفرض محیط \verb+roman+)\\ +\hline +\verb+\farsifont+&قلم فارسی را برای حروفچینی استفاده میکند (پیشفرض محیط \verb+persian+) \\ +\hline + \verb+\PersianFootNum+&شمارهٔ پانوشتهای انگلیسی را به صورت فارسی درج میکند (پیشفرض )\\ +\hline + \verb+\RomanFootNum+&شمارهٔ پانوشتهای انگلیسی را به صورت انگلیسی درج میکند.\\ +\hline + \verb+\RomanBibNum+&شمارهٔ مراجع انگلیسی را به صورت انگلیسی درج میکند (پیشفرض)\\ +\hline + \verb+\PersianBibNum+&شمارهٔ مراجع انگلیسی را به صورت فارسی درج میکند.\\ +\hline +\end{tabular} +\end{center} +\caption{فرمانها}\label{commands} +\end{table} + +\begin{table}[!hbp] +\begin{center} +\begin{tabular}{|r|l|} +\hline + شمارنده & شرح\\ +\hline +\verb+arabic+&شمارندهٔ عربی اصلی لاتک برای سازگاری با بسته از نو تعریف شده است. \\ +\hline + \verb+persian+&همان اثر شمارنده \verb+arabic+ اصلی لاتک را دارد.\\ +\hline +\verb+adadi+& شمارنده را به صورت یک، دو، سه، \ldots تغییر میدهد. \\ +\hline +\verb+harfi+&شمارنده را به صورت الف\char"200D، ب، پ، \ldots تغییر میدهد.\\ +\hline +\verb+tartibi+&شمارنده را به صورت اول، دوم، سوم، و \ldots تغییر میدهد.\\ +\hline +\end{tabular} +\end{center} +\caption{شمارندهها}\label{counters} +\end{table} + +\section{استفاده از قلمهای مختلف} +بستهٔ \lr{fontspec}، که به صورت خودکار فراخوانی میشود، امکان استفاده از قلمهای موجود در سیستم را فراهم میکند. برای استفاده از \lr{\XePersian} +لازم است که حداقل یک قلم اصلی حروفچینی متن را مشخص کنید. این کار را با فرمان زیر انجام میدهیم: +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\settextfont[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\end{Verbatim} +به عنوان مثال با فرمان +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\settextfont[Scale=1]{XB Zar} +\end{Verbatim} + +قلم \lr{XB Zar} را با مقیاس بزرگی \lr{1} به عنوان قلم اصلی فارسی معرفی میکند. گزینهٔ \verb+Scale=1+ اختیاری است و مشخص میکند که قلم با چه سایزی مورد استفاده قرار گیرد. توجه داشته باشید که \lr{XB Zar} عنوان قلمی است که باید روی سیستم شما نصب باشد. اگر سیستم شما ویندوز است قلم مورد استفاده باید در پوشهٔ +\fbox{\lr{C:$\backslash$windows$\backslash$fonts}} +موجود باشد. این قلم یکی از قلمهای سری ایکس ساخته شده توسط گروه کاربران فارسی اپل-مکینتاش است که بسیار کامل هستند و توصیه میشود از این قلمها استفاده شود. برای دریافت آنها به آدرس زیر مراجعه کنید: + +\centerline{\fbox{\texttt{http://wiki.irmug.org/index.php/X\_Series\_2}}} +برای اینکه قلم نگارش ارقام در فرمولها را مشخص کنید از فرمان زیر استفاده کنید: +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\setdigitfont[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\end{Verbatim} +و قلم نگارش متنهای انگلیسی را با فرمان زیر مشخص میکنیم: +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\setromantextfont[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\end{Verbatim} + +همچنین میتوانید هر تعداد قلم فارسی دلخواه را معرفی کنید و در نوشتار خود مورد استفاده قرار دهید. فرمان انجام این کارها به صورت زیر است: +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\defpersianfont\fontname[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\defromanfont\fontname[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\end{Verbatim} +به عنوان مثال فرمان + + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\defpersianfont\nastaliq[Scale=2]{IranNastaliq} +\end{Verbatim} +قلم نستعلیق را برای نوشتار معرفی میکند و در متن میتوانید به دو صورت از آن استفاده کنید: +\begin{itemize} +\item +در یک محیط \lr{RTL} به صورت زیر + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+\[\]] +\begin{RTL} +\nastaliq ++rl[نمونه متن با قلم نستعلیق] +\end{RTL} +\end{Verbatim} + + +که اثر آن همانند متن زیر است: + +\begin{center}\fbox{\Large\nastaliq نمونه متن با قلم نستعلیق}\end{center} +این روش مناسب نوشتن یک پاراگراف یا بیشتر است. +\item +یا به صورت ساده به شکل زیر از قلم تعریف شده استفاده کنید + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+\[\]] +\nastaliq{+rl[نمونه متن با قلم نستعلیق]} +\end{Verbatim} +که اثر این فرمان هم مشابه قبل است. این روش مناسب نوشتن یک متن کوتاه با قلم تعریف شده است. + +\end{itemize} +به روش مشابه میتوانید هر تعداد قلم انگلیسی دلخواه تعریف کنید و از آنها استفاده کنید. فرمان +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\defromanfont\fontname[Scale=+rl(مقیاس)]{+rl(نام قلم)} +\end{Verbatim} + +وظیفهٔ تعریف قلمهای مختلف انگلیسی را به عهده دارد. به عنوان مثال با فرمان +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\defromanfont\linlib[Scale=1.5]{Linux Libertine} +\end{Verbatim} +قلم +\lr{Linux Libertine} با مقیاس بزرگی \lr{1.5} معرفی میشود که میتوان از آن به صورت زیر استفاده کرد: + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+\[\]] +\begin{LTR} +\linlib +Sample text with Linux Libertine font +\end{LTR} +\end{Verbatim} + +که اثر آن به شکل زیر است: + + +\begin{LTR}\centerline{\fbox{\linlib +Sample text with Linux Libertine font +}}\end{LTR} + +\section{گزینههای بستهٔ \lr{\XePersian}} +به دلیل تنوع روشهای حروفچینی پایاننامهها و کتابهای فارسی، بستهٔ \lr{\XePersian} دارای امکاناتی است که با استفاده از آنها میتوانید نوشتار خود را به سبک دلخواه طراحی کنید. +\subsection{پانوشتها} +از فرمانهای +\verb+\footnote+ +و +\verb+\Footnote+ +برای نوشتن پانوشتهای فارسی و انگلیسی (به ترتیب) استفاده میشود. سبک پیشفرض بسته این است که شمارهٔ تمام پانوشتها به صورت فارسی نوشته میشود و بسته به اولین پانوشت هر صفحه، خط حائل در سمت مناسب قرار داده میشود. اگر میخواهید شمارهٔ پانوشتهای انگلیسی در کل نوشتار به صورت عدد انگلیسی باشد از گزینهٔ +\verb+RomanFootNum+ +در هنگام فراخوانی بسته به صورت زیر استفاده کنید +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\usepcackage[RomanFootNum]{xepersian} +\end{Verbatim} +همچنین در خود نوشتار هر جا که خواستید شمارهٔ پانوشتها فارسی یا انگلیسی باشد از فرمانهای +\verb+\PersianFootNum+ +یا +\verb+\RomanFootNum+ +(به ترتیب) استفاده کنید. +به عنوان مثال +این یک پانوشت فارسی است \footnote{شمارهٔ پانوشت فارسی است.} و این هم یک پانوشت انگلیسی است% +\Footnote{The number of the footnote is persian.} +که شمارهٔ آن فارسی است. حال فرمان +\verb+\RomanFootNum+ +را در مستند قرار میدهیم. +\RomanFootNum +این یک پانوشت انگلیسی است% +\Footnote{The number of the footnote is roman.} +که شمارهٔ آن انگلیسی است. برای برگشت به حالت اولیه فرمان +\verb+\PersianFootNum+ +را در مستند قرار میدهیم. +\PersianFootNum +و حال این یک پانوشت دیگر انگلیسی است% +\Footnote{The number of the footnote is persian again.} +که شمارهٔ آن فارسی شده است. +\subsection{کتابنامه} +دو محیط \verb+\Persian+ و \verb+\Roman+ برای درج مراجع فارسی و انگلیسی تعریف شده است. بنابراین برای نوشتن کتابنامهٔ خود به صورت زیر میتوانید عمل کنید + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\begin{thebibliography} +\Persian +\bibitem{hafez}+rl(دیوان حافظ، انتشارات سروش). +\Roman +\bibitem{faust} Johann Wolfgang von Goethe, Faust. +\end{thebibliography} +\end{Verbatim} +در این صورت کتابنامهٔ شما به صورت زیر حروفچینی میشود: + +\bigskip + +\centerline{\fbox{ +\begin{minipage}[r]{10cm} +\begin{thebibliography} +\Persian +\bibitem{hafez} دیوان حافظ، انتشارات سروش. +\Roman +\bibitem{faust} Johann Wolfgang von Goethe, Faust. +\end{thebibliography} +\end{minipage} +}} +\bigskip + +اگر بخواهید شمارهٔ مراجع انگلیسی به صورت عدد فارسی باشد از فرمان \verb+\PersianBibNum+ در مستند خود استفاده کنید در این صورت کتابنامهٔ شما به صورت زیر چیده میشود: +\bigskip + +\PersianBibNum +\centerline{\fbox{ +\begin{minipage}[r]{10cm} +\begin{thebibliography} +\Persian +\bibitem{hafez} دیوان حافظ، انتشارات سروش. +\Roman +\bibitem{faust} Johann Wolfgang von Goethe, Faust. +\end{thebibliography} +\end{minipage} +}} +\bigskip +\RomanBibNum + +به همین ترتیب میتوانید از فرمان \verb+\RomanBibNum+ استفاده کنید و شمارهٔ مراجع انگلیسی را به صورت عدد انگلیسی درج کنید. این دو فرمان را در هر جای مستند که وارد کنید اثر خود را از آن نقطه به بعد ظاهر میکنند ولی اگر میخواهید یکی از این دو سبک را در نوشتار خود داشته باشید (که اغلب اینگونه است) بهتر است از گزینههای +\verb+RomanBibNum+ و یا \verb+PersianBibNum+ +هنگام فراخوانی بستهٔ \lr{\XePersian} استفاده کنید. گزینهٔ +\verb+RomanBibNum+ +گزینهٔ پیشفرض است و بنابراین اگر میخواهید کتابنامهٔ شما به فرم دوم چاپ شود از فرمان زیر در سرآغاز فایل خود استفاده کنید: + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\usepackage[PersianBibNum]{xepersian} +\end{Verbatim} + +\subsection*{خلاصه} +اگر بخواهید مثلاً شمارهٔ پانوشتهای انگلیسی به صورت انگلیسی باشد و شمارهٔ مراجع انگلیسی به صورت فارسی باشد از فرمان زیر استفاده کنید + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\usepackage[PersianBibNum,RomanFootNum]{xepersian} +\end{Verbatim} +\section{حروفچینی شعر} +برای حروفچینی شعر باید فرمان زیر را در سرآغاز فایل خود قرار دهید: + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\usepackage{persianpoem} +\end{Verbatim} +بعد از این کار به راحتی میتوانید شعر را حروفچینی کنید. + +{\nastaliq\doublespacing +\begin{oldpoem} + +هله رفتیم و گرانی ز جمالت بردیم& +جهت توشهٔ ره ذکر وصالت بردیم\\ +تا که ما را و ترا تذکرهٔ خوش باشد& +دل خسته بتو دادیم و خیالت بردیم\\ +آن خیال رُخ خوبت که قمر بندهٔ اوست& +وان خَم ابروی مانند هلالت بردیم\\ +و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست& +ز شکر خانهٔ مجموع خصالت بردیم\\ +چون کبوتر چو بپریم بتو بازآییم& +زانکه ما این پَر و بال از پَر و بالت بردیم\\ +هر کجا پرد فرعی، بسوی اصل آید& +هر چه داریم هم از عزّ و جلالت بردیم\\ +شمس تبریز شنو خدمت ما را زصبا& +گر شمالست و صبا هم ز شمالت بردیم + +\end{oldpoem} +} +شعر بالا با کد زیر تولید شده است: + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\begin{oldpoem} ++rl(هله رفتیم و گرانی ز جمالت بردیم)& ++rl(جهت توشهٔ ره ذکر وصالت بردیم)\\ ++rl(تا که ما را و ترا تذکرهٔ خوش باشد)& ++rl(دل خسته بتو دادیم و خیالت بردیم)\\ ++rl(آن خیال رُخ خوبت که قمر بندهٔ اوست)& ++rl(وان خَم ابروی مانند هلالت بردیم)\\ ++rl(و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست)& ++rl(ز شکر خانهٔ مجموع خصالت بردیم)\\ ++rl(چون کبوتر چو بپریم بتو بازآییم)& ++rl(زانکه ما این پَر و بال از پَر و بالت بردیم)\\ ++rl(هر کجا پرد فرعی، بسوی اصل آید)& ++rl(هر چه داریم هم از عزّ و جلالت بردیم)\\ ++rl(شمس تبریز شنو خدمت ما را زصبا)& ++rl(گر شمالست و صبا هم ز شمالت بردیم)\\ +\end{oldpoem} +\end{Verbatim} + + +این محیط دارای حالت ستارهدار (\verb+oldpoem*+) نیز میباشد که اثر آن به صورت زیر است. +\begin{oldpoem*} +هله رفتیم و گرانی ز جمالت بردیم& +جهت توشهٔ ره ذکر وصالت بردیم\\ +تا که ما را و ترا تذکرهٔ خوش باشد& +دل خسته بتو دادیم و خیالت بردیم\\ +آن خیال رُخ خوبت که قمر بندهٔ اوست& +وان خَم ابروی مانند هلالت بردیم\\ +و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست& +ز شکر خانهٔ مجموع خصالت بردیم\\ +چون کبوتر چو بپریم بتو بازآییم& +زانکه ما این پَر و بال از پَر و بالت بردیم\\ +هر کجا پرد فرعی، بسوی اصل آید& +هر چه داریم هم از عزّ و جلالت بردیم\\ +شمس تبریز شنو خدمت ما را زصبا& +گر شمالست و صبا هم ز شمالت بردیم +\end{oldpoem*} +شعر بالا با کد زیر تولید شده است: + +\section{حروفچینی چندستونی} +برای حروفچینی یک متن در چند ستون از محیط زیر استفاده کنید. حداکثر تعداد ستونها ۵ است. + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +\begin{multicols}{+rl(تعداد ستونها)} +..... +\end{multicols} +\end{Verbatim} + +\section{محیط مورد فارسی} +محیط مورد برای استفاده در فارسی نیز تعریف شده است که در زیر مثال آنرا میبنید: + +$$ +\rcases{\mbox{مرد}\cr\mbox{زن}}\mbox{آدم} +$$ + +طرح بالا با کد زیر نوشته شده است. +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +$$\rcases{\mbox{+rl(مرد)}\cr\mbox{+rl(زن)}}\mbox{+rl(آدم)}$$ +\end{Verbatim} + + +\section{تولید نمایه} +به همراه این بسته، فایلی ارائه شده است که شما را قادر میسازد به راحتی نمایه برای مستندتان فراهم کنید. خود بسته هیچگونه محدودیتی با نمایهسازی ندارد، +ولی نرمافزار +\lr{makeindex} هنگام مرتب کردن فایل نمایه، ترتیب بعضی از حروف را به درستی رعایت نمیکند. +برای رفع این مشکل، استفاده از \lr{xindy} بجای \lr{makeindex} توصیه میشود. + +اگر از تکلایو ۲۰۰۸ استفاده میکنید \lr{xindy} به طور خودکار روی سیستم شما نصب است. کافی است فایل \lr{persian.xdy} را که همراه این بسته +ارائه شده است در دایرکتوری جاری قرار دهید و فرمانهای زیر را در خط فرمان اجرا کنید: + +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{blue},framesep=3mm,showspaces=true,commandchars=+()] +tex2xindy < filename.idx > filename.raw +xindy -I xindy -M persian.xdy filename.raw +\end{Verbatim} + +\noindent بعد از انجام این کار، نمایهٔ مرتب شدهٔ شما آمادهٔ تزریق به مستند میشود. + +توجه داشته باشید که اگر میخواهید از نمایه استفاده کنید، باید شمارندهٔ صفحه را در حالت \lr{\texttt{persian}} قرار دهید. البته شمارندهٔ صفحه به صورت +پیشفرض در این حالت قرار دارد. +\section{فرمولهای ریاضی} +بسته با حروفچینی فرمولهای ریاضی هیچگونه مشکلی ندارد و از آنجا که بستههای \lr{amsmath,amsthm,} و \lr{amssymb} به طور خودکار فراخوانی میشوند، +اکیداً توصیه میشود از فرمانهای کلاف \lr{AMSLatex} استفاده کنید. توجه داشته باشید که محیط \texttt{eqnarray} کلا با بستهٔ \lr{amsmath} +مشکل دارد و به خصوص شمارهٔ فرمول نوشته شده با این محیط ناپایدار است. به جای این محیط، از محیط \texttt{align} استفاده کنید که +حروفچینی آن از \texttt{eqnarray} بهتر است و شمارهٔ آن نیز بدون مشکل قابل ارجاع است. +\begin{align} +a^2+b^2&=\sin x\label{eq1}\\ +2.1a+b&=\cos y\label{eq2} +\end{align} + +فرمولهای بالا با کد زیر تولید شدهاند. + +\begin{roman} +\begin{verbatim} +\begin{align} +a^2+b^2&=\sin x\label{eq1}\\ +1a+b&=\cos y\label{eq2} +\end{align} +\end{verbatim} +\end{roman} +ارجاع به فرمول \eqref{eq1} به صورت طبیعی امکانپذیر است. برای اطلاعات بیشتر به \femph{مقدمهای نهچندان کوتاه بر \lr{\LaTeXe}} +%\footnote{قابل دسترسی از\texttt{http://www.ctan.org}} +مراجعه کنید. +\section{تهیهٔ اسلاید با \lr{beamer}} +امکانات استفاده از طبقهٔ \lr{beamer} در حد مطلوبی برقرار است. برای استفادهٔ بهینه چند محیط جدید تعریف شدهاند. +\begin{Verbatim}[frame=single,numbers=left,framerule=1mm,rulecolor=\color{red},fillcolor=\color{yellow},framesep=3mm,showspaces=true,commandchars=+()] +\begin{+rl(بلوک)}{+rl(عنوان)} +... +\end{+rl(بلوک)} +\end{Verbatim} +با این فرمان یک بلوک عادی تشکیل میشود که جهت آن از راست به چپ است. به جای ''بلوک`` میتوانید از ''بلوکمثال`` یا ''بلوکهشدار`` استفاده کنید. + +\section{استفاده از \lr{PSTricks}} +تمامی امکانات استفاده از \lr{PSTricks} در بسته موجود است. +% \begin{LTR} +% %-------------------- write timeline file ---------------------% +% \newwrite\TimeLineFile +% \immediate\openout\TimeLineFile=sinus.txt +% \immediate\write\TimeLineFile{::0x0,1}% +% %remaining frames: overlay filled circle at its current postion +% \multido{\i=2+1}{90}{% +% \immediate\write\TimeLineFile{% +% ::\i % put filled circle on top +% }} +% \immediate\closeout\TimeLineFile +% %------------------- assemble animation -----------------------% +% \psset{xunit=\pstRadUnit,dashadjust=false} +% \begin{animateinline}[controls,timeline=sinus.txt, +% begin={\begin{pspicture}(-0.5,-1.5)(6.6,2)}, +% end={\end{pspicture}}]{24} +% %---- static material: axes, labels, curve ----% +% \psaxes[trigLabels,trigLabelBase=3]{->}(0,0)(-2mm,-1.5)(6.5,1.5)[t,-90][$y=\sin(t)$,0] +% \psplot[xunit=1cm,linestyle=dashed,algebraic]{0}{\psPiTwo}{sin(x)} +% \newframe +% \multiframe{91}{n=0+4}{\psset{xunit=1cm,linecolor=blue} +% \pscustom[xunit=1cm,fillcolor=blue!30,fillstyle=solid, +% linestyle=none,algebraic,dimen=inner]{% +% \psplot{0}{\n\space DegtoRad}{sin(x)} +% \psline(!\n\space DegtoRad 0) +% } +% \psplot[xunit=1cm,linestyle=dashed,linecolor=black, +% algebraic]{0}{\n\space DegtoRad}{sin(x)} +% \psdot[opacity=0.4,dotsize=3mm](!\n\space dup DegtoRad exch sin) +% \psline[linestyle=dashed](!\n\space dup DegtoRad exch sin)(!\n\space DegtoRad 0) +% } +% \end{animateinline} +% \end{LTR} + + + + +\appendix +\section{نصب ویرایشگر روی ویندوز} +برای استفاده از \lr{\XePersian} باید \lr{XeTeX} روی سیستم شما نصب باشد. اگر از \lr{MikTex 2.7} یا بالاتر، و یا از \lr{TeXLive 2008} +و یا بالاتر استفاده میکنید، \lr{XeTeX} به طور خودکار روی سیستم شما نصب شده است. تنها کاری که باید در این صورت انجام دهید نصب و +تنظیم یک ویرایشگر مناسب برای کار است. لیست کنترل زیر ابزارهای لازم را برای کار با این بسته به شما نشان میدهد. +\begin{enumerate} +\item توزیع مناسبی از \lr{\TeX} مانند \lr{Texlive}(\lr{2008} یا بالاتر) یا \lr{Miktex} (\lr{2.7} یا بالاتر). +\item نرمافزار مناسب ویرایش متنهای یونیکد (در ویندوز \lr{notepad++}\footnote{قابل دریافت از \LR{\texttt{http://notepad-plus.sourceforge.net/}}} و در لینوکس \lr{gedit}). +\item نرمافزار مناسب نمایش فایلهای پی.دی.اف (در ویندوز توصیه میشود از \lr{SumatraPDF}\footnote{قابل دریافت از \lr{\texttt{http://www.parsilatex.org/pdfreader/SumatraPDF.rar}}} به جای آکروبات ریدر استفاده شود). +\end{enumerate} +از آنجا که کاربران ایرانی معمولا از ویندوز استفاده میکنند و با توجه به اینکه یک ویرایشگر مناسب زندگی را برای کاربر بسیار راحت میکند، در ادامه +روش نصب و تنظیم ویرایشگر مناسب را در ویندوز به طور کامل شرح میدهیم. توجه داشته باشید که فرض بر این است یک توزیع مناسب از تک و +همچنین \lr{SumatraPDF} روی سیستم شما نصب است. + +فایل نصبکنندهٔ \lr{notepad++} را اجرا کنید ( توجه داشته باشید که جدیدترین نسخه این فایل را از صفحهٔ خانگی این نرمافزار دریافت کرده باشید). +افزونهٔ (\lr{plugin}) \verb+NppExec.dll+ را نیز از صفحهٔ خانگی \lr{notepad++} دریافت کنید و آن را در پوشهٔ +\begin{roman}\verb|C:\Program Files\Notepad++\plugins|\end{roman} +قرار دهید. +سپس به صورتی که در شکلهای زیر نشان داده شده است نرمافزار را نصب و تنظیم کنید. + +\centerline{\includegraphics[height=5cm]{notepad1.PNG}} +\centerline{\includegraphics[height=7cm]{notepad2.PNG}} +\centerline{\includegraphics[height=6cm]{notepad3.PNG}} +\centerline{\includegraphics[height=5cm]{notepad4.PNG}} +\centerline{\includegraphics[height=6cm]{notepad5.PNG}} +\centerline{\includegraphics[height=5cm]{notepad6.PNG}} + +متنی که در آخرین مرحله باید وارد کنید و حاصل را با عنوان \lr{xelatex} ذخیره کنید متن زیر است که میتوانید به راحتی آن را از همین فایل پی.دی.اف +کپی کنید و در پنجرهای که ظاهر شده است بچسبانید(به کوچک و بزرگ بودن حروف و همچنین فاصله بین کلمات دقت کنید): + +\setLR +\small{ +\begin{verbatim} +NPP_SAVE +cd $(CURRENT_DIRECTORY) +xelatex $(NAME_PART) +\end{verbatim} +} +\setRL +برای استفادهٔ بهینه از این ویرایشگر، بهتر است راهنمای آنرا مطالعه کنید. فقط به عنوان یک مطلب که ممکن است برای شما مفید باشد، هنگام ویرایش متنهای فارسی، +با فشردن \lr{ALT+CTRL+R} صفحه نمایش از راست به چپ قرار میگیرد و بنابراین کار شما راحتتر میشود. برای برگشتن به حالت چپبهراست کافی است +\lr{ALT+CTRL+L} را فشار دهید. بعد از انجام این کارها به راحتی میتوانید با فشردن کلید \verb+F6+ فایل ورودی خود را پردازش کنید. + +برای اینکه بتوانید از داخل ویرایشگر فایل پی.دی.اف خروجی را مشاهده کنید و ویژگی جستجوی معکوس را داشته باشید باید یک نمایشگر پی.دی.اف مناسب را +نصب و تنظیم کنید. نمایشگر مناسب این کار \lr{SumatraPDF} است که بسیار کم حجم و پرقدرت است. در زیر روش تنظیم ویرایشگر و نمایشگر را با شکلهایی +توضیح دادهایم + +\centerline{\includegraphics[height=9cm]{sumatrapdf1.PNG}} +\centerline{\includegraphics[height=5cm]{sumatrapdf2.PNG}} +\centerline{\includegraphics[height=5cm]{notepad7.PNG}} +\centerline{\includegraphics[height=5cm]{notepad8.PNG}} +\centerline{\includegraphics[height=5cm]{notepad9.PNG}} + +بعد از انجام این کارها، بعد از اولین بار پردازش فایل، از منوی \lr{Run} گزینهٔ \lr{view} را انتخاب کنید تا فایل پی.دی.اف باز شود. حال بعد از هر بار پردازش، +فایل پی.دی.اف به طور خودکار آپدیت میشود. برای استفاده از خاصیت \lr{Inverse Search} یا جستجوی معکوس باید بستهٔ \lr{pdfsync} را در فایل ورودی خود +فراخوانی کنید. در این صورت با دو بار کلیک کردن بر یک نقطه از فایل پی.دی.اف به خط متناظر در \lr{notepad++} میروید. توجه داشته باشید که نسخهای +از \lr{SumatraPDF} را نصب کرده باشید که قابلیت جستجوی معکوس را داشته باشد. این نسخه را میتوانید از آدرس زیر دریافت کنید + +\begin{roman} +\verb+http://parsilatex.org/pdfreader/SumatraPDF.rar+ +\end{roman} + +و آن را در پوشهٔ زیر قرار دهید + +\begin{roman} +\verb+C:\Program Files\SumatraPDF+ +\end{roman} + +\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-cove.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-cove.tex new file mode 100644 index 00000000000..510a197d2cf --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-cove.tex @@ -0,0 +1,56 @@ +\begingroup +\evensidemargin \paperwidth\relax +\advance\evensidemargin -2in +\advance\evensidemargin -\textwidth +\divide\evensidemargin 2 +\oddsidemargin\evensidemargin + +\begin{titlepage} + +\let\footnotesize\small +\let\footnoterule\relax +\setcounter{page}{0} + +\null +\vfil +\vskip 25pt +\begin{center} + {\LARGE\textbf{\XePersian}}\\[5pt] + {\large\textbf{\XeLaTeX\ macros for typesetting Persian in \XeTeX}.}\\ +\end{center} + +\bigskip\bigskip +\hbox to \hsize{% + \hss +\includegraphics[width=9cm,height=9cm]{iran.jpg} + \hss} +\bigskip +\bigskip + +\begin{center} +{\LARGE\textbf{User's Guide}}\par +\vskip 3em +{\large \lineskip .75em Vafa Khalighi}\par +\vskip 1.5em +{\large \thefiledate\\[2pt] + Version \Version% + \footnote{Documentation edited and repacked at \thefiledate\ by + Vafa Khalighi \url{vafa.khalighi@students.mq.edu.au}.}}\par + +\end{center} +\vfil +\small +Author's address:\\ + 4/34 Sorrell Street\\ + Parramatta\\ + NSW 2150\\ + Australia\\[3mm] + Internet: \Verb[codes={\catcode`\<=12}]+<vafa.khalighi@students.mq.edu.au>+ +\end{titlepage} + +\endgroup + +\setcounter{footnote}{0} +\tableofcontents +\pagenumbering{arabic} +\endinput diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-esse.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-esse.tex new file mode 100644 index 00000000000..26691aadd10 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-esse.tex @@ -0,0 +1,305 @@ +\part*{Welcome to XePersian} +\XePersian\ is a set of macro written for \LaTeX\ over \XeTeX\ in the hope that Persian typesetting in \TeX\ becomes quite easy and at the same time the Persian users would benefit from the \TeX\ tools that are available for English users. + +\File{\textsf{New!}} +There is a change in the manual. I wrote a new \LaTeX\ class\footnote{The name of this class is \textsf{xepersian-user} and is included in the \XePersian\ package but please note that this class has no use for Persian typesetting and it is simply designed for typesetting the manual.} for writing the manual just to be more attractive, eye-catching and tidy. I also decided to write the manual in English and that is because \XePersian\ package will be placed on CTAN and it is included in various \TeX\ distributions like MiK\TeX\ and \TeX Live and if I write the manual in Persian, then I have abused the hospitality of CTAN, MiK\TeX\ and \TeX Live distributions, so I wrote the manual in plain English in the hope that everyone will be able to understand the material explained here. + +I have rewritten almost all the macros, new functionalities have been added and lots of changes have been done, therefore, I would like to encourage all the users to read this manual very carefully before trying to use the package. \XePersian\ now works with \textsf{article}, \textsf{report}, \textsf{book}, \textsf{amsart}, \textsf{amsbook}, \textsf{refrep}, \textsf{bookest} and \textsf{beamer} classes. Also I have written some new classes: \textsf{xepersian-thesis} (for typesetting Persian thesis), \textsf{xepersian-presentation} (for typesetting plain electronic Persian presentations) and \textsf{xepersian-magazine} (for typesetting Persian magazines, newspapers and other papers). + +\File{\textsf{Thanks}} +Please note that \XePersian\ is not just mine, it belongs to all and it is the result of the hard work of several other people. I would like to thanks \textsf{Jonathan Kew} (the author of \XeTeX) for making such a wonderful \TeX\ system and answering my questions, \textsf{Karl Berry} and \textsf{Jim Hefferon} for all their wonderful encouragements, \textsf{Ross Moore} (my teacher and an abosolute \TeX acker) for helping and guiding me patiently and kindly, \textsf{Will Robertson} (the author of \textsf{fontspec} package) for his excellent \textsf{fontspec} package and also answering my question, \textsf{François Charette} (the author of several \XeLaTeX\ packages, more importantly the \textsf{bidi} package) for his wonderful \textsf{bidi} package which is currently the basis of \XePersian , \textsf{Mostafa Vahedi} for writing the preliminary version of the package and also motivating me to develop the package, \textsf{Mehdi Omidali} for participating in the development of \XePersian , contributiong mapping files, testing the development version of the package, his bug reports, bug fixes and writing the manual in Persian, and eventually I would like to thanks to all the users of \XePersian, firstly for using the package and secondly for their bug reports. + + + +\begin{Warning} +Keep in mind the following typographical conventions in this User's Guide. +\begin{itemize} + \item All literal input characters, i.e., those that should appear verbatim + in your input file, appear in upright "Helvetica" and {\UsageFont + Helvetica-Bold} fonts. + \item Meta arguments, for which you are supposed to substitute a value + (e.g., <Scale>) appear in slanted <Helvetica-Oblique> and + {\UsageFont\MetaFont Helvetica-BoldOblique} fonts. + \item The main entry for a macro or parameter that states its syntax appears + in a large bold font, \emph{except for the optional arguments, which are in + medium weight}. This is how you can recognize the optional arguments. + \item References to \XePersian\ commands and parameters within paragraphs are + set in {\UsageFont Helvetica-Bold}. + +\end{itemize} +\end{Warning} +\part{The Essentials} +\section{An Example of the Input File} +\begin{LVerb} + \documentclass{book} + \usepackage{xepersian} + \settextfont[Scale=1]{XB Zar} + \setromantextfont[Scale=1]{Linux Libertine} + \setdigitfont[Scale=1]{XB Zar} + \title{<title name>} + \author{<author name>} + \begin{document} + \maketitle + \tableofcontents + \chapter{<chapter name>} + ... + \section{<section name>} + ... + \subsection{<subsection name>} + ... + \end{document} +\end{LVerb} + +\begin{Warning} +Always load \XePersian\ package as the last package in the permeable of your document and put your definitions after loading \XePersian . Also note that the packages: \textsf{amsmath}, \textsf{amssymb}, \textsf{amsthm} and \textsf{graphicx} are loaded by default and you \emph{should not} load them. +\end{Warning} + +\section{The Basic Commands of The Package\label{s-1}} +In this section, I will be explaining some of the useful commands which you are best equipped to know. +\begin{description} +\mitem \settextfont`[...]'{...} + +Selects the default Persian font. + +\mitem \setromantextfont`[...]'{...} + +Selects the deafult Roman font. + +\mitem \setdigitfont`[...]'{...} + +Selects the digits font in maths formuals. + +\mitem \defpersianfont\n\fontname`[...]'{...} + +Defines an extra Persian font. + +\mitem \defromanfont\n\fontname`[...]'{...} + +Defines an extra Roman font. + +\mitem \footnote{...} + +Inserts Persian footnote. + +\mitem \Footnote{...} + +Inserts Roman footnote. + +\mitem \today + +Inserts Iranian date of today. + +\mitem \romantoday + +Inserts Roman date of today. + +\mitem \rldblcolumn + +Places columns from right to left in the \emph{twocolumns} documents (default). + +\mitem \lrdblcolumn + +Places columns from left to right in the \emph{twocolumns} documents. + +\mitem \twocolumnstableofcontents + +Typesets \emph{table of contents} in two columns (needs to load \textsf{fmultico} package at the permeable of the document). + +\mitem \lr{...} + +Typesets a short Roman text in a Persian paragraph. + +\mitem \rl{...} + +Typesets a short Persian text in a Roman paragraph. +\end{description} +\begin{Ex} + "\begin{LTR}" \ldots\ "\end{LTR}" +\end{Ex} +Left To Right environment. + +\begin{Ex} + "\begin{RTL}" \ldots\ "\end{RTL}" +\end{Ex} +Right To Left environment. + +\begin{Ex} + "\begin{roman}" \ldots\ "\end{roman}" +\end{Ex} +Typesets a Roman paragraph. + +\begin{Ex} + "\begin{persian}" \ldots\ "\end{persian}" +\end{Ex} +Typesets a Persian paragraph. +\begin{description} +\mitem \Roman + +Similar to {\UsageFont roman} environment but intended to be used in the bibliography environment. + +\mitem \Persian + +Similar to {\UsageFont persian} environment but intended to be used in the bibliography environment. + +\mitem \rmfamily + +Uses Roman font for typesetting (deafult in {\UsageFont roman} environment). + +\mitem \persianfont + +Uses Persian font for typesetting (deafualt in {\UsageFont persian} environment). + +\mitem \PersianFootNum + +Typesets the the Roman footnote numbers in Persian (default). + +\mitem \RomanFootNum + +Typesets the Roman footnote numbers in Roman. + +\mitem \RomanBibNum + +Typesets the numbers of \n\bibitem\ in Roman (default). + +\mitem \PersianBibNum + +Typesets the numbers of \n\bibitem\ in Persian. +\end{description} +\subsection{Using Different Fonts} +To write a minimal document with \XePersian\, you will need to select a font for typesetting the main text. We achieve this by the following command: +\begingroup +\catcode`\<=12 + \Mac \settextfont`[Scale=<integer>]'{<fontname>} +\endgroup +For example with the command: +\begin{LVerb} + \settextfont[Scale=1]{XB Zar} +\end{LVerb} +We choose {\UsageFont XB Zar} as the main text font with the Scale of 1. + +\begin{drivers} {\UsageFont XB Zar} is the name of the font which should be installed on your machine. If you are on \textsf{Microsoft Windows}, then the font should be avaliable in \fbox{C:$\backslash$windows$\backslash$fonts} folder. This font is one of the \textsf{X Series} font made by \textsf{IRMUG} (Iranian Mac Users Group) which are perfect and you are advised to use these fonts. To obtain them, you can explore \href{http://wiki.irmug.org/index.php/X_Series_2}{\textsf{IRMUG}}.\end{drivers} + +In addition to selecting the main text font, we also need to choose the fonts for Roman texts and digits in maths formuals. We select the font for Roman texts by the following command: +\begingroup +\catcode`\<=12 + \Mac \setromantextfont`[Scale=<integer>]'{<fontname>} +\endgroup +And we select the font for digits in maths formuals by the command: +\begingroup +\catcode`\<=12 + \Mac \setdigitfont`[Scale=<integer>]'{<fontname>} +\endgroup +You also can define as many extra Persian and Roman fonts as you wish and use them in your document. This is done in the following syntax: +\begingroup +\catcode`\<=12 + \Mac \defpersianfont\n\fontname`[Scale=<integer>]'{<fontname>} + \Mac \defromanfont\n\fontname`[Scale=<integer>]'{<fontname>} +\endgroup +For example, the command: +\begin{LVerb} + \defpersianfont\nastaligh[Scale=1.5]{IranNastaliq} +\end{LVerb} +Defines the {\UsageFont Nastaligh} font for the text and you can use it in the following ways: +\begin{itemize} +\item If your intention is to write a short text with this font, you can use: +\begingroup +\catcode`\<=12 + \Mac \nastaligh{<text>} +\endgroup +\item If you are going to write a long piece of text with this font you can either use {\UsageFont RTL} environment as follow: +\begingroup +\catcode`\<=12 +\begin{Ex} + "\begin{RTL}" + "\nastaligh" + <text> + "\end{RTL}" +\end{Ex} +\endgroup +or even better define a new environment as follow: +\begin{LVerb} + \newenvironment{Nastaligh}{\begin{RTL}\nastaligh} + {\end{RTL}} +\end{LVerb} +and then use this environment to typeset the text whenever you wish. +\end{itemize} +I am not going to explain this for Roman fonts because I would just repeat myself but it can be done quite similar to what I have been demonstrating above for Persian fonts. +\subsection{The Bilingual Bibliography Environment} +The commands \n\Persian\ and \n\Roman\ are defined so that you can switch between Persian and Roman texts easily in the bibliography environment. +\subsection{The Options Of The Package} +\subsubsection{The Footnotes} +You can use the commands \n\footnote\ and \n\Footnote\ to insert Persian and English footnotes respectively. The package puts the numbers of all footnotes in Persian and automatically places the footnote-rule on the appropriate side of the page based on the first footnote on the page automatically by default\footnote{This means if your first footnote in a page is a Roman footnote, then the footnote-rule will appear on the left bottom side of the page and if your first footnote in a page is a Persian footnote, then the footnote rule will appear on the right bottom side of the page.}. + +\File{OPTION!} +If you wish all Roman footnote numbers appear in Roman instead Persian, then you can load \XePersian\ with the appropriate option as follow: + \Mac \usepackage[RomanFootNum]{xepersian} +In addition to this, two commands: \n\PersianFootNum\ and \n\RomanFootNum\ are provided, as you might have guessed from the name of the commands \n\PersianFootNum\ puts the number of all Roman footnote in Persian and \n\RomanFootNum\ puts the number of all Roman footnotes in Roman. + +\subsubsection{The bibitem Numbers} + +\File{OPTION!} +\XePersian\ will put the numbers of all Roman \n\bibitem\ In Roman by default, but if you wish that all Roman \n\bibitem\ numbers appear in Persian, you can load \XePersian\ with the appropriate option as follow: + \Mac \usepackage[PersianBibNum]{xepersian} +In addition to this, two commands: \n\RomanBibNum\ and \n\PersianBibNum\ are provided, the command \n\RomanBibNum\ puts the number of all Roman \n\bibitem\ in Roman and \n\PersianBibNum\ puts the number of all Roman \n\bibitem\ in Persian. + +\File{Summary} +If you wish to have Roman \n\bibitem\ numbers in Persian and the Roman footnote numbers in Roman, you can load \XePersian\ with the appropriate options as follow: + \Mac \usepackage[PersianBibNum,RomanFootNum]{xepersian} + +\section{The Counters} +The following counters are defined in the package: +\begin{description} +\mitem arabic + +The main {\UsageFont arabic} counter of \LaTeX\ has been redefined for comaptibility with the package. + +\mitem persian + +Has the effect of the main {\UsageFont arabic} counter of \LaTeX . + +\mitem adadi + +Changes the counting to the Prsian Numbers. + +\mitem harfi + +Changes the counting to the Persian alphabets. + +\mitem tartibi + +Changes the counting to the Persian ordering numbers. +\end{description} +\section{Typesetting Persian Poems} +To typeset a poem, you will nead to load \textsf{persianpoem} package as this package is not loaded by default and then use \textsf{oldpoem} or its starred version (\textsf{oldpoem*}). The \textsf{oldpoem} has the following syntax: +\begin{LVerb} + \begin{oldpoem} + <verse1>&<verse2>\\ + <verse3>&<verse4>\\ + \end{oldpoem} +\end{LVerb} +\section{Multicolumns Typesetting} +To typeset a text in multicolumns, you need to load \textsf{fmultico} package and use the \textsf{multicols} environment which has the following syntax: +\begingroup +\catcode`\<=12 +\begin{Ex} + "\begin{multicols}{<number of columns>}" + <text> + "\end{multicols}" +\end{Ex} +\endgroup +\section{The Persian Case} +The Persian case is also defined which has the following syntax: +\begin{LVerb} + $$\rcases{\mbox{<branch1>}\cr\mbox{<branch2>}\cr ...} + \mbox{<main>}$$ +\end{LVerb} +\section{Index Generation} +To generate index, you will need to place \textsf{persian.xdy} file in the current directory and then open a \textsf{command prompt} and do the following: +\begin{LVerb} + tex2xindy < filename.idx > filename.raw + xindy -I xindy -M persian.xdy filename.raw +\end{LVerb} +\begin{drivers} +To generate index, the page counter should be \textsf{persian}\footnote{This is the default counter.}. +\end{drivers} +\endinput diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-magazine.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-magazine.tex new file mode 100644 index 00000000000..489e5b1cdce --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-magazine.tex @@ -0,0 +1,262 @@ +\part{Magazine Typesetting} +\section{Introduction} +\textsf{xepersian-magazine} class allows you to create magazines, newspapers and any other types of papers. The output document has a front page and as many inner pages as desired. Articles appear one after another, telling the type, number of columns, heading, subheading, images, author and so forth. It is possible to change the aspect of (almost) everything therefore it is highly customizable. Commands to add different titles, headings and footers are also provided. +\section{Usage} +To create a magazine just load the class as usual\footnote{You also need to load \XePersian\ after loading the document class and choose fonts for the main text, Roman text and digits in maths formuals. For more detail see section \ref{s-1} of the manual.}, with +\begingroup +\catcode`\<=12 + \Mac \documentclass`[<class-options>]'{xepersian-magazine} +\endgroup +at the beginning of your source file. The class options are described in section \ref{s-options}. + +From this point it is possible to include packages and renew class commands described in section \ref{s-custom}. +\subsection{Front Page} + +\File{\small frontpage} +As every magazine, \textsf{xepersian-magazine} has its own front page. It includes main headings, an index, the magazine logo and other useful information. This environment should be the first you use within \textsf{xepersian-magazine} class but it is not mandatory. + +\File{\small\n\firstimage} +\File{\small\n\firstarticle} +The first two commands you can use inside the {\UsageFont frontpage} environment are \n\firstimage\ and \n\firstarticle\ which include, respectively, the main image and the main heading in the front page. The first one takes two arguments "<image>" and "<description>". Notice that second argument is optional and it declares the image caption; "<image>" defines the relative path to the image. In order to include the first piece of article use +\begingroup +\catcode`\<=12 + \Mac \firstarticle{<title>}{<opening>}{`<time>'} +\endgroup +first two arguments are mandatory and represent heading and the opening paragraph. Last argument is optional (you can leave it blank) and indicates the time when article happened. + +\File{\footnotesize\n\secondarticle} +The second piece of article is included using the command \n\secondarticle\ just as the first article. The main difference are that this second piece has two more arguments and it does not include an image. +\begingroup +\catcode`\<=12 + \Mac \secondarticle{<title>}{<subtitle>}{<opening>} + \Mac {<pagesof>}{`<time>'} +\endgroup +The new arguments "<subtitle>" and "<pagesof>" define a subtitle and the name of the section for this piece of article. + +\File{\small\n\thirdarticle} +The third piece of article is the last one in the \textsf{xepersian-magazine} front page. It works like the \n\secondarticle. +\begingroup +\catcode`\<=12 + \Mac \thirdarticle{<title>}{<subtitle>}{<opening>} + \Mac {<pagesof>}{`<time>'} +\endgroup +The arguments meaning is the same as \n\secondarticle\ command. + +\File{\small indexblock} +\File{\small authorblock} +\File{\small weatherblock} +The front page includes three information blocks besides the news: {\UsageFont indexblock} which contains the index, {\UsageFont authorblock} which includes information about the author and a {\UsageFont weatherblock} containing a weather forecast. All these three environments are mostly a frame in the front page therefore they can be redefined to fit your personal wishes but I kept them to give an example and to respec the original \textsf{xepersian-magazine} format. + +\File{\small \n\indexitem} +The {\UsageFont indexblock} environment contains a manually editted index of \textsf{xepersian-magazine}. It takes one optional argument "<title>" and places a title over the index block. To add entries inside the index just type +\begingroup +\catcode`\<=12 + \Mac \indexitem{`<title>'}{<reference>} +\endgroup +inside the environment. The "<title>" is the index entry text and the "<reference>" points to a article inside \textsf{xepersian-magazine}. It will be more clear when you read subsecton \ref{sub-1}. In order to get a correct output, it is necessary to leave a blank line between index items. + +The {\UsageFont authorblock} environment can include whatever you would like. I called it {\UsageFont authorblock} because I think it is nice to include some author reference in the front page: who you are, why are you doing this... This environment creates a frame box in the bottom right corner of the front page with your own logo at the top. + +\File{\small\n\weatheritem} +Finally, the {\UsageFont weatherblock} lets you include a weather forecast. It takes one optional argument "<title>" that places a title over the weather block. It can fit up to three weather icons with maximum and minimum temperatures, description and name. To add each of the weather entries type the following +\begingroup +\catcode`\<=12 + \Mac \weatheritem{<image>}{<day-name>}{<max>} + \Mac {<min>}{<short-des>} +\endgroup +The first argument includes the path to the weather icon (i.e. sunny or rainy), "<day-name>" like Monday, "<max>" and "<min>" are the highest and lowest day temperatures and "<short-des>" is a brief description of the weather condition: partly cloudy, sunny and windy \ldots +\subsection{Inside\label{sub-1}} +Once we have created the front page we should include all articles inside our magazine. \textsf{xepersian-magazine} arranges all articles one after each other, expanding headings all over the page and splitting the article text in the number of columns we wish. There are three different environments to define a piece of article: the {\UsageFont article} environment described in section \ref{subsub-1}, the {\UsageFont editorial} environment \ref{subsub-2} for opinion articles and the {\UsageFont shortarticle} environment explained in \ref{subsub-3}. +\subsubsection{The article environment\label{subsub-1}} + +\File{\small article}The main environment to include a piece of article is called {\UsageFont article}. It takes four arguments that set up the headings and structure of the article. +\begingroup +\catcode`\<=12 +\begin{Ex} + "\begin{article}{<num-of-columns>}{<title>}{<subtitle>}"\\"{<pagesof>}{<label>}" \\ +\ldots\ "<text>" \ldots\ \\ + "\end{article}" +\end{Ex} +\endgroup + +The first argument "<num-of-columns>" sets the number of columns the article will be divided whereas "<label>" is used when pointing an article from the index in the front page. The rest of the arguments are easy to understand. + +Inside the {\UsageFont article} environment, besides the main text of the article, it is possible to include additional information using several class commands. + +\File{\scriptsize\n\authorandplace} +\File{\small\n\timestamp} +The \n\authorandplace"{<author>}{<place>}" inserts the name of the editor and the place where the article happened in the way many magazines do. Another useful command is \n\timestamp"{<time>}" which includes the time and a separator just before the text. These two commands should be used before the text because they type the text as the same place they are executed. + +\File{\small\n\image} +To include images within the text of an article, \textsf{xepersian-magazine} provides an \n\image\ command. Since \textsf{fmultico} package does not provide any float support for its \textsf{multicols} environment, I created a macro that includes an image only if that is possible, calculating if there is enough space for the image.It is not the best solution but it works quite well and I could not find a better one. To include an image use the command and its two arguments: the relative path to the image and a short description. +\begingroup +\catcode`\<=12 + \Mac \image{<image>}{<description>} +\endgroup + +\File{\small\n\columntitle} +\File{\footnotesize\n\expandedtitle} +Within the text of the article, it is possible to add column and expanded titles. The main difference between them is that the first one keeps inside the width of an article column whereas the second expands all over the width of the page, breaking all the columns. Their use is analogous, as follows +\begingroup +\catcode`\<=12 + \Mac \columntitle{<type>}{<text>} + \Mac \expandedtitle{<type>}{<text>} +\endgroup +These two commands use \textsf{fancybox} package features. That’s why there are five different types of titles which correspond mainly with fancybox ones: \textsf{shadowbox}, +\textsf{doublebox}, \textsf{ovalbox}, \textsf{Ovalbox} and \textsf{lines}. +\subsubsection{The editorial environment\label{subsub-2}} + +\File{editorial} +In addition to the editorial article environment, one can use the editorial environment to create editorial or opinion texts. The main feature is that it transforms the style +of the heading. Although this environment accepts all the commands article takes, it does not make any sense to use the \n\authorandplace\ command within it since it includes an author argument. To create an editorial text use +\begingroup +\catcode`\<=12 +\begin{Ex} +"\begin{editorial}{<num-of-columns>}{<title>}{<author>}{<label>}"\\ + \ldots\ "<text>" \ldots\ \\ + "\end{editorial}" +\end{Ex} +\endgroup +All arguments have the same meaning as article environment (see \ref{subsub-1}). +\subsubsection{The shortarticle environment\label{subsub-3}} + +\File{\small shortarticle} +The shortarticle environment creates a block of short article. Althought it has its own title and subtitle, each piece of article within it may have a title. To use it just +type: +\begingroup +\catcode`\<=12 +\begin{Ex} +"\begin{shortarticle}{<num-of-columns>}{<title>}{<subtitle>}{<label>}"\\ +\ldots\ "<text>" \ldots\ \\ +"\shortarticleitem{<title>}{<text>}"\\ +\ldots\ \\ +"\end{shortarticle}" +\end{Ex} +\endgroup +You can also specify the number of columns of the block like editorial and article environments. To add a piece of article inside the shortarticle use the \n\shortarticleitem, indicating a title and the text of the issue. +\subsubsection{Commands between articles} + +\File{\n\articlesep} +\File{\small\n\newsection} +There are two commands you can use among the articles inside \textsf{xepersian-magazine}: \n\articlesep\ and \n\newsection. The first one does not take any parameter and just draws a line between two articles. The second changes the content of "\xepersian@section" to the new "<section name>". From the point it is used, all articles which follow will be grouped within the new section. +\begingroup +\catcode`\<=12 + \Mac \newsection{<section name>} +\endgroup + + +\section{Customization\label{s-custom}} +\textsf{xepersian-magazine} includes many commands which can be used to customize its aspect, from the front page to the last page. I will list them grouped so it is easy to find +them. Treat them as standard \LaTeX\ commands, using \n\renewcommand\ to change +their behaviour. +\subsection{Front Page} + +\File{\small\n\customlogo} +\File{\scriptsize\n\customminilogo} +\File{\tiny\n\custommagazinename} +When creating a magazine, everyone wants to show its own logo instead of \textsf{xepersian-magazine} default heading. To achieve this, you need to put the following command at the preamble of your document: +\begingroup +\catcode`\<=12 + \Mac \customlogo{<text>} + \Mac \customminilogo{<text>} + \Mac \custommagazinename{<text>} +\endgroup + +\File{\n\edition} +\File{\footnotesize\n\editionformat} +The edition text has to be declared in the preamble of the document. One important thing to know is that \n\author, \n\date\ and \n\title\ have no effect inside \textsf{xepersian-magazine} since the magazine date is taken from \n\today\ command and the other two are only for the title page (if using \n\maketitle). + +\newpage +\File{\footnotesize\n\indexFormat} +\File{\tiny\n\indexEntryFormat} +\File{\tiny\n\indexEntryPageTxt} +\File{\tiny\n\indexEntryPageFormat} +\File{\tiny\n\indexEntrySeparator} +When defining the index in the front page, there are several commands to customize the final index style. \n\indexFormat\ sets the format of the title; \n\indexEntryFormat, the format of each index entry; \n\indexEntryPageTxt\ and \n\indexEntryPageFormat\ lets you define which is the text that goes with the page number and its format. Finally, \textsf{xepersian-magazine} creates a thin line between index entries, you can redefine it using \n\indexEntrySeparator. To get the index with "xepersian@indexwidth" is provided. +\vskip 3.5cm + +\File{\tiny\n\weatherFormat} +\File{\tiny\n\weatherTempFormat} +\File{\tiny\n\weatherUnits} +Relating to the weather block, the title format can be changed redefining \n\weatherFormat. In order to customize the format of the temperature numbers and their units it is necessary to redefine \n\weatherTempFormat\ and \n\weatherUnits\ respectively. +\vskip 3cm + +\File{\tiny\n\*TitleFormat} +\File{\tiny\n\*SubtitleFormat} +\File{\tiny\n\*TextFormat} +The main article that appear in the front page can change their formats. To obtain that there are three standard commands to modify the title, subtitle and text style. You just have to replace the star ("*") with first, second or third depending on which article you are editing. Note that first piece of article has no subtitle therefore it does not make any sense to use the non-existent command \n\firstSubtitleFormat. +\vskip 2cm + +\File{\tiny\n\pictureCaptionFormat} +\File{\tiny\n\pagesFormat} +Two other elements to configure are the picture captions and the pages or section format in the entire document. To proceed just redefine the macros \n\pictureCaptionFormat\ and \n\pagesFormat. +\newpage +\subsection{Inside The Magazine} +\File{\tiny\n\innerTitleFormat} +\File{\tiny\n\innerSubtitleFormat} +\File{\tiny\n\innerAuthorFormat} +\File{\tiny\n\innerPlaceFormat} +The articles inside \textsf{xepersian-magazine} may have a different format from the ones in the front page. To change their title or subtitle format redefine \n\innerTitleFormat\ and \n\innerSubtitleFormat. The article text format matches the document general definition. When using the \n\authorandplace\ command, you might want to change the default style. Just renew \n\innerAuthorFormat\ and \n\innerPlaceFormat\ to get the results. +\vskip 3cm + +\File{\tiny\n\timestampTxt} +\File{\tiny\n\timestampSeparator} +\File{\tiny\n\timestampFormat} +The \n\timestamp\ command described in section \ref{subsub-1} lets you introduce the time of the event before the article text. You can configure its appearance by altering +several commands: \n\timestampTxt\ which means the text after the timestamp; \n\timestampSeparator\ which defines the element between the actual timestamp and the beginning of the text and, finally, \n\timestampFormat\ to change the entire timestamp format. +\vskip 2cm + +\File{\tiny\n\innerTextFinalMark} +\textsf{xepersian-magazine} puts a small black square at the end of the article. As I wanted to create a highly customizable \LaTeX\ class I added the macro \n\innerTextFinalMark\ to change this black square. This item will appear always following the last character of the text with the "~" character. + +\File{\tiny\n\minraggedcols} +\File{\tiny\n\raggedFormat} +The \n\minraggedcols\ counter is used to tell \textsf{xepersian-magazine} when article text should be ragged instead of justified. The counter represents the minimum number of columns that are needed in order to use ragged texts. For example, if \n\minraggedcols\ is set to 3, all articles with 3 columns or more will be ragged. Articles with 1, 2 columns will have justified text. By default, \n\minraggedcols\ is set to 4. + +The \n\raggedFormat\ macro can be redefined to fit user ragged style. Default value is \n\RaggedLeft. + +\File{\n\heading} +\File{\n\foot} +\textsf{xepersian-magazine} includes package \textsf{fancyhdr} for changing headings and footers. Although it is possible to use its own commands to modify \textsf{xepersian-magazine} style, there are two commands to change headings and foot appearance. Place them in the preamble of your \textsf{xepersian-magazine} document. +\begingroup +\catcode`\<=12 + \Mac \heading{<left>}{<center>}{<right>} + \Mac \foot{<left>}{<center>}{<right>} +\endgroup +If you still prefer to use fancyhdr macros, use them after the {\UsageFont frontpage} environment. + +\begin{drivers} +\textsf{xepersian-magazine} by default places no headers and footers. If you want headers and foooters, then after loading \textsf{xepersian} package, you should write "\pagestyle{fancy}" at the preamble of your document. +\end{drivers} + +\section{Class Options\label{s-options}} +The \textsf{xepersian-magazine} class is in itself an alteration of the standard \textsf{article} class, thus +it inherits most of its class options but \textsf{twoside}, \textsf{twocolumn}, \textsf{notitlepage} and +\textsf{a4paper}. If you find problems when loading other article features, please let me +know to fix it. + +There are also five own options that \textsf{xepersian-magazine} implements. +\begin{description} +\mitem a3paper + +(false) This option makes \textsf{xepersian-magazine} 297 mm width by 420 mm height. +This option is implemented because the standard \textsf{article} class does not +allow this document size. + +\mitem 9pt + +(false) Allows the 9pt font size that \textsf{article} class does not include (default +is 10pt). + +\mitem columnlines + +(false) Adds lines between columns in the entire \textsf{xepersian-magazine}. The +default line width is 0.1pt but it is possible to change this by setting length +\n\columnlines\ in the preamble. + +\mitem showgrid +(false) This option is only for developing purposes. Because the front +page has a personal design using the textpos package, I created this grid to +make easier the lay out. +\end{description} +\endinput diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-presentation.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-presentation.tex new file mode 100644 index 00000000000..8f3e0762e88 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-presentation.tex @@ -0,0 +1,200 @@ +\part{Producing Presentations} +At the moment, there are two classes that you can prepare your presentations with. These classes are: +\section{xepersian-presentations class} +\textsf{xepersian-presentation} is a simple class for presentations to be shown on screen or beamer. It is derived from \LaTeX 's +article class.The “virtual paper size” of documents produced by this class: width=128mm, +height=96mm. \textsf{xepersian-presentation} requires that the \textsf{fancyhdr} and \textsf{geometry} packages are available on the system. +Enhancements to the \textsf{xepersian-presentation} class are easily made available by other packages, these include slides with a background from a bitmap (\textsf{eso-pic} +package). + +\subsection{Usage} +The class is used with +\begingroup +\catcode`\<=12 + \Mac \documentclass`[<options>]'{xepersian-presentation} +\endgroup + +\File{OPTION!} +Options of the \textsf{article} class are also available to \textsf{xepersian-presentation}, e. g. "10pt", "11pt", "12pt" for selection of +font size. However, not all options +of the \textsf{article} class will be appropriate for a presentation class, e. g. "twocolumn". + +\File{EXAMPLE} +A simple example document: +\begin{LVerb} + \documentclass[12pt]{xepersian-presentation} + \usepackage{eso-pic} + \usepackage{xepersian} + \settextfont[Scale=1]{XB Zar} + \setromantextfont[Scale=1]{Linux Libertine} + \setdigitfont[Scale=1]{XB Zar} + \pagestyle{pres} + \AddToShipoutPicture{ + \includegraphics{gradient2.png} + } + \begin{document} + \begin{titlepage} + \centering + \distance{1} + { + \Huge \bfseries Title of the presentation \par + } + \vspace{1.3ex} \large + Author\\[2ex]Institution + \distance{2} + \end{titlepage} + \begin{plainslide}[Title of Page] + The first page + \end{plainslide} + \begin{rawslide} + The second page + \end{rawslide} + \end{document} + \end{LVerb} + +The title page can be created within the "titlepage" environment, the "\maketitle" command is not +available. Slides may be created with the "plainslide" environment, you may add the title of the slide with the +optional parameter. The contents of the slide are centered vertically. +Another environment generating a slide is "rawslide": slides are written without title, contents are not vertically +centered. + +The \n\distance"{number}" command allows to introduce vertical space into slides constructed with the +"rawslide" and "titlepage" environments. You should use pairs of "\distance{}" commands with numbers +indicating the relative height of empty space, see the "titlepage" in the example above. + +Pictures can be included with the "includegraphics"-command of the "graphicx"-package. Please be +aware that the dimensions of the pages are 128mm $\times$ 96mm and therefore included graphics are scaled +appropriately. +\subsection{Enhancements to xepersian-presentation} +\subsubsection{Fill background of a presentation with bitmaps} +\textsf{eso-pic} package allows you to paint the background with a picture: +\begin{Ex} +"\usepackage{eso-pic}"\\ +...\\ +"\AddToShipoutPicture{"\\ +"\includegraphics{gradient2.png}"\\ +"}" +\end{Ex} + +\n\AddToShipoutPicture"{}" puts the picture on every page, \n\AddToShipoutPicture"*{}" puts +it on to the current page, \n\ClearShipoutPicture\ clears the background beginning with the current +page. Details of "eso-pic"'s commands can be found in its own documentation. + +\section{beamer Class} +\XePersian\ currently works with \textsf{beamer} class quite well and all should go well with \textsf{default}, \textsf{Warsaw}, \textsf{Goettingen}, \textsf{Hannover}, \textsf{Malmoe}, \textsf{Marburg}, \textsf{Montpellier}, \textsf{PaloAlto}, \textsf{Pittsburgh}, \textsf{Singapore}, \textsf{Szeged} and \textsf{xepersian-JLTree}\footnote{\textsf{xepersian-JLTree} theme is the modified version of \textsf{JLTree} theme.} themes but other themes are not yet supported. + +\begin{Warning} +I have defined some new environments for beamer and you should use these new environments instead beamer's original environments. These new environments are: +\end{Warning} +\begin{Ex} +"\begin{"\textbf{\PersianTxt{قضیه}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{قضیه}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{قضیه}} environment instead \textbf{theorem} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{نتیجه}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{نتیجه}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{نتیجه}} environment instead \textbf{corollary} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{حقیقت}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{حقیقت}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{حقیقت}} environment instead \textbf{fact} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{لما}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{لما}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{لما}} environment instead \textbf{lema} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{مسئله}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{مسئله}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{مسئله}} environment instead \textbf{problem} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{پاسخ}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{پاسخ}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{پاسخ}} environment instead \textbf{solution} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{تعریف}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{تعریف}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{تعریف}} environment instead \textbf{definition} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{تعریفها}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{تعریفها}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{تعریفها}} environment instead \textbf{definitions} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{مثال}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{مثال}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{مثال}} environment instead \textbf{example} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{مثالها}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{مثالها}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{مثالها}} environment instead \textbf{examples} environment. + +\begin{Ex} +"\begin{"\textbf{\PersianTxt{اثبات}}"}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{اثبات}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{اثبات}} environment instead \textbf{proof} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{بلوک}}"}{<title>}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{بلوک}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{بلوک}} environment instead \textbf{block} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{بلوکمثال}}"}{<title>}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{بلوکمثال}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{بلوکمثال}} environment instead \textbf{exampleblock} environment. +\begin{Ex} +"\begin{"\textbf{\PersianTxt{بلوکهشدار}}"}{<title>}" +\ldots\ "<text>" \ldots\ +"\end{"\textbf{\PersianTxt{بلوکهشدار}}"}" +\end{Ex} +You should use \textbf{\PersianTxt{بلوکهشدار}} environment instead \textbf{alertblock} environment. + +\subsection{An Example} + +\File{Example} +\begin{LVerb} + \documentclass{beamer} + \usetheme{Warsaw} + \usepackage{xepersian} + \settextfont[Scale=1]{XB Zar} + \setromantextfont[Scale=1]{Linux Libertine} + \AtBeginDocument{\setdigitfont[Scale=1]{XB Zar}} + \title{<title>} + \subtitle{<subtitle>} + \author{<author>} + \institute{<institute>} + \begin{document} + \begin{frame} + \titlepage + \end{frame} + \begin{frame}{<frame-title>} + \framesubtitle{<frame-subtitle>} + ... <text> ... + \end{frame} + ... + \end{document} +\end{LVerb} +\endinput diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-thesis.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-thesis.tex new file mode 100644 index 00000000000..761621572a5 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-thesis.tex @@ -0,0 +1,54 @@ +\part{Thesis Typesetting} +We typeset thesis by a class called \textsf{xepersian-thesis} which is the modified version of \textsf{report} class, therefore it contains all the commands and options that \textsf{report} class has. I just give an input example since the commands are easy to understand and this manual is already too long and boring enough! + +\begin{LVerb} + \documentclass[a4paper,11pt]{xepersian-thesis} + \usepackage{xepersian} + \settextfont[Scale=1]{XB Zar} + \setromantextfont[Scale=1]{Linux Libertine} + \setdigitfont[Scale=1]{XB Zar} + \begin{document} + \title{<title name in Persian>} + \author{<author name in Persian>} + \degree{<degree name in Persian>} + \supervisor{<supervisor name in Persian>} + \department{<department name in Persian>} + \university{<university name in Persian>} + \city{<city name in Persian>} + \thesisdate{\today} + \maketitle + \begin{acknowledgementpage} + ... <text> ... + \end{acknowledgementpage} + \begin{abstractpage} + ... <text> ... + \keywords{<text>} + \end{abstractpage} + \tableofcontents + \listoftables + \chapter{<chapter name>} + ... <text> ... + \Roman + \romantitle{<title name in English>} + \romanauthor{<author name in English>} + \romandegree{<degree name in English>} + \romanthesisdate{\romantoday} + \romansupervisor{<supervisor name in English>} + \romandepartment{<department name in English>} + \romanuniversity{<university name in English>} + \romancity{<city name in English>} + \begin{romanabstract} + ... <text> ... + \romankeywords{<text>} + \end{romanabstract} + \makeromantitle + \end{document} +\end{LVerb} + +\begin{Warning} +\begin{itemize} +\item You should rename the image of your university logo to \textsf{logo} and put it in the current directory so \XePersian\ can compile your document correctly. +\item The argument of \n\romanuniversity\ does not contain the word {\UsageFont University} so this means you have to type it yourself, i.e. If your want to produce \textsf{University of Tehran}, then you have to type \texttt{University of Tehran} for "<university name in English>". +\end{itemize} +\end{Warning} +\endinput diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.pdf b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.pdf Binary files differnew file mode 100644 index 00000000000..8adc34b6442 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.pdf diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.tex new file mode 100644 index 00000000000..fac6631f853 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-user-english.tex @@ -0,0 +1,22 @@ +\documentclass[11pt]{xepersian-user} +\setmainfont[Mapping=tex-text]{Junicode} +\setPersianFont{XB Zar} +\def\Date{09/01/05} +\def\Version{0.163} +\includeonly{% +xepersian-cove,% +xepersian-esse,% +xepersian-magazine,% +xepersian-thesis,% +xepersian-presentation% +} +\makeindex +\begin{document} +\include{xepersian-cove} % Cover page; Table of Contents +\include{xepersian-esse} % Welcome to XePersian; The essentials +\include{xepersian-magazine} +\include{xepersian-thesis} +\include{xepersian-presentation} + + +\end{document} diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.pdf b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.pdf Binary files differdeleted file mode 100644 index 2d53b6c5d76..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.tex b/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.tex deleted file mode 100644 index 204b9df9c1a..00000000000 --- a/Master/texmf-dist/doc/xelatex/xepersian/xepersian-userguide.tex +++ /dev/null @@ -1,411 +0,0 @@ -\documentclass{article} -\usepackage{makeidx} -\makeindex -\usepackage{pstricks} -\usepackage{pst-func} -\usepackage{pstricks-add} -\usepackage{xepersian} -\usepackage{persianpoem,fmultico} -\newfontinstance\farsifont[Script=Arabic,Scale=1,Mapping=parsidigits]{XB Zar} -\newfontinstance\nastaliq[Script=Arabic,Scale=1,Mapping=parsidigits]{IranNastaliq} -\setdigitfont[Scale=1, Mapping=parsidigits]{XB Zar} -\addtolength{\hoffset}{-2cm} -\addtolength{\textwidth}{3cm} -\newcommand{\textblue}[1]{{\addfontfeature{Color=0000FF}#1}} -\usepackage{setspace} -\usepackage{perpage} -\numberwithin{equation}{section} -\numberwithin{table}{section} -\onehalfspacing -\newcommand\femph[1]{\lr{''}#1\lr{``}} -\frenchspacing -\title{راهنمای بستهٔ \lr{\XePersian}} -\author{گروه فارسی-لاتک\footnote{مصطفی واحدی \texttt{mostafa.vahedi@gmail.com}، وفا خلیقی \texttt{vafa.khalighi@students.mq.edu.au}، و مهدی امیدعلی \texttt{mehdioa@gmail.com}}} -\begin{document} -\maketitle -\twocolumnstableofcontents -\pagenumbering{farsi} -\begin{abstract} -\lr{\XePersian} -یک بسته برای نگارش مستندات فارسی در -\lr{\XeLaTeX} -است. -هدف \lr{\XePersian} این است که یک استفاده کنندهٔ معمولی قادر باشد به راحتی به حروفچینی فارسی بپردازد. در - حال حاضر \lr{\XePersian} با کلاسهای \lr{article, amsart, amsbook, report, book, bookest, refrep} و \lr{beamer} به زیبایی و آسانی کار میکند. - \end{abstract} -\section{موارد مورد نیاز} -برای استفاده از \lr{\XePersian} باید \lr{\XeTeX} روی سیستم شما نصب باشد. اگر از \lr{MikTex 2.7} یا بالاتر، و یا از \lr{TeXLive 2008} -و یا بالاتر استفاده میکنید، \lr{\XeTeX} به طور خودکار روی سیستم شما نصب شده است. تنها کاری که باید در این صورت انجام دهید نصب و -تنظیم یک ویرایشگر مناسب برای کار است. لیست کنترل زیر ابزارهای لازم را برای کار با این بسته به شما نشان میدهد. -\begin{enumerate} -\item توزیع مناسبی از تک مانند تکلایو یا میکتک. -\item نرمافزار مناسب ویرایش متنهای یونیکد (در ویندوز \lr{notepad++}\footnote{قابل دریافت از \LR{\texttt{http://notepad-plus.sourceforge.net/}}} و در لینوکس \lr{gedit}). -\item نرمافزار مناسب نمایش فایلهای پی.دی.اف (در ویندوز توصیه میشود از \lr{foxit reader}\footnote{قابل دریافت از \lr{\texttt{http://www.foxitsoftware.com/}}} به جای آکروبات ریدر استفاده شود). -\end{enumerate} -از آنجا که کاربران ایرانی معمولا از ویندوز استفاده میکنند و با توجه به اینکه یک ویرایشگر مناسب زندگی را برای کاربر بسیار راحت میکند، در ادامه -روش نصب و تنظیم ویرایشگر مناسب را در ویندوز به طور کامل شرح میدهیم. توجه داشته باشید که فرض بر این است یک توزیع مناسب از تک (مانند تکلایو یا میکتک) - و همچنین فاکسیت ریدر روی سیستم شما نصب است. - -فایل نصبکنندهٔ \lr{notepad++} را اجرا کنید ( توجه داشته باشید که جدیدترین نسخه این فایل را از صفحهٔ خانگی این نرمافزار دریافت کرده باشید). -سپس به صورتی که در شکلهای زیر نشان داده شده است نرمافزار را نصب و تنظیم کنید. - -\centerline{\XeTeXpicfile "notepad1.PNG" height 7cm} -\centerline{\XeTeXpicfile "notepad2.PNG" height 5cm} -\centerline{\XeTeXpicfile "notepad3.PNG" height 5cm} - -بعد از آخرین شکل، گزینهٔ \lr{save} را فشار دهید و فرمان را با نام \lr{xelatex} ذخیره کنید. از این به بعد با فشردن کلید \lr{F6} میتوانید به راحتی -فایل خود را پردازش کنید. بعد از یک بار پردازش، میتوانید به راحتی با فشردن \lr{CTRL+F6} فایل خود را مستقیماً پردازش کنید. - -برای استفادهٔ بهینه از این ویرایشگر، بهتر است راهنمای آنرا مطالعه کنید. فقط به عنوان یک مطلب که ممکن است برای شما مفید باشد، هنگام ویرایش متنهای فارسی، -با فشردن \lr{ALT+CTRL+R} صفحه نمایش از راست به چپ قرار میگیرد و بنابراین کار شما راحتتر میشود. برای برگشتن به حالت چپبهراست کافی است -\lr{ALT+CTRL+L} را فشار دهید. -\section{نمونهٔ فایل ورودی} -یک نمونه فایل ورودی میتواند به صورت زیر باشد. - -\setLR -\noindent\verb+\documentclass{book}+\\ -\verb+\usepackage{xepersian}+\\ -\verb+\newfontinstance\farsifont[Script=Arabic,Scale=1,Mapping=parsidigits]{XB Zar}+\\ -\verb+\setdigitfont[Script=Arabic,Mapping=farsidigits]{XB Zar}+\\ -\verb+\title{+\rl{عنوان }\verb+}+\\ -\verb+\author{+\rl{نام نویسنده}\verb+}+\\ -\verb+\begin{document}+\\ -\verb+\maketitle+\\ -\verb+\tableofcontents+\\ -\verb+\chapter{+\rl{فصل اول}\verb+}+\\ -\verb+\section{+\rl{بخش اول}\verb+}+\\ -\vdots\\ -\verb+\end{document}+ -\setRL - -همانطور که میبینید شکل فایل ورودی هیچگونه تفاوتی با یک فایل استاندارد لاتک ندارد. تنها ممکن است فرمانهای خط سوم و چهارم این فایل نمونه برای شما -نا آشنا باشند که در قسمتهای بعد به توضیح آنها میپردازیم. به طور کلی در استفاده از طبقههای استاندارد لاتک به جز فراخوانی بستهٔ \lr{\XePersian} هیچ -کار اضافهای لازم نیست که انجام دهید. تنها به عنوان یک توصیه، سعی کنید {\Large\nastaliq\textblue{ این بسته آخرین بستهای باشد که فراخوانی میکنید.}} همچنین توجه داشته باشید که -بستههای زیر به طور خودکار فراخوانی میشوند و شما نباید آنها را مستقیماً در فایل فراخوانی کنید. - -\begin{center}\lr{amsmath, amssymb, amsthm, graphicx.}\end{center} - -همچنین بسته \lr{\XePersian} هنوز قابلیت استفاده از طبقهٔ \lr{memoir} را ندارد، ولی در آینده این امکان نیز افزوده خواهد شد. -\section{فرمانهای بسته} -در این قسمت تعدادی از فرمانهای مفید را که لازم است بدانید شرح میدهیم. تعدادی از این فرمانها مربوط به خود بستهٔ \lr{\XePersian} است و تعدادی هم مربوط -به بستههایی است که این بسته به طور خودکار فراخوانی میکند، ولی لازم است که این فرمانها را بدانید. در جدول \ref{commands} فرمانهای بسته را مشاهده -میکنید. همچنین در بسته چند نوع شمارنده تعریف شده است که در جدول \ref{counters} مشاهده میکنید. - - - -\begin{table}[hbp] -\begin{center} -\begin{tabular}{|r|l|} -\hline - فرمان & شرح\\ - \hline - \verb+\farsifont+& قلم فارسی را برای حروفچینی به کار میبندد (پیشفرض)\\ -\hline -\verb+\setRL+&جهت پاراگرافها را راست به چپ میکند (پیشفرض) \\ -\hline - \verb+\setLR+&جهت پاراگرافها را چپ به راست میکند\\ -\hline -\verb+\footnote{...}+&برای درج یک پانوشت فارسی \\ -\hline -\verb+\Footnote{...}+&برای درج یک پانوشت انگلیسی \\ -\hline -\verb+\today+&درج تاریخ جاری خورشیدی\\ -\hline -\verb+\rldblcolumn+&ترتیب ستونها را در یک متن چندستونی از راست به چپ میکند (پیشفرض)\\ -\hline -\verb+\lrdblcolumn+&ترتیب ستونها را در یک متن چندستونی از چپ به راست میکند \\ -\hline -\verb+\twocolumnstableofcontents+ & فهرست مطالب را در دو ستون میچیند (نیاز به فراخوانی \verb+fmultico+ دارد)\\ -\hline -\verb+\lr{...}+&یک متن کوتاه انگلیسی را در یک پاراگراف فارسی قرار میدهد\\ -\hline - \verb+\rl{...}+&یک متن کوتاه فارسی را در یک پاراگراف انگلیسی قرار میدهد\\ -\hline -\verb+\begin{english}+&شروع محیط انگلیسی \\ - \verb+\end{english}+&پایان محیط انگلیسی\\ -\hline -\end{tabular} -\end{center} -\caption{فرمانها}\label{commands} -\end{table} - -\begin{table}[hbp] -\begin{center} -\begin{tabular}{|r|l|} -\hline - شمارنده & شرح\\ -\hline -\verb+arabic+&شمارندهٔ عربی اصلی لاتک برای سازگاری با بسته از نو تعریف شده است. \\ -\hline - \verb+farsi+&همان اثر شمارنده \verb+arabic+ اصلی لاتک را دارد.\\ -\hline -\verb+adadi+& شمارنده را به صورت یک، دو، سه، \ldots تغییر میدهد. \\ -\hline -\verb+harfi+&شمارنده را به صورت ا، ب، پ، \ldots تغییر میدهد.\\ -\hline -\end{tabular} -\end{center} -\caption{شمارندهها}\label{counters} -\end{table} - -\section{استفاده از قلمهای مختلف} -بستهٔ \lr{fontspec}، که به صورت خودکار فراخوانی میشود، امکان استفاده از قلمهای موجود در سیستم را فراهم میکند. برای استفاده از \lr{\XePersian} -لازم است که حداقل یک قلم با نام \lr{farsifont} را تعریف کنید که به صورت زیر انجام میشود: - -\begin{english}\verb+\newfontinstance\farsifont[Script=Arabic,Scale=1,Mapping=parsidigits]{XB Zar}+\end{english} - -این فرمان، قلم \lr{XB Zar} را به عنوان قلم فارسی معرفی میکند. گزینهٔ \verb+Scale=Arabic+ ضروری است تا حروف فارسی به هم بچسبند. گزینهٔ -\verb+Scale=1+ اندازهٔ قلم را یک برابر اندازهٔ نرمال آن تعریف میکند که مقدار ۱ قابل تغییر است. گزینهٔ \verb+Mapping=parsidigits+ اعداد را در محیط فارسی -با ارقام فارسی نمایش میدهد. - -به همین ترتیب میتوانید هر تعداد از قلمهایی را که مایل هستید، با نامهای مختلف تعریف کنید. مثلا فرمان - -\begin{english}\verb+\newfontinstance\nastaliq[Script=Arabic,Scale=2]{IranNastaliq}+\end{english} - -قلم نستعلیق را معرفی میکند که میتوانید از آن به صورت زیر استفاده کنید: - -\setLR\begin{center}\verb+{\nastaliq+ \rl{نمونهٔ متن با قلم نستعلیق} \verb+}+\end{center}\setRL - -که اثر آن همانند متن زیر است: - -\begin{center}{\Large\nastaliq نمونهٔ متن با قلم نستعلیق}\end{center} - -قلمی را که اعداد در محیط ریاضی با آن نگارش میشوند میتوانید به دلخواه انتخاب کنید. برای این کار، فرمان زیر را در سرآغاز فایل خود قرار دهید. - -\begin{english} -\verb|\setdigitfont[|Scale=1, Mapping=parsidigits\verb|]{|XB Zar\verb|}| -\end{english} - -به این ترتیب قلم \lr{XB Zar} را برای نمایش اعداد در فرمولها انتخاب میکنید. اگر قلم اعداد را مشخص نکنید، قلم پیشفرض مورد استفاده قرار میگیرد. - -همچنین میتوانید قلمی را که با آن متنهای انگلیسی نگارش میشوند با فرمان زیر تعیین کنید. - -\begin{english} -\verb|\setromanfont[|Scale=1, Mapping=tex-text\verb|]{|Times New Roman\verb|}| -\end{english} - -\textblue{توجه داشته باشید که قلم انگلیسی باید بعد از قلم ریاضی تعریف شود.} - اگر قلم انگلیسی معرفی نشود، قلم استاندارد تک مورد استفاده قرار -میگیرد. - -در آخر لازم است که بیان شود قلمهای \lr{farsiweb} به همراه این بسته ارائه شده است. همچنین قلمهای مفید و مجانی سری ایکس ۲ را میتوانید -از \texttt{http://wiki.irmug.org/index.php/X\_Series\_2} تهیه کنید. -\section{حروفچینی شعر} -برای حروفچینی شعر باید فرمان زیر را در سرآغاز فایل خود قرار دهید: - -\begin{english} -\verb+\usepackage{+persianpoem,fmultico\verb+}+ -\end{english} -بعد از این کار به راحتی میتوانید شعر را حروفچینی کنید. -{\nastaliq\doublespacing -\begin{oldpoem} - -هله رفتیم و گرانی ز جمالت بردیم& -جهت توشهٔ ره ذکر وصالت بردیم\\ -تا که ما را و ترا تذکرهٔ خوش باشد& -دل خسته بتو دادیم و خیالت بردیم\\ -آن خیال رُخ خوبت که قمر بندهٔ اوست& -وان خَم ابروی مانند هلالت بردیم\\ -و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست& -ز شکر خانهٔ مجموع خصالت بردیم\\ -چون کبوتر چو بپریم بتو بازآییم& -زانکه ما این پَر و بال از پَر و بالت بردیم\\ -هر کجا پرد فرعی، بسوی اصل آید& -هر چه داریم هم از عزّ و جلالت بردیم\\ -شمس تبریز شنو خدمت ما را زصبا& -گر شمالست و صبا هم ز شمالت بردیم - -\end{oldpoem} -} -شعر بالا با کد زیر تولید شده است: - -\setLR -\noindent\verb|\begin{oldpoem}|\\ -\rl{هله رفتیم و گرانی ز جمالت بردیم}\verb|&|\\ -\rl{جهت توشهٔ ره ذکر وصالت بردیم}\verb|\\|\\ -\rl{تا که ما را و ترا تذکرهٔ خوش باشد}\verb|&|\\ -\rl{دل خسته بتو دادیم و خیالت بردیم}\verb|\\|\\ -\rl{آن خیال رُخ خوبت که قمر بندهٔ اوست}\verb|&|\\ -\rl{وان خَم ابروی مانند هلالت بردیم}\verb|\\|\\ -\rl{و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست}\verb|&|\\ -\rl{ز شکر خانهٔ مجموع خصالت بردیم}\verb|\\|\\ -\rl{چون کبوتر چو بپریم بتو بازآییم}\verb|&|\\ -\rl{زانکه ما این پَر و بال از پَر و بالت بردیم}\verb|\\|\\ -\rl{هر کجا پرد فرعی، بسوی اصل آید}\verb|&|\\ -\rl{هر چه داریم هم از عزّ و جلالت بردیم}\verb|\\|\\ -\rl{شمس تبریز شنو خدمت ما را زصبا}\verb|&|\\ -\rl{گر شمالست و صبا هم ز شمالت بردیم}\\ -\verb|\end{oldpoem}|\\ -\setRL - -این محیط دارای حالت ستارهدار نیز میباشد که اثر آن به صورت زیر است. -\begin{oldpoem*} -هله رفتیم و گرانی ز جمالت بردیم& -جهت توشهٔ ره ذکر وصالت بردیم\\ -تا که ما را و ترا تذکرهٔ خوش باشد& -دل خسته بتو دادیم و خیالت بردیم\\ -آن خیال رُخ خوبت که قمر بندهٔ اوست& -وان خَم ابروی مانند هلالت بردیم\\ -و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست& -ز شکر خانهٔ مجموع خصالت بردیم\\ -چون کبوتر چو بپریم بتو بازآییم& -زانکه ما این پَر و بال از پَر و بالت بردیم\\ -هر کجا پرد فرعی، بسوی اصل آید& -هر چه داریم هم از عزّ و جلالت بردیم\\ -شمس تبریز شنو خدمت ما را زصبا& -گر شمالست و صبا هم ز شمالت بردیم -\end{oldpoem*} -شعر بالا با کد زیر تولید شده است: - -\setLR -\noindent\verb|\begin{oldpoem*}|\\ -\rl{هله رفتیم و گرانی ز جمالت بردیم}\verb|&|\\ -\rl{جهت توشهٔ ره ذکر وصالت بردیم}\verb|\\|\\ -\rl{تا که ما را و ترا تذکرهٔ خوش باشد}\verb|&|\\ -\rl{دل خسته بتو دادیم و خیالت بردیم}\verb|\\|\\ -\rl{آن خیال رُخ خوبت که قمر بندهٔ اوست}\verb|&|\\ -\rl{وان خَم ابروی مانند هلالت بردیم}\verb|\\|\\ -\rl{و آن شکرخندهٔ خوبت که شکر تشنهٔ اوست}\verb|&|\\ -\rl{ز شکر خانهٔ مجموع خصالت بردیم}\verb|\\|\\ -\rl{چون کبوتر چو بپریم بتو بازآییم}\verb|&|\\ -\rl{زانکه ما این پَر و بال از پَر و بالت بردیم}\verb|\\|\\ -\rl{هر کجا پرد فرعی، بسوی اصل آید}\verb|&|\\ -\rl{هر چه داریم هم از عزّ و جلالت بردیم}\verb|\\|\\ -\rl{شمس تبریز شنو خدمت ما را زصبا}\verb|&|\\ -\rl{گر شمالست و صبا هم ز شمالت بردیم}\\ -\verb|\end{oldpoem*}|\\ -\setRL -\section{حروفچینی چندستونی} -برای حروفچینی یک متن در چند ستون از محیط زیر استفاده کنید. حداکثر تعداد ستونها ۵ است. - -\setLR -\verb|\begin{multicols}{|\rl{تعداد ستونهای}\verb|}| - -$\vdots$ - -\verb|\end{multicols}| -\setRL - -\section{محیط مورد فارسی} -محیط مورد برای استفاده در فارسی نیز تعریف شده است که در زیر مثال آنرا میبنید: - -$$ -\rcases{\mbox{مرد}\cr\mbox{زن}}\mbox{آدم} -$$ - -طرح بالا با کد زیر نوشته شده است. - -\setLR\verb|$$\rcases{\mbox{|\rl{مرد}\verb|}\cr\mbox{|\rl{زن}\verb|}}\mbox{|\rl{آدم}\verb|}$$|\setRL - - -\section{تولید نمایه} -به همراه این بسته، فایلی ارائه شده است که شما را قادر میسازد به راحتی نمایه برای مستندتان فراهم کنید. خود بسته هیچگونه محدودیتی با نمایهسازی ندارد، -ولی نرمافزار -\lr{makeindex} هنگام مرتب کردن فایل نمایه، ترتیب بعضی از حروف را به درستی رعایت نمیکند. -برای رفع این مشکل، استفاده از \lr{xindy} بجای \lr{makeindex} توصیه میشود. - -اگر از تکلایو ۲۰۰۸ استفاده میکنید \lr{xindy} به طور خودکار روی سیستم شما نصب است. کافی است فایل \lr{farsi.xdy} را که همراه این بسته -ارائه شده است در دایرکتوری جاری قرار دهید و فرمانهای زیر را در خط فرمان اجرا کنید: - -\begin{english} -\noindent\verb|tex2xindy <| filename.idx \verb|>| filename.raw\\ -\verb|xindy -I xindy -M| farsi.xdy filename.raw -\end{english} - -\noindent بعد از انجام این کار، نمایهٔ مرتب شدهٔ شما آمادهٔ تزریق به مستند میشود. - -توجه داشته باشید که اگر میخواهید از نمایه استفاده کنید، باید شمارندهٔ صفحه را در حالت \lr{\texttt{farsi}} قرار دهید. البته شمارندهٔ صفحه به صورت -پیشفرض در این حالت قرار دارد. -\section{فرمولهای ریاضی} -بسته با حروفچینی فرمولهای ریاضی هیچگونه مشکلی ندارد و از آنجا که بستههای \lr{amsmath,amsthm,} و \lr{amssymb} به طور خودکار فراخوانی میشوند، -اکیداً توصیه میشود از فرمانهای کلاف \lr{AMSLatex} استفاده کنید. توجه داشته باشید که محیط \texttt{eqnarray} کلا با بستهٔ \lr{amsmath} -مشکل دارد و به خصوص شمارهٔ فرمول نوشته شده با این محیط ناپایدار است. به جای این محیط، از محیط \texttt{align} استفاده کنید که -حروفچینی آن از \texttt{eqnarray} بهتر است و شمارهٔ آن نیز بدون مشکل قابل ارجاع است. -\begin{align} -a^2+b^2&=\sin x\label{eq1}\\ -10a+b&=\cos y\label{eq2} -\end{align} - -فرمولهای بالا با کد زیر تولید شدهاند. - -\begin{english} -\begin{verbatim} -\begin{align} -a^2+b^2&=\sin x\label{eq1}\\ -1a+b&=\cos y\label{eq2} -\end{align} -\end{verbatim} -\end{english} -ارجاع به فرمول \eqref{eq1} به صورت طبیعی امکان پذیر است. برای اطلاعات بیشتر به \femph{مقدمهای نهچندان کوتاه بر \lr{\LaTeXe}} -%\footnote{قابل دسترسی از\texttt{http://www.ctan.org}} -مراجعه کنید. -\section{تهیهٔ اسلاید} -برای تهیهٔ اسلاید، بسته به طور کامل با طبقهٔ \texttt{beamer} سازگار است. یک فایل نمونه برای استفاده از این بسته میتواند به صورت زیر باشد: - -\setLR -\noindent\verb|\documentclass[hyperref=xetex]{beamer}|\\ -\verb|\usepackage{xepersian}|\\ -\verb|\title{|\rl{عنوان مطلب}\verb|}|\\ -\verb|\author{|\rl{نام نویسنده}\verb|}|\\ -\verb|\begin{document}|\\ -\verb|\frame{\maketitle}|\\ -\verb|\section{|\rl{یک قسمت}\verb|}|\\ -\verb|\frametitle{|\rl{مطلب}\verb|}|\\ -\verb|\framesubtitle{|\rl{زیر مطلب}\verb|}| - -$\vdots$ - -\noindent\verb|\end{frame}| - -$\vdots$ - - -\noindent\verb|\end{document}| -\setRL - -\section{استفاده از \lr{PSTricks}} -تمامی امکانات استفاده از \lr{PSTricks} در بسته موجود است. - -\setLR - \psset{yunit=0.5cm,xunit=2cm} - \begin{pspicture*}(-3,-5)(3,10) - \psaxes[Dy=2]{->}(0,0)(-3,-5)(3,10) - \psset{linewidth=1.5pt} - \psPolynomial[coeff=0 0 0 1,linecolor=blue]{-2}{4} - \psPolynomial[coeff=0 0 0 1,linecolor=red,% - linestyle=dashed,Derivation=2]{-2}{4} - \psPolynomial[coeff=0 0 0 1,linecolor=cyan,% - linestyle=dotted,Derivation=3]{-2}{4} - \rput[lb](1.8,4){\textcolor{blue}{$f(x)=x^3$}} - \rput[lb](0.2,8){\textcolor{red}{$f^{\prime\prime}(x)=6x$}} - \rput[lb](-2,5){\textcolor{cyan}{$f^{\prime\prime\prime}(x)=6$}} - \end{pspicture*} -\setRL - -شکل بالا با کد زیر تولید شده است. -\begin{english} -\begin{verbatim} -\setLR - \psset{yunit=0.5cm,xunit=2cm} - \begin{pspicture*}(-3,-5)(3,10) - \psaxes[Dy=2]{->}(0,0)(-3,-5)(3,10) - \psset{linewidth=1.5pt} - \psPolynomial[coeff=0 0 0 1,linecolor=blue]{-2}{4} - \psPolynomial[coeff=0 0 0 1,linecolor=red,% - linestyle=dashed,Derivation=2]{-2}{4} - \psPolynomial[coeff=0 0 0 1,linecolor=cyan,% - linestyle=dotted,Derivation=3]{-2}{4} - \rput[lb](1.8,4){\textcolor{blue}{$f(x)=x^3$}} - \rput[lb](0.2,8){\textcolor{red}{$f^{\prime\prime}(x)=6x$}} - \rput[lb](-2,5){\textcolor{cyan}{$f^{\prime\prime\prime}(x)=6$}} - \end{pspicture*} -\setRL -\end{verbatim} -\end{english} - -\section{امکانات آینده} -در نظر است الگوی کاملی برای شکستن کلمات فارسی تهیه شود تا قابل استفاده با این بسته باشد. همچنین در نظر است برای نگارش پایاننامه، بستهٔ مجزایی -بر اساس این بسته تهیه شود. اگر امکانی خاص مد نظر شماست که این بسته از آن بیبهره است، لطفاً اطلاع دهید تا در ویرایشهای آیندهٔ -این بسته مورد نظر قرار بگیرد. -\end{document} - diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.map b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.map index 9fa70566075..3502244cfba 100644 --- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.map +++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.map @@ -25,3 +25,22 @@ U+0644 U+064B U+0627 <> U+0644 U+0627 U+064B ; lam fathatan alif -> lam alif fat U+002C <> U+060C ; comma > arabic comma U+003F <> U+061F ; question mark -> arabic qm U+003B <> U+061B ; semicolon -> arabic semicolon + +; ligatures from Knuth's original CMR fonts +U+002D U+002D <> U+2013 ; -- -> en dash +U+002D U+002D U+002D <> U+2014 ; --- -> em dash + +U+0027 <> U+2019 ; ' -> right single quote +U+0027 U+0027 <> U+201D ; '' -> right double quote +U+0022 > U+201D ; " -> right double quote + +U+0060 <> U+2018 ; ` -> left single quote +U+0060 U+0060 <> U+201C ; `` -> left double quote + +U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam +U+003F U+0060 <> U+00BF ; ?` -> inverted question + +; additions supported in T1 encoding +U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK +U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET +U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
\ No newline at end of file diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.tec b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.tec Binary files differindex d9ebe2b1b48..c0b04e9f0a3 100644 --- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.tec +++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xepersian/parsidigits.tec diff --git a/Master/texmf-dist/tex/xelatex/xepersian/beamerthemexepersian-JLTree.sty b/Master/texmf-dist/tex/xelatex/xepersian/beamerthemexepersian-JLTree.sty new file mode 100644 index 00000000000..a479d0537e8 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/beamerthemexepersian-JLTree.sty @@ -0,0 +1,123 @@ +%% This is beamerthemexepersian-JLTree.sty (Modified version of beamerthemeJLTree.sty) +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% +%%%% this is versin 1.1 2006/11/18 +%%%% +%% Copyright Jerome LELONG <jerome.lelong@gmail.com> 2006 +%% This program can be redistributed and/or modified under the terms +%% of the GNU Public License, version 2 or later. +\ProvidesPackage{beamerthemexepersian-JLTree} + +\newif\ifbeamer@tree@showhooks +\beamer@tree@showhookstrue + +\DeclareOptionBeamer{hooks}[true]{\csname beamer@tree@showhooks#1\endcsname} + +\ProcessOptionsBeamer +\mode +<presentation> + +\setbeamertemplate{navigation symbols}{} +\usecolortheme{rose} +\useinnertheme[shadow=true]{rounded}% les block + + +\defbeamertemplate*{footline}{xepersian-JLTree theme} +{ + \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} + \end{beamercolorbox} + \hbox{% + \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,left]{date in head/foot}% + \usebeamerfont{date in head/foot} + \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,right]{title in head/foot}% + \usebeamerfont{title in head/foot}\RL{\hspace*{2ex}\insertauthor \hspace*{1ex} (\insertshortinstitute) \hspace*{2ex} \insertdate} + \end{beamercolorbox}}% +} + + +\defbeamertemplate*{sidebar right}{xepersian-JLTree theme}{} + +\usesectionheadtemplate +{\hfil\insertsectionhead} +{\hfill\color{fg!50!bg}\insertsectionhead} + + +\usesubsectionheadtemplate +{\hfil\insertsubsectionhead} +{\hfill\color{fg!50!bg}\insertsubsectionhead} + + + +\defbeamertemplate*{headline}{xepersian-JLTree theme} +{% + \leavevmode% + \begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{upper separation line head} + \end{beamercolorbox} + \@tempdimb=3.625ex% 2.4375ex% + \multiply\@tempdimb by\beamer@sectionmax% +%% \advance\@tempdimb by 1.125ex% + \advance\@tempdimb by -1.125ex% + \ifdim\@tempdimb<10.9ex% 3*(2.5+1.125) + \@tempdimb=10.9ex% + \fi + \begin{beamercolorbox}[wd=.45\paperwidth, ht=\@tempdimb]{left block}% + \usebeamerfont{section in head/foot}% + \vbox to\@tempdimb{\vfill\insertsectionnavigation{.45\paperwidth}\vfill}% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=1.125ex,ht=\@tempdimb,dp=1.125ex]{middle separation line head}% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.44\paperwidth]{middle block}% + \vbox to\@tempdimb{\vfill% + \begin{beamercolorbox}[wd=.44\paperwidth,ht=2.5ex,dp=1.125ex,% + leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% + \usebeamerfont{title in head/foot}\insertshorttitle + \end{beamercolorbox} + \begin{beamercolorbox}[wd=.44\paperwidth,ht=2.5ex,dp=1.125ex,% + leftskip=.3cm,rightskip=.3cm plus1fil]{section in head/foot} + \usebeamerfont{section in head/foot}% + \ifbeamer@tree@showhooks + \setbox\beamer@tempbox=\hbox{\insertsectionhead}% + \ifdim\wd\beamer@tempbox>1pt% + \hskip2pt\raise1.9pt\hbox{\vrule width0.4pt height1.875ex\vrule width 5pt height0.4pt}% + \hskip1pt% + \fi% + \else% + \hskip6pt% + \fi% + \insertsectionhead + \end{beamercolorbox} + \begin{beamercolorbox}[wd=.44\paperwidth,ht=2.5ex,dp=1.125ex,% + leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot} + \usebeamerfont{subsection in head/foot}% + \ifbeamer@tree@showhooks + \setbox\beamer@tempbox=\hbox{\insertsubsectionhead}% + \ifdim\wd\beamer@tempbox>1pt% + \hskip9.4pt\raise1.9pt\hbox{\vrule width0.4pt height1.875ex\vrule width 5pt height0.4pt}% + \hskip1pt% + \fi% + \else% + \hskip12pt% + \fi% + \insertsubsectionhead + \end{beamercolorbox}% + \vfill}% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.1\paperwidth,ht=\@tempdimb,right]{right block}% + \vbox to\@tempdimb{\vfill\insertlogo\vfill} + \end{beamercolorbox} + \vfill + \begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{lower separation line head} + \end{beamercolorbox} +} +\setbeamercolor{separation line}{use=structure,bg=structure.fg!50!bg} + + +\mode +<all> diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls new file mode 100644 index 00000000000..21816c47aa7 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls @@ -0,0 +1,879 @@ +%% This file is xepersian-magazine.cls +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{xepersian-magazine}[2009/01/05 v0.1 Typesetting Persian magazines in XeLaTeX (Author: Vafa Khalighi)] +\RequirePackage{ifthen} +\newlength{\xepersian@imgsize} +\newlength{\xepersian@coltitsize} +\newlength{\xepersian@pageneed} +\newlength{\xepersian@pageleft} +\newlength{\xepersian@indexwidth} +\newcommand{\xepersian@ncolumns}{0} +\newlength{\columnlines} +\setlength{\columnlines}{0 pt} % no lines by default +\newboolean{xepersian@hyphenatedtitles} +\setboolean{xepersian@hyphenatedtitles}{true} +\newboolean{xepersian@ninepoints} +\setboolean{xepersian@ninepoints}{false} +\newboolean{xepersian@showgrid} +\setboolean{xepersian@showgrid}{false} +\newboolean{xepersian@a3paper} +\setboolean{xepersian@a3paper}{false} +\newboolean{xepersian@insidefrontpage} +\setboolean{xepersian@insidefrontpage}{false} +\newboolean{xepersian@insideweather} +\setboolean{xepersian@insideweather}{false} +\newboolean{xepersian@insideindex} +\setboolean{xepersian@insideindex}{false} +\newcount\xepersian@gridrows +\newcount\xepersian@gridcolumns +\xepersian@gridrows=40 +\xepersian@gridcolumns=50 +\newcount\minraggedcols +\minraggedcols=5 +\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}} +\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}} +\DeclareOption{12pt}{\PassOptionsToClass{12pt}{article}} +\DeclareOption{twocolumn}% +{\ClassWarning{xepersian-magazine}{Option 'twocolumn' not available for xepersian-magazine.}} +\DeclareOption{notitlepage}% +{\ClassWarning{xepersian-magazine}{Option 'notitlepage' not available for xepersian-magazine.}} +\DeclareOption{twoside}% +{\ClassWarning{xepersian-magazine}{Option 'twoside' not available for xepersian-magazine.}} +\DeclareOption{9pt}{\setboolean{xepersian@ninepoints}{true}} +\DeclareOption{hyphenatedtitles}{\setboolean{xepersian@hyphenatedtitles}{false}} +\DeclareOption{columnlines}{\setlength{\columnlines}{0.1 pt}} +\DeclareOption{showgrid}{\setboolean{xepersian@showgrid}{true}} +\DeclareOption{a3paper}{\setboolean{xepersian@a3paper}{true}} +\ProcessOptions\relax +\LoadClass[10pt, onecolumn, titlepage, a4paper]{article} +\RequirePackage{ifxetex} +\RequirePackage{multido} +\RequirePackage{datetime} +\RequirePackage{fmultico} +\RequirePackage{fancyhdr} +\RequirePackage{fancybox} +\ifthenelse{\boolean{xepersian@a3paper}}{% +\RequirePackage[a3paper,headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry} +}{ +\RequirePackage[headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry} +} +\RequirePackage[absolute]{textpos} % absoulte positioning +\RequirePackage{hyphenat} % when hyphenate +\RequirePackage{lastpage} % to know the last page number +\RequirePackage{setspace} % set space between lines +\RequirePackage{ragged2e} +\newcommand{\raggedFormat}{\RaggedLeft} +\AtEndOfClass{\xepersianInit} +\ifthenelse{\boolean{xepersian@showgrid}}{% +\AtBeginDocument{ +\grid[show]{\xepersian@gridrows}{\xepersian@gridcolumns}} +\advance\minraggedcols by -1 +}{% +\AtBeginDocument{ +\grid[]{\xepersian@gridrows}{\xepersian@gridcolumns}} +\advance\minraggedcols by -1 +} +\ifthenelse{\boolean{xepersian@ninepoints}}{ +\renewcommand{\normalsize}{% + \@setfontsize{\normalsize}{9pt}{10pt}% + \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}% + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} + +\renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}} + +\renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}} + +\renewcommand{\small}{% + \@setfontsize{\small}{8pt}{9pt}% + \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \setlength{\abovedisplayshortskip}{2pt plus 1pt}% + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} + +\renewcommand{\footnotesize}{% + \@setfontsize{\footnotesize}{8pt}{9pt}% + \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \setlength{\abovedisplayshortskip}{2pt plus 1pt}% + \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}} + +\renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}} +\renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}} +\renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}} +\renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}} +\renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}} +}{} +\def\customwwwTxt#1{\gdef\@customwwwTxt{\lr{#1}}} +\newcommand{\xepersian@wwwFormat}{\sffamily} +\newcommand{\xepersian@www}{% +\raisebox{-3pt}{{\xepersian@wwwFormat\@customwwwTxt}} +} +\newcommand{\xepersian@edition}{ویرایش من} +\newcommand{\editionFormat}{\large\bfseries\texttt} +\newcommand{\xepersian@editionLogo}{% +\raisebox{-3pt}{% +{\editionFormat\xepersian@edition}% +}% +} +\newcommand{\indexFormat}{\large\bfseries} +\newcommand{\xepersian@indexFrameTitle}[1] +{\begin{flushright}{{\indexFormat #1}}\end{flushright}} + +\newcommand{\indexEntryFormat}{\normalsize} +\newcommand{\xepersian@indexEntry}[1]{\begin{minipage}{13\TPHorizModule}% +{\indexEntryFormat\noindent\ignorespaces{#1}}% +\end{minipage}} +\newcommand{\indexEntrySeparator}{\rule{\xepersian@indexwidth}{.1pt}} +\newcommand{\indexEntryPageTxt}{صفحهٔ} +\newcommand{\indexEntryPageFormat}{\footnotesize} +\newcommand{\xepersian@indexEntryPage}[1]{% +{\indexEntryPageFormat{\indexEntryPageTxt{}~#1}}% +} +\newcommand{\headDateTimeFormat}{} +\newcommand{\xepersian@headDateTime}{% +\headDateTimeFormat\date\hspace{5pt}$\parallel$\hspace{5pt}% +\currenttime % +} +\newcommand{\weatherFormat}{\bfseries} +\newcommand{\xepersian@weather}[1]{% +\noindent{\weatherFormat #1}% +} +\newcommand{\weatherTempFormat}{\small} +\newcommand{\weatherUnits}{\textdegree{}C} +\newcommand{\xepersian@section}[0]{صفحهٔ جلو} +\newcommand{\xepersian@headleft}{% +{\small\bfseries \@custommagazinename}، \date +} +\newcommand{\xepersian@headcenter}{% +\xepersian@section{} +} +\newcommand{\xepersian@headright}{% +\small\xepersian@edition% +\hspace*{5pt}\LR{\thepage\ / \pageref{LastPage}} +} + +\newcommand{\heading}[3]{% +\renewcommand{\xepersian@headleft}{\RL{#1}}% +\renewcommand{\xepersian@headcenter}{\RL{#2}}% +\renewcommand{\xepersian@headright}{\RL{#3}}% +} +\newcommand{\xepersian@footright}{% +{\footnotesize\lr{\copyright\ \@customwwwTxt{}}---تهیهشده توسط \lr{\XePersian}}% +} +\newcommand{\xepersian@footcenter}{% +} +\newcommand{\xepersian@footleft}{% +} + +\newcommand{\foot}[3]{% +\renewcommand{\xepersian@footleft}{\RL{#1}}% +\renewcommand{\xepersian@footcenter}{\RL{#2}}% +\renewcommand{\xepersian@footright}{\RL{#3}}% +} +\newcommand{\firstTitleFormat}{\Huge\bfseries\flushright} +\newcommand{\xepersian@firstTitle}[1]{% +{% +\begin{spacing}{2.0}{% +\noindent\ignorespaces +\ifthenelse{\boolean{xepersian@hyphenatedtitles}}% +{\nohyphens{\firstTitleFormat #1}}% +{{\firstTitleFormat #1}}% +}% +\end{spacing}% +}% +} +\newcommand{\firstTextFormat}{} +\newcommand{\xepersian@firstText}[1]{% +{\noindent\ignorespaces\firstTextFormat #1}% +} +\newcommand{\secondTitleFormat}{\LARGE\bfseries} +\newcommand{\xepersian@secondTitle}[1]{% +\begin{spacing}{1.5}{% +\noindent\ignorespaces\flushright +\ifthenelse{\boolean{xepersian@hyphenatedtitles}}% +{\nohyphens{\secondTitleFormat #1}}% +{{\secondTitleFormat #1}}% +}\end{spacing}% +} +\newcommand{\secondSubtitleFormat}{\large} +\newcommand{\xepersian@secondSubtitle}[1]{% +{\noindent\ignorespaces{\secondSubtitleFormat #1}}% +} +\newcommand{\secondTextFormat}{} +\newcommand{\xepersian@secondText}[1]{% +\begin{multicols}{2} +{\noindent\ignorespaces\secondTextFormat #1} +\end{multicols} +} +\newcommand{\thirdTitleFormat}{\Large\bfseries} +\newcommand{\xepersian@thirdTitle}[1]{% +\begin{spacing}{1.5}{% +\noindent\ignorespaces\flushright +\ifthenelse{\boolean{xepersian@hyphenatedtitles}}% +{\nohyphens{\thirdTitleFormat #1}}% +{{\thirdTitleFormat #1}}% +}\end{spacing}% +} +\newcommand{\thirdSubtitleFormat}{\large} +\newcommand{\xepersian@thirdSubtitle}[1]% +{{\noindent\ignorespaces\thirdSubtitleFormat #1}} +\newcommand{\thirdTextFormat}{} +\newcommand{\xepersian@thirdText}[1]{{\thirdTextFormat #1}} +\newcommand{\pictureCaptionFormat}{\small\bfseries} +\newcommand{\xepersian@pictureCaption}[1]{% +{\noindent\pictureCaptionFormat #1}% +} +\newcommand{\pagesFormat}{\bfseries\footnotesize} +\newcommand{\xepersian@pages}[1]% +{\noindent{\pagesFormat\MakeUppercase{#1}}} +\newcommand{\innerTitleFormat}{\Huge} +\newcommand{\xepersian@innerTitle}[1]{% +\begin{flushright}{% +\noindent +\ifthenelse{\boolean{xepersian@hyphenatedtitles}}% +{\nohyphens{\innerTitleFormat #1}}% +{{\innerTitleFormat #1}}% +}% +\\% +\end{flushright}% +} +\newcommand{\innerSubtitleFormat}{\large} +\newcommand{\xepersian@innerSubtitle}[1]{{\innerSubtitleFormat #1}} +\newcommand{\timestampTxt}{} +\newcommand{\timestampSeparator}{|} +\newcommand{\timestampFormat}{\small} +\newcommand{\timestamp}[1]{% +{\timestampFormat% +#1~\timestampTxt{}% +}~\timestampSeparator{}% +} +\newcommand{\innerAuthorFormat}{\footnotesize} +\newcommand{\innerPlaceFormat}{\footnotesize\bfseries} +\newcommand{\innerTextFinalMark}{\rule{0.65em}{0.65em}} +\newcommand{\editorialTitleFormat}{\LARGE\textit} +\newcommand{\xepersian@editorialTitle}[1]{\editorialTitleFormat{#1}} +\newcommand{\editorialAuthorFormat}{\textsc} +\newcommand{\shortarticleTitleFormat}{\LARGE\bfseries} +\newcommand{\xepersian@shortarticleTitle}[1]{{\shortarticleTitleFormat #1}} +\newcommand{\shortarticleSubtitleFormat}{\Large} +\newcommand{\xepersian@shortarticleSubtitle}[1]{{\shortarticleSubtitleFormat #1}} +\newcommand{\shortarticleItemTitleFormat}{\large\bfseries} +\newcommand{\xepersian@shortarticleItemTitle}[1]{{\shortarticleItemTitleFormat #1}} +\renewcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 1em% + {\LARGE «\xepersian@edition» \par}% + \vskip 3em% + {\large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% + \end{center}\par + \@thanks + \vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +\newcommand{\xepersian@say}[1]{\typeout{#1}} +\newsavebox{\xepersian@fmbox} +\newenvironment{xepersian@fmpage}[1] + {\begin{lrbox}{\xepersian@fmbox}\begin{minipage}{#1}} + {\end{minipage}\end{lrbox}\fbox{\usebox{\xepersian@fmbox}}} +\newcommand{\image}[2]{ +\vspace{5pt} +\setlength{\fboxsep}{1pt} +\addtolength{\xepersian@imgsize}{\columnwidth} +\addtolength{\xepersian@imgsize}{-1\columnsep} +\ifxetex +\setlength{\xepersian@pageneed}{1.5\xepersian@imgsize} +\addtolength{\xepersian@pageneed}{50pt} +\ClassWarning{xepersian-magazine}{% +Image #1 needs: \the\xepersian@pageneed \space % +and there is left: \the\page@free\space% +} +\ifdim \xepersian@pageneed < \page@free + +{\centering\fbox{% +\includegraphics[width = \xepersian@imgsize, +height = \xepersian@imgsize, +keepaspectratio ]{#1}}} +\xepersian@pictureCaption{#2} + +\vspace{5pt} +\else +\ClassWarning{Image #1 needs more space!% + It was not inserted!} +\fi +\fi +} +\textblockorigin{1cm}{1cm} +\newdimen\xepersian@dx +\newdimen\xepersian@dy +\newcount\xepersian@cx +\newcount\xepersian@cy +\newcommand{\grid}[3][]{ +\xepersian@dx=\textwidth% +\xepersian@dy=\textheight% +\xepersian@cx=#3% %columns +\xepersian@cy=#2% %rows + +\count1=#3% +\advance\count1 by 1 + +\count2=#2% +\advance\count2 by 1 + +\divide\xepersian@dx by #3 +\divide\xepersian@dy by #2 + +\setlength{\TPHorizModule}{\xepersian@dx} +\setlength{\TPVertModule}{\xepersian@dy} + +\ifthenelse{\equal{#1}{show}}{ +\multido{\xepersian@nrow=0+1}{\count2}{ +\begin{textblock}{\xepersian@cx}(0,\xepersian@nrow) +\rule[0pt]{\textwidth}{.1pt} +\end{textblock} +} + +\multido{\xepersian@ncol=0+1}{\count1}{ +\begin{textblock}{\xepersian@cy}(\xepersian@ncol,0) +\rule[0pt]{.1pt}{\textheight} +\end{textblock} +} +}{} +} +\newcommand{\xepersianInit}{ +\setlength{\headheight}{14pt} +\renewcommand{\headrulewidth}{0.4pt} + +\pagestyle{fancy} + +\setlength{\columnseprule}{\columnlines} +\setlength{\fboxrule}{0.1 pt} + +} + +\def\customlogo#1{\gdef\@customlogo{\RL{#1}}} +\def\customminilogo#1{\gdef\@customminilogo{\RL{#1}}} +\def\custommagazinename#1{\gdef\@custommagazinename{\RL{#1}}} +\newcommand{\logo}[0]{ +%% Heading %% +\noindent\hrulefill\hspace{10pt}\xepersian@editionLogo\hspace{5pt}\xepersian@www + +\vspace*{-3pt} + +{\Large\bfseries \@customlogo} +\hrulefill +\hspace{10pt}\xepersian@headDateTime + +} +\newcommand{\minilogo}[0]{ +{\large\bfseries \@customminilogo} + +\vspace*{5pt} +} +\newcommand{\mylogo}[1]{ +{\RL{#1}} + +\noindent +\xepersian@editionLogo\hspace{5pt} +\hrulefill +\hspace{5pt}\xepersian@headDateTime +} +\newcommand{\edition}[1]{\renewcommand{\xepersian@edition}{#1}} +\newenvironment{frontpage}[0] +{ +\setboolean{xepersian@insidefrontpage}{true} +\thispagestyle{empty} +%\pdfbookmark[1]{صفحهٔ اول}{\thepage} +\logo + +}% +{ +\thispagestyle{empty} +\clearpage +\newpage +\fancyhead{} + \fancyfoot{} +\fancyhead[RO,LE]{\RL{\xepersian@headright}} +\fancyhead[LO,RE]{\RL{\xepersian@headleft}} + \fancyhead[C]{\RL{\xepersian@headcenter}} + \fancyfoot[RO,LE]{\RL{\xepersian@footright}} + \fancyfoot[LO,RE]{\RL{\xepersian@footleft}} +\fancyfoot[C]{\RL{\xepersian@footcenter}} +\renewcommand{\headrulewidth}{0.4pt} +\setboolean{xepersian@insidefrontpage}{false} + +} +\newcommand{\firstarticle}[3] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\ifthenelse{\boolean{xepersian@hyphenatedtitles}}{% +\begin{textblock}{24}(22,5) +} +{ +\begin{textblock}{28}(22,5) +} +\vspace{-7pt} +\xepersian@firstTitle{#1} +\end{textblock} +\begin{textblock}{29}(22,10) +\vspace{5pt plus 2pt minus 2pt} + +\xepersian@firstText{\timestamp{#3}~#2} + +\end{textblock} + +\begin{textblock}{50}(0,15) +\rule{50\TPHorizModule}{.3pt} +\end{textblock} +}{%else +\ClassError{xepersian-magazine}{% +\protect\firstarticle\space in a wrong place.\MessageBreak +\protect\firstarticle\space may only appear inside frontpage environment. +}{% +\protect\firstarticle\space may only appear inside frontpage environment. +}% +} +} +\newcommand{\secondarticle}[5] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\begin{textblock}{33}(2,16) +\xepersian@pages{#4} +\vspace{-5pt} +\xepersian@secondTitle{#1} + +\vspace*{5pt} + +\xepersian@secondSubtitle{#2} + +\vspace*{-7pt} + +\xepersian@secondText{\timestamp{#5}~#3} + +\end{textblock} + +\begin{textblock}{33}(2,25) +\vspace{5pt plus 2pt minus 2pt} + +\noindent\ignorespaces\rule{33\TPHorizModule}{.3pt} +\end{textblock} +}{%else +\ClassError{xepersian-magazine}{% +\protect\secondarticle\space in a wrong place.\MessageBreak +\protect\secondarticle\space may only appear inside frontpage environment. +}{% +\protect\secondarticle\space may only appear inside frontpage environment. +}% +} +} +\newcommand{\thirdarticle}[6] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\begin{textblock}{32}(2,26) +\xepersian@pages{#5} +\vspace{-5pt} +\setlength{\fboxsep}{1pt} +\xepersian@thirdTitle{#1} + +\vspace*{5pt} + +\xepersian@thirdSubtitle{#2} + +\vspace*{5pt} + +{\noindent\ignorespaces % +\ifthenelse{\equal{#4}{}}{} + +\xepersian@thirdText{\timestamp{#6}~#3} + +} + +\vspace*{5pt} + +\end{textblock} +}{%else +\ClassError{xepersian-magazine}{% +\protect\thirdarticle\space in a wrong place.\MessageBreak +\protect\thirdarticle\space may only appear inside frontpage environment. +}{% +\protect\thirdarticle\space may only appear inside frontpage environment. +}% +} +} +\newcommand{\firstimage}[2] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\begin{textblock}{18}(2,5) +\setlength{\fboxsep}{1pt} +\ifxetex % only in PDF +\noindent\fbox{\includegraphics[width = 18\TPHorizModule ]{#1}} +\fi + +\xepersian@pictureCaption{#2} +\end{textblock}% +} +{\ClassError{xepersian-magazine}{% +\protect\firstimage\space in a wrong place.\MessageBreak +\protect\firstimage\space may only appear inside frontpage environment. +}{% +\protect\firstimage\space may only appear inside frontpage environment. +}} +}% +\newcommand{\weatheritem}[5]{% +\ifthenelse{\boolean{xepersian@insideweather}}{ +\begin{minipage}{45pt} +\ifxetex +\includegraphics[width=40pt]{#1} +\fi +\end{minipage} +\begin{minipage}{50pt} +\weatherTempFormat +#2\\ +\LR{#3 $\|$ #4 \lr{\weatherUnits{}}}\\ +#5 +\end{minipage} +}{%else +\ClassError{xepersian-magazine}{% +\protect\weatheritem\space in a wrong place.\MessageBreak +\protect\weatheritem\space may only appear inside weatherblock environment. +}{% +\protect\weatheritem\space may only appear inside weatherblock environment.\MessageBreak +weatherblock environment may only appear inside frontpage environment. +}% +} +} +\newenvironment{weatherblock}[1] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\setboolean{xepersian@insideweather}{true} +\begin{textblock}{32}(2,38) +\vspace*{-15pt} + +\xepersian@weather{\RL{#1}} + +\vspace*{5pt} + +\noindent\begin{xepersian@fmpage}{32\TPHorizModule} +\begin{minipage}{32\TPHorizModule} +\hspace{5pt} + +}{% +\ClassError{xepersian-magazine}{% +weatherblock in a wrong place.\MessageBreak +weatherblock may only appear inside frontpage environment. +}{% +weatherblock may only appear inside frontpage environment. +} +} +}% +{ +\end{minipage} +\end{xepersian@fmpage} +\end{textblock} +\setboolean{xepersian@insideweather}{false} +} +\newenvironment{authorblock}[0] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\begin{textblock}{15}(36,35) +\setlength{\fboxsep}{5pt} +\begin{xepersian@fmpage}{13\TPHorizModule} +\begin{minipage}{13\TPHorizModule} +\centering +\minilogo + +}{%else +\ClassError{xepersian-magazine}{% +authorblock in a wrong place.\MessageBreak +authorblock may only appear inside frontpage environment. +}{% +authorblock may only appear inside frontpage environment. +} +} +} +{ +\end{minipage} +\end{xepersian@fmpage} +\end{textblock} +} +\newenvironment{indexblock}[1] +{ +\ifthenelse{\boolean{xepersian@insidefrontpage}}{% +\setboolean{xepersian@insideindex}{true}%let's in +\begin{textblock}{15}(36,16) +\setlength{\xepersian@indexwidth}{13\TPHorizModule} +\xepersian@indexFrameTitle{#1} + +\setlength{\fboxsep}{5pt} %espacio entre el frame y la imagen +\begin{xepersian@fmpage}{\xepersian@indexwidth} +\begin{minipage}{\xepersian@indexwidth} +\vspace*{10pt} +}{%else +\ClassError{xepersian-magazine}{% +indexblock in a wrong place.\MessageBreak +indexblock may only appear inside frontpage environment. +}{% +indexblock may only appear inside frontpage environment. +} +} +}% +{ +\end{minipage} +\end{xepersian@fmpage} +\end{textblock} +\setboolean{xepersian@insideindex}{false}%let's out +} +\newcommand{\indexitem}[2] +{ +\ifthenelse{\boolean{xepersian@insideindex}}{ +\xepersian@indexEntry{#1، \xepersian@indexEntryPage{\pageref{#2}}} + +\vspace{0.5cm} + +\noindent\ignorespaces\indexEntrySeparator{} +}{%else +\ClassError{xepersian-magazine}{% +\protect\indexitem\space in a wrong place.\MessageBreak +\protect\indexitem\space may only appear inside indexblock environment. +}{% +\protect\indexitem\space may only appear inside indexblock environment.\MessageBreak +indexblock environment may only appear inside frontpage environment. +}% +} +} +\newcommand{\xepersian@inexpandedtitle}[1]{ +\begin{minipage}{.95\textwidth} +\begin{center} +\noindent\Large\textbf{\RL{#1}} +\end{center} +\end{minipage} +} +\newcommand{\expandedtitle}[2]{ +\end{multicols} + +\begin{center} +\setlength{\fboxsep}{5pt} +\setlength{\shadowsize}{2pt} +\ifthenelse{\equal{#1}{shadowbox}}{% +\shadowbox{% +\xepersian@inexpandedtitle{#2}% +}% +}{} +\ifthenelse{\equal{#1}{doublebox}}{% +\doublebox{% +\xepersian@inexpandedtitle{#2}% +}% +}{} +\ifthenelse{\equal{#1}{ovalbox}}{% +\ovalbox{% +\xepersian@inexpandedtitle{#2}% +}% +}{} +\ifthenelse{\equal{#1}{Ovalbox}}{% +\Ovalbox{% +\xepersian@inexpandedtitle{#2}% +}% +}{} +\ifthenelse{\equal{#1}{lines}}{ +\hrule +\vspace*{8pt} +\begin{center} +\noindent\Large\textbf{#2} +\end{center} +\vspace*{8pt} +\hrule +}{} +\end{center} + +\begin{multicols}{\xepersian@ncolumns{}} +\ifnum \xepersian@ncolumns > \minraggedcols +\raggedFormat +\fi +} +\newcommand{\xepersian@incolumntitle}[2]{ +\begin{minipage}{#1} +\begin{center} +\noindent\normalsize\textbf{#2} +\end{center} +\end{minipage} +} + +\newcommand{\columntitle}[2]{ +\vspace*{5pt} +\begin{center} +\setlength{\fboxsep}{5pt} +\setlength{\shadowsize}{2pt} +\addtolength{\xepersian@coltitsize}{\columnwidth} +\addtolength{\xepersian@coltitsize}{-1\columnsep} +\addtolength{\xepersian@coltitsize}{-5pt} +\addtolength{\xepersian@coltitsize}{-1\shadowsize} +\ifthenelse{\equal{#1}{shadowbox}}{% +\shadowbox{% +\xepersian@incolumntitle{\xepersian@coltitsize}{#2}% +}% +}{} +\ifthenelse{\equal{#1}{doublebox}}{% +\doublebox{% +\xepersian@incolumntitle{\xepersian@coltitsize}{#2}% +}% +}{} +\ifthenelse{\equal{#1}{ovalbox}}{% +\ovalbox{% +\xepersian@incolumntitle{\xepersian@coltitsize}{#2}% +}% +}{} +\ifthenelse{\equal{#1}{Ovalbox}}{% +\Ovalbox{% +\xepersian@incolumntitle{\xepersian@coltitsize}{#2}% +}% +}{} +\ifthenelse{\equal{#1}{lines}}{ +\hrule +\vspace*{5pt} +\begin{center} +\noindent\normalsize\textbf{#2} +\end{center} +\vspace*{5pt} +\hrule +}{} +\end{center} +} +\renewcommand{\date}{% +\longdate{\today}% +} +\newcommand{\authorandplace}[2]{% +\rightline{% +{\innerAuthorFormat #1},\space{}{\innerPlaceFormat #2}% +}% +\par % +} +\newcommand{\newsection}[1]{ +%\pdfbookmark[0]{#1}{\thepage} %bookmark para el pdf +\renewcommand{\xepersian@section}{#1} +} +\newenvironment{article}[5] +{ +\xepersian@say{Adding a new piece of article} +\renewcommand{\xepersian@ncolumns}{#1} +\begin{multicols}{#1}[ +\xepersian@pages{#4} +\xepersian@innerTitle{#2}% +\xepersian@innerSubtitle{#3}% +][4cm]% +\label{#5} +\ifnum #1 > \minraggedcols +\raggedFormat +\fi +} +{~\innerTextFinalMark{} +\end{multicols} +} +\newcommand{\articlesep}{% +\setlength{\xepersian@pageneed}{16000pt} +\setlength\xepersian@pageleft{\pagegoal} +\addtolength\xepersian@pageleft{-\pagetotal} + +\xepersian@say{How much left \the\xepersian@pageleft} + +\ifdim \xepersian@pageneed < \xepersian@pageleft +\xepersian@say{Not enough space} +\else +\xepersian@say{Adding sep line between articles} +\vspace*{10pt plus 10pt minus 5pt} +\hrule +\vspace*{10pt plus 5pt minus 5pt} +\fi + +} +\newcommand{\xepersian@editorialTit}[2]{ +\setlength{\arrayrulewidth}{.1pt} +\begin{center} +\begin{tabular}{c} +\noindent +\xepersian@editorialTitle{#1} +\vspace{2pt plus 1pt minus 1pt} +\\ +\hline +\vspace{2pt plus 1pt minus 1pt} +\\ +\editorialAuthorFormat{#2} +\end{tabular} +\end{center} +} +\newenvironment{editorial}[4] +{ +\xepersian@say{Adding a new editorial} +\begin{multicols}{#1}[% +\xepersian@editorialTit{#2}{#3}% +][4cm] +\label{#4} +\ifnum #1 > \minraggedcols +\raggedFormat +\fi +} +{ +\end{multicols} +} +\newcommand{\xepersian@shortarticleTit}[2]{ +\begin{center} +\vbox{% +\noindent +\xepersian@shortarticleTitle{#1} +\vspace{4pt plus 2pt minus 2pt} +\hrule +\vspace{4pt plus 2pt minus 2pt} +\xepersian@shortarticleSubtitle{#2} +} +\end{center} +} +\newenvironment{shortarticle}[4] +{ +\xepersian@say{Adding a short article block} +\begin{multicols}{#1}[\xepersian@shortarticleTit{#2}{#3}][4cm] % + \label{#4} +\par % +\ifnum #1 > \minraggedcols +\raggedFormat +\fi +} +{ +\end{multicols} +} +\newcommand{\shortarticleitem}[2]{ +\goodbreak +\vspace{5pt plus 3pt minus 3pt} +{\vbox{\noindent\xepersian@shortarticleItemTitle{#1}}} +\vspace{5pt plus 3pt minus 3pt} +{\noindent #2}\\ +} +\endinput diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.sty b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.sty index 9317c8dccc5..b2f5b4ec1b2 100644 --- a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.sty +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.sty @@ -1,24 +1,15 @@ +%% This file is xepersian-mathsdigitspec.sty +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-mathsdigitspec} - [2008/09/27 v0.1 Unicode Farsi maths digits in XeLaTeX] - -\begingroup - \def\notXeLaTeXformat{% - \@latex@error{*** this package currently works only with XeLaTeX ***^^J - You are not using XeLaTeX, so we are exiting cleanly!^^J - Continuing may lead to 'unavailable font metrics' errors!^^J}\@ehc - \endgroup\endinput} -\expandafter\ifx\csname XeTeXpicfile\endcsname\relax\expandafter\notXeLaTeXformat\fi -\endgroup - -\RequirePackage[quiet]{fontspec} -\@ifpackageloaded{xepersian-mathsdigitspec}{\@zf@mathfalse}{} -\newcounter{um@fam} + [2009/01/05 v0.2 Unicode Persian maths digits in XeLaTeX (Author: Vafa Khalighi)] +\@zf@mathfalse \newif\if@um@fontspec@feature -\newif\if@um@ot@math@ -\newif\if@um@init -\providecommand\def@cn[2]{% - \expandafter\def\csname#1\endcsname{#2}} \def\um@Loop#1\um@Pool{#1\um@Loop#1\um@Pool} \def\um@Break#1\um@Pool{} \long\def\um@FOR#1=[#2:#3]\do#4{% @@ -29,124 +20,21 @@ \expandafter\um@Break \fi \um@Pool} -\newcommand\um@PackageError[2]{\PackageError{xepersian-mathsdigitspec}{#1}{#2}} -\newcommand\um@PackageWarning[1]{\PackageWarning{xepersian-mathsdigitspec}{#1}} \newcommand\um@PackageInfo[1]{\PackageInfo{xepersian-mathsdigitspec}{#1}} \def\um@usv@num{`\0} -\def\um@usv@bbnum{"1D7D8} -\def\um@usv@sfnum{"1D7E2} -\def\um@usv@ttnum{"1D7F6} - -\def\um@usv@bfnum{"1D7CE} - -\def\um@usv@bfsfnum{"1D7EC} -\define@choicekey*{xepersian-mathsdigitspec.sty} - {math-style}[\@tempa\@tempb]{iso,tex,french,literal}{% - \ifcase\@tempb\relax - \or - \@um@literaltrue - \fi} -\define@choicekey*{xepersian-mathsdigitspec.sty}{bold-style}[\@tempa\@tempb]{iso,tex,french,literal}{% - \ifcase\@tempb\relax - \or - \@um@bfliteraltrue - \fi} -\ExecuteOptionsX{math-style=iso} -\ProcessOptionsX -\def\@preamblecmds{} - -\newcommand\not@onlypreamble[1]{{% - \def\do##1{\ifx#1##1\else\noexpand\do\noexpand##1\fi}% - \xdef\@preamblecmds{\@preamblecmds}}} -\def\gm@notprerr{ can be used only in preamble (\on@line)} -\AtBeginDocument{% - \def\do#1{\noexpand\do\noexpand#1}% - \edef\@preamblecmds{% - \def\noexpand\do##1{% - \def##1{\noexpand\PackageError{gmutils/LaTeX}% - {\noexpand\string##1 \noexpand\gm@notprerr}\noexpand\@eha}}% - \@preamblecmds}} -\def\nocite#1{% - \@bsphack{\setbox0=\hbox{\cite{#1}}}\@esphack} - -\def\um@fontdimen@percent#1#2{% - 0.\strip@pt\dimexpr\fontdimen#1#2 *65536\relax} -\def\um@scaled@apply#1#2#3{% - \ifx#1\scriptstyle - #2\um@fontdimen@percent{10}\um@font#3% - \else - \ifx#1\scriptscriptstyle - #2\um@fontdimen@percent{11}\um@font#3% - \else - #2#3% - \fi - \fi} -\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} -\let\newfam\new@mathgroup -\def\um@mathsymbol#1#2#3#4{% - \expandafter\um@set@mathsymbol\csname sym#3\endcsname#1#2{#4}} -\def\um@set@mathsymbol#1#2#3#4{% - \ifx\mathop#3\relax - \begingroup - \catcode#4=\active - \global\mathcode#4="8000\relax - \um@scanactivedef#4\@nil{\csname\string#2@op\endcsname}% - \endgroup - \expandafter\global\expandafter\XeTeXmathchardef - \csname\string#2@sym\endcsname - ="\mathchar@type#3 #1 #4\relax - \expandafter\gdef\csname\string#2@op\endcsname{% - \csname\string#2@sym\endcsname - \expandafter\in@\expandafter#2\expandafter{\um@nolimits}% - \ifin@ - \expandafter\nolimits - \fi}% - \else - \expandafter\in@\expandafter#2\expandafter{\um@radicals,}% - \ifin@ - \expandafter\gdef\csname - \expandafter\@gobble\string#2sign\endcsname - {\XeTeXradical#1 #4\relax}% - \else - \ifx\mathopen#3\relax - \gdef#2{\XeTeXdelimiter "\mathchar@type#3 #1 #4}% - \global\XeTeXdelcode#4=#1 #4\relax - \global\XeTeXmathcode#4="\mathchar@type#3 #1 #4\relax - \else - \ifx\mathclose#3\relax - \gdef#2{\XeTeXdelimiter "\mathchar@type#3 #1 #4}% - \global\XeTeXdelcode#4=#1 #4\relax - \global\XeTeXmathcode#4="\mathchar@type#3 #1 #4\relax - \else - \ifx\mathaccent#3\relax - \xdef#2{\XeTeXmathaccent "\mathchar@type#3 #1 #4\relax}% - \else - \global\XeTeXmathcode#4="\mathchar@type#3 #1 #4\relax - \fi - \fi - \fi - \fi - \fi} \newcommand\SetMathCode[4]{% \XeTeXmathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax} \newcommand\SetMathCharDef[4]{% \XeTeXmathchardef#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax} \newcommand\setdigitfont[2][]{% - \let\glb@currsize\relax - \let\um@char@range\@empty - \let\um@char@num@range\@empty - \@um@initfalse - \@um@fontspec@featuretrue \csname S@\f@size\endcsname - \def\um@mversion{normal}% - \DeclareMathVersion{\um@mversion}% \def\um@ScriptFeatures{ScriptStyle}% \def\um@ScriptScriptFeatures{ScriptScriptStyle}% \def\um@ScriptFont{#2}% \def\um@ScriptScriptFont{#2}% \setkeys*[um]{options}{#1}% \edef\@tempa{\noexpand\zf@fontspec{% - Script=Math,SizeFeatures={% + Mapping=parsidigits,SizeFeatures={% {Size=\tf@size-},% {Size=\sf@size-\tf@size,% Font=\um@ScriptFont,% @@ -155,102 +43,14 @@ Font=\um@ScriptScriptFont,% \um@ScriptScriptFeatures}},% \XKV@rm}{#2}}\@tempa - \font\um@font="#2"\relax - \ifdim \dimexpr\fontdimen9\um@font*65536\relax =65pt - \@um@ot@math@true - \fi - \ifx\um@char@range\@empty - \def\um@symfont{um@allsym}% - \um@PackageInfo{Defining the default maths font as '#2'}% - \let\UnicodeMathSymbol\um@mathsymbol@noparse + \def\um@digitfont{um@digitfont}% + \um@PackageInfo{Defining the default Persian maths digits font as '#2'}% \DeclareSymbolFont{momayez}{EU1}{\zf@family}{m}{n}% \SetMathCharDef{\momayez}{\mathpunct}{momayez}{"066B}% - \else - \stepcounter{um@fam}% - \edef\um@symfont{um@fam\theum@fam}% - \let\UnicodeMathSymbol\um@mathsymbol@parse - \fi - \DeclareSymbolFont{\um@symfont} - {\encodingdefault}{\zf@family}{\mddefault}{\updefault}% - \if@um@init - \input xepersian-mathsdigitspec.tex\relax - \else - \unless\ifx\um@char@range\@empty - \input xepersian-mathsdigitspec.tex\relax - \fi - \fi - \ifx\um@char@range\@empty - \um@def@numbers - \fi +\DeclareSymbolFont{\um@digitfont} + {\encodingdefault}{\zf@family}{\mddefault}{\updefault}% +\um@def@numbers } -\newcommand\um@mathsymbol@noparse[4]{% - \um@mathsymbol{#2}{#3}{\um@symfont}{#1}} -\newcommand\um@mathsymbol@parse[4]{% - \um@parse@term{#1}{#2}{#3}{% - \um@mathsymbol{#2}{#3}{\um@symfont}{#1}}} -\newcommand\um@mk@math[1]{% - \expandafter\def\csname math#1\endcsname##1{% - \begingroup - \csname um@math#1\endcsname - ##1 - \endgroup}} -\newcommand\um@mathmap@noparse[3]{% - \@for\@ii:=#2\do{% - \expandafter\expandafter - \expandafter\um@addto@mathmap - \expandafter\expandafter - \expandafter{% - \expandafter\um@symfont - \expandafter}% - \expandafter{\@ii}{#1}{#3}% - }}% -\newcommand\um@mathmap@parse[3]{% - \@for\@ii:=\um@char@num@range\do{% - \ifnum\@ii=#3\relax - \@for\@jj:=#2\do{% - \expandafter\expandafter - \expandafter\um@addto@mathmap - \expandafter\expandafter - \expandafter{% - \expandafter\um@symfont - \expandafter}% - \expandafter{\@jj}{#1}{#3}}% - \fi}}% -\newcommand\um@addto@mathmap[4]{% - \expandafter\g@addto@macro - \csname um@\expandafter\@gobble\string#3\endcsname{% - \SetMathCode{#2}{\mathalpha}{#1}{#4}}} -\def\um@nolimits{% - \@elt\int\@elt\iint\@elt\iiint\@elt\iiiint\@elt\oint\@elt\oiint\@elt\oiiint - \@elt\intclockwise\@elt\varointclockwise\@elt\ointctrclockwise\@elt\sumint - \@elt\intbar\@elt\intBar\@elt\fint\@elt\cirfnint\@elt\awint\@elt\rppolint - \@elt\scpolint\@elt\npolint\@elt\pointint\@elt\sqint\@elt\intlarhk\@elt\intx - \@elt\intcap\@elt\intcup\@elt\upint\@elt\lowint} -\newcommand\addnolimits[1]{% - \expandafter\def - \expandafter\um@nolimits - \expandafter{\um@nolimits\@elt#1}} -\def\removenolimits#1{% - \begingroup - \def\@elt##1{% - \ifx##1#1\else - \noexpand\@elt\noexpand##1 - \fi} - \xdef\um@nolimits{\um@nolimits}% - \endgroup} -\def\um@radicals{\sqrt} -\def\r@@t#1#2{% - \setbox\z@\hbox{$\m@th #1\sqrtsign{#2}$}% - \um@scaled@apply{#1}{\kern}{\fontdimen63\um@font}% - \raise \dimexpr( - \um@fontdimen@percent{65}{\um@font}\ht\z@- - \um@fontdimen@percent{65}{\um@font}\dp\z@ - )\relax - \copy \rootbox% - \um@scaled@apply{#1}{\kern}{\fontdimen64\um@font}% - \box \z@} -\let\left@primitive\left -\def\left{\mathopen{}\left@primitive} \newcommand\um@zf@feature[2]{% \define@key[zf]{options}{#1}[]{% \if@um@fontspec@feature @@ -260,95 +60,13 @@ \zf@update@ff{+ssty=0}} \um@zf@feature{ScriptScriptStyle}{% \zf@update@ff{+ssty=1}} -\define@cmdkey[um]{options}[um@]{ScriptFeatures}{} -\define@cmdkey[um]{options}[um@]{ScriptScriptFeatures}{} -\define@cmdkey[um]{options}[um@]{ScriptFont}{} -\define@cmdkey[um]{options}[um@]{ScriptScriptFont}{} -\define@choicekey+[um]{options}{Range}[\@tempa\@tempb]{ALL}{% - \ifcase\@tempb\relax - \@um@inittrue - \fi}{% else: - \xdef\um@char@range{\zap@space#1 \@empty}} -\newcommand\um@parse@term[4]{% - \@for\@ii:=\um@char@range\do{% - \unless\ifx\@ii\@empty - \@tempswafalse - \expandafter\um@firstchar\expandafter{\@ii}% - \ifx\@tempa\um@backslash - \expandafter\ifx\@ii#2\relax - \@tempswatrue - \else - \expandafter\ifx\@ii#3\relax - \@tempswatrue - \fi - \fi - \else - \expandafter\um@parse@range\@ii-\@marker-\@nil#1\@nil - \fi - \if@tempswa - \ifx\um@char@num@range\@empty - \g@addto@macro\um@char@num@range{#1}% - \else - \g@addto@macro\um@char@num@range{,#1}% - \fi - #4% - \fi - \fi}} -\def\um@firstof#1#2\@nil{#1} -\edef\um@backslash{\expandafter\um@firstof\string\string\@nil} -\def\um@firstchar#1{\edef\@tempa{\expandafter\um@firstof\string#1\@nil}} -\def\um@parse@range#1-#2-#3\@nil#4\@nil{% - \def\@tempa{#1}% - \def\@tempb{#2}% - \expandafter\ifx\expandafter\@marker\@tempb\relax - \ifnum#4=#1\relax - \@tempswatrue - \fi - \else - \ifx\@empty\@tempb - \ifnum#4>\numexpr#1-1\relax - \@tempswatrue - \fi - \else - \ifx\@empty\@tempa - \ifnum#4<\numexpr#2+1\relax - \@tempswatrue - \fi - \else - \ifnum#4>\numexpr#1-1\relax - \ifnum#4<\numexpr#2+1\relax - \@tempswatrue - \fi\fi\fi\fi\fi} \newcommand\um@setmathcode[3][1]{% \@for\um@inp:=#2\do{% \um@FOR\@tempcnta=[1:#1]\do{% \SetMathCode{\numexpr\um@inp+\@tempcnta-1\relax} - {\mathalpha}{\um@symfont}{\numexpr#3+\@tempcnta-1\relax}}}} -\newcommand\um@setmathalph[4][1]{% - \@for\um@inp:=#3\do{% - \um@FOR\@tempcnta=[1:#1]\do{% - \edef\@tempa{% - \noexpand\um@setsinglemathalph - {\noexpand#2} - {\number\numexpr \um@inp+\@tempcnta-1 \relax} - {\number\numexpr #4+\@tempcnta-1 \relax}}\@tempa}}} + {\mathalpha}{\um@digitfont}{\numexpr#3+\@tempcnta-1\relax}}}} \newcommand\um@def@numbers{% \um@setmathcode[10]{\um@usv@num}{\um@usv@num}} -\begingroup - \catcode`\^=12\relax - \gdef\um@scancharlet#1="#2\@nil{% - \lowercase{\scantokens{\global\let#1=^^^^^#2}}} - \catcode`\^=12\relax - \gdef\um@scanactivedef"#1\@nil#2{% - \lowercase{\scantokens{\global\def^^^^^#1{#2}}}} -\endgroup -\let\unicodemathgobble\@gobble -\begingroup - \def\UnicodeMathSymbol#1#2#3#4{% - \um@scancharlet#2=#1\@nil} - \input xepersian-mathsdigitspec.tex\relax -\endgroup -\DeclareRobustCommand\sqrt{\@ifnextchar[\@sqrt\sqrtsign} \ifx\newcommand\undefined\else \newcommand{\ZifferAn}{} \fi @@ -380,4 +98,4 @@ \fi} \mathcode`.="8000\relax \def\ZifferLeer{\ifx\momayez\undefied .\else \momayez\fi} -\endinput
\ No newline at end of file +\endinput diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.tex b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.tex deleted file mode 100644 index 345dcdc7766..00000000000 --- a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.tex +++ /dev/null @@ -1,50 +0,0 @@ -\UnicodeMathSymbol{"1D7CE}{\mbfzero }{\mathord}{mathematical bold digit 0}% -\UnicodeMathSymbol{"1D7CF}{\mbfone }{\mathord}{mathematical bold digit 1}% -\UnicodeMathSymbol{"1D7D0}{\mbftwo }{\mathord}{mathematical bold digit 2}% -\UnicodeMathSymbol{"1D7D1}{\mbfthree }{\mathord}{mathematical bold digit 3}% -\UnicodeMathSymbol{"1D7D2}{\mbffour }{\mathord}{mathematical bold digit 4}% -\UnicodeMathSymbol{"1D7D3}{\mbffive }{\mathord}{mathematical bold digit 5}% -\UnicodeMathSymbol{"1D7D4}{\mbfsix }{\mathord}{mathematical bold digit 6}% -\UnicodeMathSymbol{"1D7D5}{\mbfseven }{\mathord}{mathematical bold digit 7}% -\UnicodeMathSymbol{"1D7D6}{\mbfeight }{\mathord}{mathematical bold digit 8}% -\UnicodeMathSymbol{"1D7D7}{\mbfnine }{\mathord}{mathematical bold digit 9}% -\UnicodeMathSymbol{"1D7D8}{\Bbbzero }{\mathord}{mathematical double-struck digit 0}% -\UnicodeMathSymbol{"1D7D9}{\Bbbone }{\mathord}{mathematical double-struck digit 1}% -\UnicodeMathSymbol{"1D7DA}{\Bbbtwo }{\mathord}{mathematical double-struck digit 2}% -\UnicodeMathSymbol{"1D7DB}{\Bbbthree }{\mathord}{mathematical double-struck digit 3}% -\UnicodeMathSymbol{"1D7DC}{\Bbbfour }{\mathord}{mathematical double-struck digit 4}% -\UnicodeMathSymbol{"1D7DD}{\Bbbfive }{\mathord}{mathematical double-struck digit 5}% -\UnicodeMathSymbol{"1D7DE}{\Bbbsix }{\mathord}{mathematical double-struck digit 6}% -\UnicodeMathSymbol{"1D7DF}{\Bbbseven }{\mathord}{mathematical double-struck digit 7}% -\UnicodeMathSymbol{"1D7E0}{\Bbbeight }{\mathord}{mathematical double-struck digit 8}% -\UnicodeMathSymbol{"1D7E1}{\Bbbnine }{\mathord}{mathematical double-struck digit 9}% -\UnicodeMathSymbol{"1D7E2}{\msanszero }{\mathord}{mathematical sans-serif digit 0}% -\UnicodeMathSymbol{"1D7E3}{\msansone }{\mathord}{mathematical sans-serif digit 1}% -\UnicodeMathSymbol{"1D7E4}{\msanstwo }{\mathord}{mathematical sans-serif digit 2}% -\UnicodeMathSymbol{"1D7E5}{\msansthree }{\mathord}{mathematical sans-serif digit 3}% -\UnicodeMathSymbol{"1D7E6}{\msansfour }{\mathord}{mathematical sans-serif digit 4}% -\UnicodeMathSymbol{"1D7E7}{\msansfive }{\mathord}{mathematical sans-serif digit 5}% -\UnicodeMathSymbol{"1D7E8}{\msanssix }{\mathord}{mathematical sans-serif digit 6}% -\UnicodeMathSymbol{"1D7E9}{\msansseven }{\mathord}{mathematical sans-serif digit 7}% -\UnicodeMathSymbol{"1D7EA}{\msanseight }{\mathord}{mathematical sans-serif digit 8}% -\UnicodeMathSymbol{"1D7EB}{\msansnine }{\mathord}{mathematical sans-serif digit 9}% -\UnicodeMathSymbol{"1D7EC}{\mbfsanszero }{\mathord}{mathematical sans-serif bold digit 0}% -\UnicodeMathSymbol{"1D7ED}{\mbfsansone }{\mathord}{mathematical sans-serif bold digit 1}% -\UnicodeMathSymbol{"1D7EE}{\mbfsanstwo }{\mathord}{mathematical sans-serif bold digit 2}% -\UnicodeMathSymbol{"1D7EF}{\mbfsansthree }{\mathord}{mathematical sans-serif bold digit 3}% -\UnicodeMathSymbol{"1D7F0}{\mbfsansfour }{\mathord}{mathematical sans-serif bold digit 4}% -\UnicodeMathSymbol{"1D7F1}{\mbfsansfive }{\mathord}{mathematical sans-serif bold digit 5}% -\UnicodeMathSymbol{"1D7F2}{\mbfsanssix }{\mathord}{mathematical sans-serif bold digit 6}% -\UnicodeMathSymbol{"1D7F3}{\mbfsansseven }{\mathord}{mathematical sans-serif bold digit 7}% -\UnicodeMathSymbol{"1D7F4}{\mbfsanseight }{\mathord}{mathematical sans-serif bold digit 8}% -\UnicodeMathSymbol{"1D7F5}{\mbfsansnine }{\mathord}{mathematical sans-serif bold digit 9}% -\UnicodeMathSymbol{"1D7F6}{\mttzero }{\mathord}{mathematical monospace digit 0}% -\UnicodeMathSymbol{"1D7F7}{\mttone }{\mathord}{mathematical monospace digit 1}% -\UnicodeMathSymbol{"1D7F8}{\mtttwo }{\mathord}{mathematical monospace digit 2}% -\UnicodeMathSymbol{"1D7F9}{\mttthree }{\mathord}{mathematical monospace digit 3}% -\UnicodeMathSymbol{"1D7FA}{\mttfour }{\mathord}{mathematical monospace digit 4}% -\UnicodeMathSymbol{"1D7FB}{\mttfive }{\mathord}{mathematical monospace digit 5}% -\UnicodeMathSymbol{"1D7FC}{\mttsix }{\mathord}{mathematical monospace digit 6}% -\UnicodeMathSymbol{"1D7FD}{\mttseven }{\mathord}{mathematical monospace digit 7}% -\UnicodeMathSymbol{"1D7FE}{\mtteight }{\mathord}{mathematical monospace digit 8}% -\UnicodeMathSymbol{"1D7FF}{\mttnine }{\mathord}{mathematical monospace digit 9}% diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-presentation.cls b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-presentation.cls new file mode 100644 index 00000000000..97866df4bb3 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-presentation.cls @@ -0,0 +1,86 @@ +%% This file is xepersian-presentation.cls +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{xepersian-presentation}[2009/01/05 class for plain Persian electronic presentations in XeLaTeX (Author: Vafa Khalighi)] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass{article} + +\RequirePackage[foot=10.2pt,head=0pt,paperwidth=128mm,paperheight=96mm,left=5mm,top=5mm,right=7mm,bottom=8mm]{geometry} + +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0mm} + + +\renewcommand{\maketitle}% + {\ClassError{xepersian-presentation}{Caution: ``maketitle'' command not supported}% + {Please use ``titlepage'' environment instead}% +} + +\fancypagestyle{pres}{% +\fancyhf{}% +\fancyfoot[RO,LE]{\footnotesize \thepage}% +} + +\pagestyle{pres} + +\newcommand{\distance}[1]{\vspace*{\stretch{#1}}} +\newcommand{\abstand}[1]{\vspace*{\stretch{#1}}} + +\setlength{\parskip}{0.6ex} +\setlength{\parindent}{0mm} + +\newenvironment{plainslide}[1][]% + {{\raggedleft \large\bfseries #1\par}\par\vspace*{\stretch{1}}}% + {\par\vspace*{\stretch{1}}\newpage} + + +\newenvironment{rawslide}{}{\newpage}% + + +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi + \setlength{\itemsep}{0ex}% + \setlength{\parskip}{0.1ex}% + \setlength{\parsep}{0ex}% + }% +\let\enditemize =\endlist + + +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% + \fi + \setlength{\itemsep}{0ex}% + \setlength{\parskip}{0.1ex}% + \setlength{\parsep}{0ex}% + }% +\let\endenumerate =\endlist + + +\renewenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel} + \setlength{\itemsep}{0ex}% + \setlength{\parskip}{0.1ex}% + \setlength{\parsep}{0ex}} + {\endlist} + +\endinput diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-thesis.cls b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-thesis.cls new file mode 100644 index 00000000000..e3913cabbc2 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-thesis.cls @@ -0,0 +1,904 @@ +%% This file is xepersian-thesis.cls (Modified version of report.cls) +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% +%% +%% +%% +%% This is file `report.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% classes.dtx (with options: `report') +%% +%% This is a generated file. +%% +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the LaTeX base system. +%% -------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file has the LPPL maintenance status "maintained". +%% +%% This file may only be distributed together with a copy of the LaTeX +%% base system. You may however distribute the LaTeX base system without +%% such generated files. +%% +%% The list of all files belonging to the LaTeX base distribution is +%% given in the file `manifest.txt'. See also `legal.txt' for additional +%% information. +%% +%% The list of derived (unpacked) files belonging to the distribution +%% and covered by LPPL is defined by the unpacking scripts (with +%% extension .ins) which are part of the distribution. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{xepersian-thesis} + [2009/01/05 v0.1 + Persian thesis document class in XeLaTeX (Author: Vafa Khalighi)] +\newcommand\@ptsize{} +\newif\if@restonecol +\newif\if@titlepage +\@titlepagetrue +\newif\if@openright +\if@compatibility\else +\DeclareOption{a4paper} + {\setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{b5paper} + {\setlength\paperheight {250mm}% + \setlength\paperwidth {176mm}} +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\fi +\if@compatibility + \renewcommand\@ptsize{0} +\else +\DeclareOption{10pt}{\renewcommand\@ptsize{0}} +\fi +\DeclareOption{11pt}{\renewcommand\@ptsize{1}} +\DeclareOption{12pt}{\renewcommand\@ptsize{2}} +\if@compatibility\else +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\fi +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\if@compatibility\else +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\fi +\DeclareOption{titlepage}{\@titlepagetrue} +\if@compatibility\else +\DeclareOption{notitlepage}{\@titlepagefalse} +\fi +\if@compatibility +\else +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} +\fi +\if@compatibility\else +\DeclareOption{onecolumn}{\@twocolumnfalse} +\fi +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}% +} +\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany} +\ProcessOptions +\input{size1\@ptsize.clo} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{} +\setlength\parskip{0\p@ \@plus \p@} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setcounter{topnumber}{2} +\renewcommand\topfraction{.7} +\setcounter{bottomnumber}{1} +\renewcommand\bottomfraction{.3} +\setcounter{totalnumber}{3} +\renewcommand\textfraction{.2} +\renewcommand\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.7} +\renewcommand\dblfloatpagefraction{.5} +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\rl\thepage\hfil\rl\leftmark}% + \def\@oddhead{\rl\rightmark\hfil\rl\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \rl{\@chapapp\ \thechapter. \ }% + \fi + \rl{##1}}}{}}% + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \rl{\thesection. \ }% + \fi + \rl{##1}}}}} +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{\rl\rightmark\hfil\rl\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \rl{\@chapapp\ \thechapter. \ }% + \fi + \rl{##1}}}}} +\fi +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\rl\thepage\hfil\rl\leftmark}% + \def\@oddhead{rl\rightmark\hfil\rl\thepage}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble + } + \if@titlepage + \newcommand\maketitle{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par + \@thanks + \vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +\else +\newcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +\def\@maketitle{% + \newpage + \null + \vskip 2em% + \begin{center}% + \let \footnote \thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par + \vskip 1.5em} +\fi +\newcommand*\chaptermark[1]{} +\setcounter{secnumdepth}{2} +\newcounter {part} +\newcounter {chapter} +\newcounter {section}[chapter] +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\renewcommand \thepart {\@tartibi\c@part} +\renewcommand \thechapter {\@arabic\c@chapter} +\renewcommand \thesection {\thechapter.\@arabic\c@section} +\renewcommand\thesubsection {\thesection.\@arabic\c@subsection} +\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection} +\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph} +\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} +\newcommand\@chapapp{\chaptername} +\newcommand\part{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{plain}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \partname\nobreakspace\thepart + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} +\def\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \Huge \bfseries #1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside + \if@openright + \null + \thispagestyle{empty}% + \newpage + \fi + \fi + \if@tempswa + \twocolumn + \fi} +\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{plain}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \huge\bfseries \@chapapp\space \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\newcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\Large\bfseries}} +\newcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\large\bfseries}} +\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries}} +\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\leftmargin \leftmargini +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi {.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + \bfseries \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi} + {\if@twocolumn\else\endquotation\fi} +\fi +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item\relax} + {\endlist} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item\relax} + {\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax} + {\endlist} +\if@compatibility +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn \else \newpage \fi + } +\else +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +\newcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\@addtoreset {equation}{chapter} +\renewcommand\theequation + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} +\newcounter{figure}[chapter] +\renewcommand \thefigure + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreakspace\thefigure} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +\newcounter{table}[chapter] +\renewcommand \thetable + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreakspace\thetable} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#1: #2}% + \ifdim \wd\@tempboxa >\hsize + #1: #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} +\newcommand\@pnumwidth{1.55em} +\newcommand\@tocrmarg{2.55em} +\newcommand\@dotsep{4.5} +\setcounter{tocdepth}{2} +\newcommand\tableofcontents{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% + \@starttoc{toc}% + \if@restonecol\twocolumn\fi + } +\newcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \setlength\@tempdima{3em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\leavevmode + \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}} +\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}} +\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}} +\newcommand\listoffigures{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfigurename}% + \@mkboth{\MakeUppercase\listfigurename}% + {\MakeUppercase\listfigurename}% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi + } +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\newcommand\listoftables{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listtablename}% + \@mkboth{% + \MakeUppercase\listtablename}% + {\MakeUppercase\listtablename}% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi + } +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{1.5em} +\newenvironment{thebibliography}[1] + {\chapter*{\bibname}% + \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty +\newenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\MakeUppercase\indexname}% + {\MakeUppercase\indexname}% + \thispagestyle{plain}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \columnseprule \z@ + \columnsep 35\p@ + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand\@idxitem{\par\hangindent 40\p@} +\newcommand\subitem{\@idxitem \hspace*{20\p@}} +\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} +\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width.4\columnwidth + \kern2.6\p@} +\@addtoreset{footnote}{chapter} +\newcommand\@makefntext[1]{% + \parindent 1em% + \noindent + \hb@xt@1.8em{\hss\@makefnmark}#1} +\newcommand\contentsname{فهرست مطالب} +\newcommand\listfigurename{لیست تصاویر} +\newcommand\listtablename{لیست جداول} +\newcommand\bibname{کتابنامه} +\newcommand\indexname{نمایه} +\newcommand\figurename{شکل} +\newcommand\tablename{جدول} +\newcommand\partname{قسمت} +\newcommand\chaptername{فصل} +\newcommand\appendixname{پیوست} +\newcommand\abstractname{چکیده} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} +\setlength\columnsep{10\p@} +\setlength\columnseprule{0\p@} +\pagestyle{plain} +\pagenumbering{arabic} +\if@twoside +\else + \raggedbottom +\fi +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn +\fi + + + + + +\def\university#1{\gdef\@university{#1}} +\def\department#1{\gdef\@department{#1}} +\def\degree#1{\gdef\@degree{#1}} +\def\thesisdate#1{\gdef\@thesisdate{#1}} +\def\supervisor#1{\gdef\@supervisor{#1}} +\def\city#1{\gdef\@city{#1}} + +\def\romantitle#1{\gdef\@romantitle{#1}} +\def\romanauthor#1{\gdef\@romanauthor{#1}} +\def\romandegree#1{\gdef\@romandegree{#1}} +\def\romandepartment#1{\gdef\@romandepartment{#1}} +\def\romanthesisdate#1{\gdef\@romanthesisdate{#1}} +\def\romansupervisor#1{\gdef\@romansupervisor{#1}} +\def\romancity#1{\gdef\@romancity{#1}} +\def\romanuniversity#1{\gdef\@romanuniversity{#1}} + +\def\maketitle{\begin{titlepage} +{\includegraphics{logo}} +\vskip 1.5cm +{\Huge\bf \@title}\par +\vskip 1cm +{\large% + \by}\par +{\Large\bf \@author}\par +\vskip 5mm +{\large\bf\writtenfor +\par +\@degree} +\par +\vskip 1cm +{\large + \undersupervision\par +\Large\bf \@supervisor} +\par +\vskip 1cm +{\large \@thesisdate} +\par +\vskip 1cm +{\large\bf\departmentof\space\@department} +\par +{\large\bf\universityof\space\@university \par\@city} +\vfill +\end{titlepage}% +} + +\def\abstractpage{\newpage +\thispagestyle{empty} +\vskip 15mm +\begin{center}{\large{\bf \@title} \\} +\end{center} +\par +\begin{abstract}} +\def\endabstractpage{\end{abstract} +\newpage +} + +\def\romanabstract{\newpage +\thispagestyle{empty} +\vskip 15mm +\begin{center}{\Large\bf \@romantitle \\[5mm]} +{\bf Abstract} +\end{center} +\vspace{5mm}} + +\def\endromanabstract{\newpage} + +\def\acknowledgementpage{\newpage +\thispagestyle{empty} +\centerline{\Large \bf\acknowledgementname} +\vspace{1cm} +\par\noindent} +\def\endacknowledgementpage{\newpage} + +\def\titlepage{\newpage\centering + \thispagestyle{empty} + \parindent 0pt \parskip 10pt plus 1fil minus 1fil + \def\baselinestretch{1}\@normalsize\vbox to \vsize\bgroup\vbox to 9in\bgroup} +\def\endtitlepage{\par\kern 0pt\egroup\vss\egroup\newpage} + +\def\signature#1#2{\par\noindent#1\dotfill\null\\* + {\raggedright #2\par}} +\def\abstract{\subsection*{\abstractname}\small\def\baselinestretch{1} +\@normalsize} +\def\endabstract{\par} + + + +\pagenumbering{harfi} +\let\ol@chapter\@chapter +\def\@chapter{% + \ifnum\c@chapter=0 \pagenumbering{arabic}\setcounter{page}{1}\fi + \ol@chapter} + + + +\def\keywords#1{\par \vspace{5mm} +{\textbf{واژههای کلیدی:}} {\textit{ #1}}} + +\def\romankeywords#1{\par \vspace{5mm} +\noindent {\textbf{Keywords:}} {\textit{ #1}}} + +\font\titlefont=cmssbx10 scaled 2074 +\font\supervisorfont=cmbxti10 +\def\makeromantitle{\begin{titlepage} +{\includegraphics{logo}} +\vskip 1.5cm +\addtolength{\baselineskip}{5mm} +{\titlefont \@romantitle} \par +\addtolength{\baselineskip}{-5mm} +\vskip 1cm +{\bf\romanby}\par +{\Large\bf \@romanauthor}\par +\vskip 5mm +{\romanwrittenfor\par +\large\@romandegree} +\par +\vskip 1cm +Under supervision of \\ +{\supervisorfont\@romansupervisor} +\par +\vskip 1cm +{\@romanthesisdate} +\par +\vskip 1cm +\large\bf +\@romandepartment\space Department +\par +\@romanuniversity \par\@romancity +\vfill +\end{titlepage}% +} + + +\def\acknowledgementname{قدردانی} +\def\by{توسط} +\def\writtenfor{ رسالهٔ ارائه شده به عنوان بخشی از ملزومات برای دریافت درجهٔ} +\def\undersupervision{زیر نظر} +\def\departmentof{دانشکدهٔ} +\def\universityof{دانشگاه} +\def\romanby{by} +\def\romanwrittenfor{Submitted in Partial Fulfillment\\ of the Requirements\\ for the Degree of} +\def\romanundersupervision{Under supervision of} +\endinput diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-user.cls b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-user.cls new file mode 100644 index 00000000000..d5d9f2c00c8 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-user.cls @@ -0,0 +1,799 @@ +%% This file is xepersian-user.cls +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{xepersian-user}[2009/01/05 Class for XePersian User's Guide (Author: Vafa Khalighi)] +\TeXXeTstate=1 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass{article} +\RequirePackage{pstcol} +\RequirePackage{pst-coil} +\RequirePackage{pst-plot} +\RequirePackage{pst-tree} +\RequirePackage{fancybox} +\RequirePackage{fancyvrb} +\RequirePackage{geometry} +\RequirePackage{fontspec} +\RequirePackage{xltxtra} +\RequirePackage{url} +\RequirePackage[hyperfootnotes=false,colorlinks=true,bookmarks=true] + {hyperref} +\RequirePackage{pifont} +\def\thetitle{\XePersian : User's Guide} +\newcommand*\setPersianFont[2][]{% +\newfontfamily\PersianFont[Script=Arabic,#1]{#2} +} +\def\PersianTxt#1{\begingroup\beginR\PersianFont#1\endR\endgroup} +\let\theheadertitle\thetitle +\let\fileversion\Version +\let\filedate\Date +\parindent 0pt +\parskip 7pt plus 1pt minus 1pt +\oddsidemargin 5cm +\evensidemargin 5cm +\textwidth 11.5cm +\topmargin\z@ +\textheight 8.8in +\footskip .625in +\headheight 0pt +\headsep 0pt +\marginparwidth 3.5cm +\marginparsep .5cm +\reversemarginpar +\ifdim\paperwidth=210mm \papersizeadjust\fi +\def\arraystretch{1.2} +\hfuzz 1pt +\def\twosideclearpage{% + \clearpage + \if@twoside + \ifodd\c@page\else + \thispagestyle{empty}% + \null\leavevmode + \clearpage + \fi + \fi} +\setlength{\parindent}{0pt} +\setlength{\parskip}{7pt plus 1pt minus 1pt} +\def\@listI{% + \leftmargin\leftmargini + \parsep 5\p@ plus2.5\p@ minus\p@ + \topsep 5\p@ plus2\p@ minus2\p@ + \itemsep 5\p@ plus2.5\p@ minus\p@} +\let\@listi\@listI +\@listi +\def\@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 2\p@ plus.5\p@ minus\p@ + \parsep 2.5\p@ plus\p@ minus\p@ + \itemsep \parsep} +\def\@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 1\p@ plus.2\p@ minus.2\p@ + \parsep \z@ + \partopsep \p@ plus\z@ minus\p@ + \itemsep \topsep} +\skip\footins 20pt plus 4pt minus 2pt +\newcounter{faq}[section] +\def\thefaq{\arabic{faq}} +\let\l@faq\@gobbletwo +\def\faq{\@startsection{faq}{2}{\z@}% + {3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\faqfont}} +\def\faqfont{\normalsize\sffamily} +\def\faqmark#1{} +\def\error{\vskip 2ex\noindent} +\def\section{\@startsection{section}{1}{\sechang}% + {-3ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\secfont}} +\def\subsection{\@startsection{subsection}{2}{\subsechang}% + {-2.75ex plus -1ex minus -.2ex}{1.25ex plus .2ex}{\subsecfont}} +\newdimen\sechang +\newdimen\subsechang +\sechang=-.75in +\subsechang=-.375in +\def\secfont{\sffamily\LARGE\bfseries} +\def\subsecfont{\sffamily\Large\bfseries} +\def\ps@docheadings{% + \let\@mkboth\markboth + \def\@oddhead{}% + \let\@evenhead\@oddhead% + \def\@oddfoot{% + \small\sffamily + \rightmark + \hfil + \thepage}% + \def\@evenfoot{% + \small\sffamily + \thepage + \hfil + \theheadertitle}% + \def\sectionmark##1{\markright {##1}}}% +\pagestyle{docheadings} +\newskip\tempskip +\def\TOCshrink{.5} +\def\TableOfContents{% + \begin{quote} + \begin{center} \Large\bf Contents \end{center} + \def\numberline##1{\hbox to 0pt{\hss##1\hskip 1em}}% + \let\oldaddvspace\addvspace + \def\addvspace##1{% + \tempskip##1\relax + \oldaddvspace{\TOCshrink\tempskip}} + \@starttoc{toc}% + \end{quote}} +\def\tableofcontents{% + \clearpage + \markright{CONTENTS}% + \TableOfContents + \clearpage} +\def\expanddate#1/#2/#3/{% + \number#3{} + \month=#2 + \ifcase\month\or + January \or February \or March \or April \or May \or June \or + July \or August \or September \or October \or November \or December + \fi + 20#1} +\def\thefiledate{\expandafter\expanddate\Date/} +\date{\thefiledate} +\def\NotNested{\def\begin##1{% + \@latexerr{Bad nesting of environments. + Perhaps missing \end{\@currenvir}}\@eha + \end{\@currenvir}% + \begin{##1}}} +\def\Ex{% + \NotNested + \list{}{}\item[]% + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin + \rightskip\z@ + \parindent\z@ + \parskip\z@ + \parfillskip\@flushglue + \hfuzz 1pt + \@@par + \global\@inlabelfalse} +\def\endEx{\endlist} +\begingroup + \catcode`\{=12 \catcode`\}=12 + \catcode`\(=1 \catcode`\)=2 + \catcode`\+=0 \catcode`\\=12 + +gdef+|(\) % \| = character \ + +gdef+{({) % \{ = character { + +gdef+}(}) % \} = character } ++endgroup +\def\Backslash{\protect\|} +\def\times@scale{.96} +\def\helv@scale{.82} +\def\courier@scale{.985} +\def\AmS{AMS} +\def\symchar#1{% + \mbox{% + \kern .3pt + \Pisymbol{psy}{#1} + \kern .3pt}} + +\def\lt{\symchar{'074}} +\def\gt{\symchar{'076}} +\def\leq{\symchar{'243}} +\def\geq{\symchar{'263}} +\def\bullet{\symchar{'267}} +\def\ldots{\symchar{'274}} +\mathcode`\-="20B1 +\renewcommand{\ttdefault}{\sfdefault} +\def\MainFont{\ttfamily\bfseries\large} +\def\UsageFont{\ttfamily\bfseries} +\def\InlineFont{\ttfamily} +\def\MetaFont{\sffamily\slshape} +\def\OpArgFont{\normalfont} +\begingroup + \catcode`\<=\active + \gdef\ShortMeta{% + \catcode`\<=\active + \def<##1>{{\MetaFont ##1\/}}} +\endgroup +\def\DeleteShortMeta{\catcode`\<=12\relax} +\ShortMeta +\def\x#1{{\MetaFont x#1\/}} +\def\y#1{{\MetaFont y#1\/}} +\def\c#1{{\InlineFont(\x{#1},\kern 1pt\y{#1})}} +\def\cn{\c{n}} +\def\FV@SetupFont{% + \FV@BaseLineStretch + \FV@FontSize + \FV@FontFamily + \FV@FontSeries + \FV@FontShape + \selectfont +} +\def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine} +\AtBeginDocument{\DefineShortVerb{\"}} + +\VerbatimFootnotes + +\fvset{gobble=2,commentchar=\",codes={\catcode`\<=12},fontfamily=helvetica, + frame=single,numbers=left,numbersep=1mm} + +\DefineVerbatimEnvironment{LVerb}{LVerbatim}{fontsize=\small} +\DefineVerbatimEnvironment{LVerb*}{LVerbatim}% + {fontsize=\small,codes={\catcode`\<=13}} + +\def\FV@Space{\ \ } + +% Verbatim items: + +\newcommand{\vitem}{\SaveVerb[codes={\catcode`\<=13}, + aftersave={\item[\UseVerb{item}]}]{item}} + + +\newcommand{\BeginExample}{% + \VerbatimEnvironment + \catcode`\<=12\relax + \catcode`\"=9\relax + \begin{VerbatimOut}[commentchar=none,codes={\catcode`\"=12}]{\jobname.tmp}} + +\newcommand{\EndExample}{% + \end{VerbatimOut} + \fvset{gobble=0,fontsize=\small}} + +\newenvironment{example}{\BeginExample}{% + \EndExample + \LVerbatimInput{\jobname.tmp}% + \begin{center}\leavevmode\input{\jobname.tmp}\end{center}} + +\newenvironment{example*}{\BeginExample}{% + \EndExample\LVerbatimInput{\jobname.tmp}\input{\jobname.tmp}} + +\newenvironment{example**}{\BeginExample}{% + \EndExample\SideBySideEx{\input{\jobname.tmp}}} + +\newif\ifgrid +\newpsobject{usergrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt} + +\def\MEx{\@ifnextchar[{\@MEx}{\@MEx[0,0]}} +\def\@MEx[#1,#2](#3,#4){% + \def\PictureSize{(#1,#2)(#3,#4)}% + \BeginExample} +\def\endMEx{% + \EndExample + \SideBySideEx{% + \expandafter\pspicture\PictureSize + \ifgrid\usergrid\fi\relax + \input{\jobname.tmp}% + \endpspicture}} + +\def\SideBySideEx#1{% + \trivlist\item[]% + \leavevmode\kern-\@totalleftmargin + \hbox{\valign{% + \vfil##\vfil\cr + \hbox to \z@{\hss#1}\cr + \hbox to \leftmargini{\hss}\cr + \@tempdimc=\textwidth + \advance\@tempdimc-\leftmargini + \advance\@tempdimc-\psframesep + \advance\@tempdimc-\psframesep + \advance\@tempdimc-\pslinewidth + \advance\@tempdimc-\pslinewidth + \hbox{\psframebox{\BVerbatimInput[frame=none,numbersep=2mm, + boxwidth=\@tempdimc]{\jobname.tmp}}}\cr}}% + \endtrivlist} + +\@namedef{MEx*}{\gridtrue\MEx} +\@namedef{endMEx*}{\endMEx} + + +\def\FV@BProcessLine#1{% +\hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi{% +\FV@LeftListNumber +\FV@LeftListFrame +\FancyVerbFormatLine{#1}\hss +\FV@RightListFrame +\FV@RightListNumber}} + +\def\BUseVerbatim{\FV@Command{}{BNumbersUseVerbatim}} + +\def\FVC@BNumbersUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BNumbersUseVerbatim}} + +\def\FV@BNumbersUseVerbatim#1{\FV@BNumbersVerbatimBegin#1\FV@BVerbatimEnd} + +\def\FV@BNumbersVerbatimBegin{% + \begingroup + \FV@UseKeyValues + \FV@BeginVBox + \let\FV@ProcessLine\FV@BNumbersProcessLine + \FV@FormattingPrep + \FV@ObeyTabsInit}% + +\def\FV@BNumbersProcessLine#1{% +\global\advance\FV@CodeLineNo\@ne +\FV@StepLineNo +\FV@BProcessLine{#1}} + + +%%%%%%%%%%%%%%%%%%%% Logos %%%%%%%%%%%%%%%%%%%% + +\def\b@LaTeX{% + \begingroup + \csname reset@font\endcsname + \rmfamily\bfseries + L\kern-.32em + \raise.36ex\hbox{% + \ifx\@currsize\Huge\LARGE\else + \ifx\@currsize\huge\Large\else + \ifx\@currsize\LARGE\large\else + \ifx\@currsize\Large\normalsize\else + \ifx\@currsize\large\small\else + \ifx\@currsize\normalsize\footnotesize\else + \ifx\@currsize\small\scriptsize\else + \ifx\@currsize\footnotesize\scriptscriptsize + \fi\fi\fi\fi\fi\fi\fi\fi + \textbf{A}}% + \kern-.15em + T\kern-.1667em + \lower.7ex\hbox{E}\kern-.125em + X% + \endgroup} +\def\bLaTeX{\b@LaTeX} + + +\@ifundefined{BibTeX} + {\def\BibTeX{{\rmfamily B\kern-.05em{\sc i\kern-.025em b}\kern-.08em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} +\@ifundefined{ConTeXt} + {\def\ConTeXt{{\rmfamily Con\TeX t}}}{} +%DG \@ifundefined{SliTeX} +%DG {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox +%DG \textsc{i}\kern -.03em\TeX}}}{} +\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{} + +\def\reflect#1{{\setbox0=\hbox{#1}\rlap{\kern0.5\wd0 + \special{x:gsave}\special{x:scale -1 1}}\box0 \special{x:grestore}}} +\def\XePersian{\leavevmode$\smash{\hbox{X\lower.5ex + \hbox{\kern-.125em\reflect{E}}Persian}}$} + +%%%%%%%%%%%%%%%%%%%% Quick reference %%%%%%%%%%%%%%%%%%%% + + + +% An entry in \quickref is of the form: \qentry{type}{entry} +\def\quickref{} +\long\def\addtoquickref#1#2{% + \expandafter\gdef\expandafter\quickref\expandafter{% + \quickref\qentry{#1}{#2}}} +\def\qentry#1{\@nameuse{qr@#1}} + +\long\def\addtoquickref#1#2{} + +\def\MakeQuickRef{% + \long\def\addtoquickref##1##2{% + \wlog{}% + \toks@{\qentry{##1}{##2}}% + \message{\the\toks@}% + \wlog{}% + \let\MakeQuickRef\relax}} + +%% For switching into landscape mode for the Quick Reference: +\let\NormalShipout\shipout +\newbox\OutputBox +\def\LandscapeMode{% + \long\def\shipout##1##2{% + \setbox\OutputBox=\hbox{\rput[tl]{90}{\vbox{##2}}}% + \NormalShipout\box\OutputBox}% + \voffset 9in} + +% This makes the Quick Reference: +\def\QuickReference{% + \begin{Landscape}{\paperwidth}{\paperheight}{\rotateleft} + \oddsidemargin 0pt + \evensidemargin 0pt + \topmargin -.5in + \textheight 6.5in + \textwidth 9in + \columnsep 60pt + \footskip 0pt + \footheight 0pt + \headheight 15pt + \headsep 40pt + \parskip 4pt plus 1pt minus 1pt + \UsePageParameters + \twocolumn + \def\label##1{} + \subsechang=-.25in + \pagenumbering{Roman} + \pagestyle{quickref} + \MacroDefCodes + \let\Main\string + \let\MainFont\UsageFont + \MainFont + \quickref + \end{Landscape}} +\let\QuickReference\relax + +\def\ps@quickref{% + \def\@oddhead{% + \large\bfseries\sffamily + \hbox to .5\textwidth{\XePersian\ v\Version\hfill}% + \hbox to \z@{\hss Quick Reference\hss}% + \hbox to .5\textwidth{\hfill\thepage}} + \let\@evenhead\@oddhead + \def\@oddfoot{}\def\@evenfoot{}} + +% For page numbering in the QR: +\setbox\pst@boxg=\hbox{\UsageFont 99} +\newdimen\refnumdim +\refnumdim=\wd\pst@boxg +\def\refnum#1{\hbox to \refnumdim{\hss\rmfamily\bfseries\pageref{#1}}} + +% Section commands that add an entry to the QR: +\def\Section#1{\addtoquickref{section}{#1}\@checksec\section{#1}} +\def\Subsection#1{\addtoquickref{section}{#1}\subsection{#1}} + +% This is just an error checker: +\def\@checksec{% + \def\@tempa{document}% + \ifx\@tempa\@currenvir\else + \@latexerr{\string\Section\space occurred inside + \@currenvir\space environment}\@ehc + \expandafter\end\expandafter{\@currenvir}% + \expandafter\@checksec + \fi} + +% The qr@ definitions: +\def\qr@@object#1{\mbox{\begingroup\escapechar`\+% + \refnum{\string#1}\endgroup\hskip 1em\string#1}} +\def\qr@object#1{\qr@@object#1\par} +\def\qr@@param#1=#2\@nil{\refnum{\string#1}} +\def\qr@param#1{\leavevmode\hbox to\hsize{\qr@@param#1\@nil\hskip 1em#1}\par} +\def\qr@section#1{\subsection*{#1}} +\long\def\qr@center#1{\begin{center}#1\end{center}} + +%%%%%%%%%%%%%%%%%%%% Parts %%%%%%%%%%%%%%%%%%%% + +\font\bighelv=phvb at 88bp + + +\def\part{\clearpage\leavevmode\@ifstar{\part@ii}{\part@i}} +\def\part@i#1{% + \refstepcounter{part}% + \addcontentsline{toc}{part}{\protect\pnumberline{\thepart}#1}% + \lower 20pt\hbox to \z@{\hss{\bighelv\Roman{part}}\hskip 2em}% + \part@iii{#1}} +\def\part@ii#1{\addcontentsline{toc}{part}{#1}\part@iii{#1}} +\def\part@iii#1{% +\markright{#1}{\sffamily\Huge\bfseries#1}\par\vskip 2cm\@afterheading} +\def\thepart{\Roman{part}} +\def\pnumberline#1{Part #1\hspace{1cm}} + +\def\l@part#1#2{% + \addpenalty{\@secpenalty}% + \addvspace{\lpartskip}% + \begingroup + \@tempdima 1em + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\large\bfseries\leavevmode#1\hfil \hbox to\@pnumwidth{\hss #2}}\par + \nobreak + \endgroup} +\newskip\lpartskip +\lpartskip 1.25em plus 1pt minus 1pt + +%%%%%%%%%%%%%%%%%%%% Parameter definitions and indexing %%%%%%%%%%%%%%%%%%%% + +% Like \MainEnvIndex, etc., but for parameters: +\def\MainParIndex{\SpecialIndex{parameter}{main}} +\def\UsageParIndex{\SpecialIndex{parameter}{usage}} + +% Like \MainPar, but for parameters. Can optionally include =foo. +\def\MainPar#1{\@MainPar#1==\@nil} +\def\@MainPar#1=#2=#3\@nil{% + \MainParIndex{#1}% + \label{#1}% + {\MainFont #1\ifx#3=\relax=\MetaFont#2\fi}} + +% Analogous to \n, but optionally argument can include =foo. +\def\p#1{\@p#1==\@nil} +\def\@p#1=#2=#3\@nil{% + \UsageParIndex{#1}% + {\UsageFont #1\ifx#3=\relax=#2\fi}} + +% For listing parameter definitions in a {description} environment: +\def\pitem[#1]{\@ifnextchar({\@pitem#1}{\@@pitem#1\@nil}} +\def\@pitem#1=#2(#3){% + \item[\MainFont#1=\MetaFont#2]% % Set the definition in \MainFont + \MainParIndex{#1}% + \label{#1}% + \addtoquickref{param}{#1={\MetaFont #2}\hfill {\rmfamily Default:} #3}% + \hfill {\MainFont {\rmfamily Default:} #3}\par} +\def\@@pitem#1=#2\@nil{% + \@ifundefined{default@#1}% + {\@warning{Parameter `#1' default not defined.}\@eha\@pitem#1=#2()} + {\@pitem#1=#2(\csname default@#1\endcsname)}} + + +\begingroup + \catcode`\@=12 + \catcode`\{=12 + \catcode`\}=12 + \catcode`\&=1 + \catcode`\^=2 + \def\psset@&% + \begingroup + \catcode`\\=12 + \pssetxx^ + \def\pssetxx#1{#2}&% + \expandafter\gdef\csname default@#1\endcsname^% + \endgroup^ + \csname @input\endcsname&defaults.pst^ +\endgroup + +% For putting parameter definitions in an Ex environment: +\def\Par#1{\@ifnextchar({\@Par#1}{\@@Par#1\@nil}} +\def\@Par#1=#2(#3){% + \leavevmode + \MainParIndex{#1}% + \label{#1}% + \addtoquickref{param}{#1={\MetaFont #2}\hfill {\rmfamily Default:} #3}% + \hbox to\linewidth{% + \MainFont #1={\MetaFont#2}\hfill {\rmfamily Default:} #3}\par} +\def\@@Par#1=#2\@nil{% + \@ifundefined{default@#1}% + {\@warning{Parameter `#1' default not defined.}\@Par#1=#2()} + {\@Par#1=#2(\csname default@#1\endcsname)}} + + + + +\begingroup + \catcode`\(=13 + \catcode`\,=13 + \catcode`\==13 + \gdef\MacroDefCodes{% + \@MD + \catcode`\(13 + \catcode`\^^M12 + \catcode`\`13 + \catcode`\,13 + \catcode`\!1 + \catcode`\@2 + \def~{}% + \def={{\fontshape{n}\selectfont\string=}}% + \def,{{\fontshape{n}\selectfont\string,}}% + \def(##1){\string({\MetaFont ##1})}} +\endgroup + +\begingroup + \catcode`\`=13 \gdef`#1'{{\OpArgFont #1}} +\endgroup + +\begingroup + \catcode`\^^M=12\relax% + \gdef\GetMacroDef#1{\begingroup\MacroDefCodes\@GetMacroDef{#1}}% + \gdef\@GetMacroDef#1#2^^M{#1{#2}\endgroup}% +\endgroup + +% For listing macro definitions in a "description" environment: +\def\mitem{\GetMacroDef\@mitem} +\def\@mitem#1{% + \item[{\MainFont\Main#1}]% + \addtoquickref{object}{#1}% + \leavevmode\par} + +% For listing graphics object definitions in a {description} environment: +% The optional *[par] is inserted automatically. +\def\oitem{\GetMacroDef\@oitem} +\def\@oitem#1{\@@oitem#1\@nil} +\def\@@oitem#1#2\@nil{\@mitem{#1{\OpArgFont*[{\MetaFont par}]}#2}} + +% For generic macro definition, usually to be put in a displayed env. +\def\object{\GetMacroDef\@object} +\def\@object#1{\addtoquickref{object}{#1}{\MainFont\Main#1\@@par}} + +% For a single displayed macro definition: +\def\Mac{\GetMacroDef\@Mac} +\def\@Mac#1{\begin{Ex}\@object{#1}\end{Ex}} + + +%% We must hack the generation of indexes modified by `hyperref' +\def\@@wrindex#1|#2|#3\\{% + \ifx\\#2\\% + \protected@write\@indexfile{}{% +% \string\indexentry{#1|hyperpage}{\thepage}% + \string\indexentry{#1}{\thepage}% + }% + \else + \def\Hy@temp@A{#2}% + \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi + \ifx\Hy@temp@A\HyInd@ParenRight 1\fi + \relax + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2}{\thepage}% + }% + \else + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2hyperpage}{\thepage}% + }% + \fi + \fi + \endgroup + \@esphack +} + +%%%%%%%%%%%%%%%%%%%% Indexes %%%%%%%%%%%%%%%%%%%% + +\def\PrintUserIndex{% + \clearpage + \columnsep=20pt + \advance\oddsidemargin\sechang + \advance\evensidemargin\sechang + \advance\textwidth-\sechang + \sechang=0pt + \onecolumn + \@input{\jobname.ind}} + +%%%%%%%%%%%%%%%%%%%% Special indexing for User's Guides %%%%%%%%%%%%%%%%%%%% + +\@ifundefined{actualchar}{\def\actualchar{@}}{} +\@ifundefined{quotechar}{\def\quotechar{"}}{} +\@ifundefined{levelchar}{\def\levelchar{!}}{} +\@ifundefined{encapchar}{\def\encapchar{|}}{} +\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{} + +%% These are the indexing commands: + +%% Commands: \MainIndex \UsageIndex +%% Environments: \MainEnvIndex \UsageEnvIndex +%% Style options: \MainOptionIndex \UsageOptionIndex +%% Counters: \MainCntIndex \UsageCntIndex + +\def\@Index#1{\@bsphack\index{#1}\@esphack} +\def\Index#1#2{% + \@bsphack + \index{\expandafter\@gobble\string#2\actualchar\string + \verb\quotechar*\verbatimchar\string#2\verbatimchar + \encapchar #1}} +{\catcode`\!=0 !catcode`!\=12!gdef!special@gobble#1{!if\#1!else#1!fi}} +\def\MainIndex{\Index{main}} +\def\UsageIndex{\Index{usage}} +\def\SpecialIndex#1#2#3{% + \@Index{#3\actualchar{\ttfamily #3} (#1)\encapchar #2}% + \@Index{#1s:\levelchar{\ttfamily #3}\encapchar #2}} +\def\MainEnvIndex{\SpecialIndex{environment}{main}} +\def\UsageEnvIndex{\SpecialIndex{environment}{usage}} +\def\MainOptionIndex{\SpecialIndex{option}{main}} +\def\UsageOptionIndex{\SpecialIndex{option}{usage}} +\def\MainCntIndex{\SpecialIndex{counter}{main}} +\def\UsageCntIndex{\SpecialIndex{counter}{usage}} + +%% Font for index page numbers: +\def\main#1{\textbf{\hyperpage{#1}}} +\def\usage#1{\hyperpage{#1}} + +%% These combine various functions: + +%% Commands: \Main \Usage +%% Environments: \MainEnv \UsageEnv +%% Style options: \MainOption \UsageOption +%% Counters: \MainCnt \UsageCnt + +%% The "Main" ones +%% * Index argument. +%% * Print argument with \MainFont +%% * Create label +foo, e+foo or o+foo. + +%% The "Usage" ones +%% * Index argument. +%% * Print argument with \UsageFont. + +\def\SpecialLabel#1#2+{\label{+#2}} +\def\LabelIndex#1{\MainIndex{#1}\expandafter\SpecialLabel\string#1+} +\def\Main#1{% + \MainIndex{#1}% + \expandafter\SpecialLabel\string#1+% + {\MainFont\string#1}} +\def\Usage#1{\UsageIndex{#1}{\UsageFont\string#1}} +\def\MainEnv#1{% + \MainEnvIndex{#1}% + \label{e+#1}% + {\MainFont #1}} +\def\UsageEnv#1{\UsageEnvIndex{#1}{\UsageFont #1}} +\def\MainOption#1{% + \MainOptionIndex{#1}% + \label{o+#1}% + {\MainFont #1}} +\def\UsageOption#1{\UsageOptionIndex{#1}{\UsageFont #1}} +\def\MainCnt#1{% + \MainCntIndex{#1}% + \label{c+#1}% + {\MainFont #1}} +\def\UsageCnt#1{\UsageCntIndex{#1}{\UsageFont #1}} + +%% These are abbreviations. +\def\N{\Main} +\def\n{\Usage} +\def\E{\MainEnv} +\def\e{\UsageEnv} +\def\O{\MainOption} +\def\o{\UsageOption} +\def\C{\MainCnt} +% The \c macro was already defined for coordinates +%\def\c{\UsageCnt} + + +%% User's guide and documented code have different index prologue. +\def\PrintUserIndex{{\let\ps@plain\@empty\@input{\jobname.ind}}} + +%% This is for listing commands in a description environment. +\def\xitem#1{\item[\Main{#1}]} + +\begingroup + \catcode`\<=1 \catcode`\>=2 + \catcode`\{=13 \catcode`\}=12 + \catcode`\[=13 + \gdef\@MD<% + \catcode`\{=13 \catcode`\}=12 \catcode`\[=13 + \def{##1}<\{<\MetaFont ##1\/>\}>% + \def[##1]<\string[<\MetaFont ##1\/>]>> +\endgroup +\def\MD{% + \NotNested + \Ex + \begingroup + \@MD + \def\end{\par\endgroup\end}% + \def\\{\@centercr\Main}% + \MainFont + \Main} +\def\endMD{\endEx} + +%%%%%%%%%%%%%%%%%%%% Framed warnings %%%%%%%%%%%%%%%%%%%% + +\newbox\bombbox +\setbox\bombbox=\hbox to\z@{% + \hss + \rput[r](-1.5cm,0){% + \psset{unit=7pt} + \begin{pspicture}(-4,-4)(4,4) + \pscircle[fillcolor=gray,fillstyle=solid]{4} + \rput{45}{\psscaleboxto(6,0){\textsf{XE}\kern-1pt}} + \psellipse*(0,3.8)(1,.2) + \psellipse*(0,5.5)(1,.2) + \psframe*(-1,3.8)(1,5.5) + \psbezier(0,5.5)(0,7)(1,8)(3.5,8) + \multido{\r=-0+40}{9}{\rput{\r}(3.5,8){\psline(0,0)(.4,0)}} + \end{pspicture}}} + +\def\Warning{% + \trivlist\item[] + \leavevmode\kern\@totalleftmargin + \valign\bgroup% + \vfil##\vfil\cr + \copy\bombbox\cr + \minipage{\textwidth} + \quote + \emph{Warning:}\hskip 1em + \ignorespaces} +\def\endWarning{\endquote\endminipage\cr\egroup\endtrivlist} + +\newbox\filebox +\setbox\filebox=\hbox{% + \pspicture(-1,-.5)(1,.7) + \pspolygon[linearc=2pt,shadow=true,shadowangle=45,xunit=1.1]% + (-1,-.55)(-1,.5)(-.8,.5)(-.8,.65)(-.2,.65)(-.2,.5)(1,.5)(1,-.55) + \endpspicture} +\def\File#1{% + \leavevmode + \marginpar{% + \leavevmode\lower 20pt\hbox{% + \hbox to0pt{\hbox to \linewidth{\hss\copy\filebox\hss}\hss}% + \raise 10pt\hbox to \linewidth{\hss\large\bfseries\sffamily #1\hss}}}% + \ignorespaces} +\def\drivers{\noindent\small Driver notes:\hskip 1em\ignorespaces} +\endinput diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty b/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty index 1c608d4bc46..aa56bf6bf59 100644 --- a/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty @@ -1,54 +1,139 @@ +%% This file is xepersian.sty +%% +%% Copyright 2009 by Vafa Khalighi +%% +%%%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{xepersian}[2008/09/27 v0.162 - Persian typesetting in XeLaTeX] - -\begingroup - \def\notXeLaTeXformat{% - \@latex@error{*** this package currently works only with XeLaTeX ***^^J - You are not using XeLaTeX, so we are exiting cleanly!^^J - Continuing may lead to 'unavailable font metrics' errors!^^J}\@ehc - \endgroup\endinput} -\expandafter\ifx\csname XeTeXpicfile\endcsname\relax\expandafter\notXeLaTeXformat\fi -\endgroup - +\ProvidesPackage{xepersian}[2009/01/05 v0.163 + Persian typesetting in XeLaTeX (Author: Vafa Khalighi)] +\AtBeginDocument{\special{pdf: docinfo << + /Creator (XePersian v0.163) + >>}} \RequirePackage{graphicx} \RequirePackage{amssymb} \RequirePackage{amsmath} \RequirePackage{amsthm} -\RequirePackage[quiet]{fontspec} -\RequirePackage{bidi} +\RequirePackage{fontspec} \RequirePackage{xltxtra} -\RequirePackage{xunicode} +\RequirePackage{bidi} \RequirePackage{etoolbox} \RequirePackage{xepersian-mathsdigitspec} +\RequirePackage{xunicode} + +\@rltrue +\@rlmaintrue +\@rl@footnotetrue + +\def\raggedright{% + \let\\\@centercr + \rightskip\z@skip\rightskip\@flushglue + \parindent\z@\parfillskip\z@skip} +\renewcommand\raggedleft{\@@raggedleft} +\renewcommand\raggedright{\@@raggedright} + + +\@ifpackageloaded{graphicx}{% +\def\Gin@ii[#1]#2{% + \def\@tempa{[}\def\@tempb{#2}% + \ifx\@tempa\@tempb + \def\@tempa{\Gin@iii[#1][}% + \expandafter\@tempa + \else + \begingroup + \@tempswafalse + \toks@{\beginL\Ginclude@graphics{#2}\endL}% + \setkeys{Gin}{#1}% + \Gin@esetsize + \the\toks@ + \endgroup + \fi}% +}{} + +\def\lr#1{\LR{\rmfamily#1}} +\def\rl#1{\RL{\persianfont#1}} +\def\LTR{\bgroup\par\@rlfalse} +\def\endLTR{\par\egroup} +\def\RTL{\bgroup\par\@rltrue} +\def\endRTL{\par\egroup} +\def\roman{\bgroup\par\@rlfalse\rmfamily} +\def\endroman{\par\egroup} +\def\persian{\bgroup\par\@rltrue\persianfont} +\def\endpersian{\par\egroup} +\def\Roman{\if@rl\par\@rlfalse\rmfamily\fi} +\def\Persian{\if@rl\relax\else\par\@rltrue\persianfont\fi} + +\def\centerline#1{% +\if@rl\@@line{\hss\beginR #1 \endR\hss} +\else\@@line{\hss#1\hss}\fi} + +\def\leftline#1{% +\if@rl\@@line{\beginR #1 \endR\hss} +\else\@@line{#1\hss}\fi} + +\def\rightline#1{% +\if@rl\@@line{\hss\beginR #1 \endR} +\else\@@line{\hss#1}\fi} + +\newcommand*\settextfont[2][]{% +\newfontfamily\persianfont[Script=Arabic,Mapping=parsidigits,#1]{#2} +\let\rmdefault\zf@family + \normalfont +} +\newcommand*\setromantextfont[2][]{% +\newfontfamily\rmfamily[Mapping=tex-text,#1]{#2} +} + + +\newcommand*\defpersianfont[1]{% + \@ifnextchar[{\defpersianfont@i#1}{\defpersianfont@i#1[]}} +\def\defpersianfont@i#1[#2]#3{% + \zf@fontspec{Script=Arabic,Mapping=parsidigits,#2}{#3}% + \edef\@tempa{% + \noexpand\DeclareRobustCommand\noexpand#1 + {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}% + \@tempa} + + + + + +\newcommand*\defromanfont[1]{% + \@ifnextchar[{\defromanfont@i#1}{\defromanfont@i#1[]}} +\def\defromanfont@i#1[#2]#3{% + \zf@fontspec{Mapping=tex-text,#2}{#3}% + \edef\@tempa{% + \noexpand\DeclareRobustCommand\noexpand#1 + {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}% + \@tempa} + + + \def\ps@plain{\ps@empty - \def\@oddfoot{\hfil\farsifont\thepage\hfil}% + \def\@oddfoot{\hfil\thepage\hfil}% \let\@evenfoot\@oddfoot \let\@oddhead\@empty\let\@evenhead\@empty } -\AtBeginDocument{\setRL\farsifont\addfontfeature{Mapping=parsidigits}} - - -%To convert the MILADI date to SHAMSI date, taken from farsitex \newif\ifFT@leap \newif\ifFT@kabiseh \newcount\FT@i \newcount\FT@y \newcount\FT@m \newcount\FT@d -\newcount\FT@latini \newcount\FT@farsii -\newcount\FT@latinii \newcount\FT@farsiii -\newcount\FT@latiniii \newcount\FT@farsiiii -\newcount\FT@latiniv \newcount\FT@farsiiv -\newcount\FT@latinv \newcount\FT@farsiv -\newcount\FT@latinvi \newcount\FT@farsivi -\newcount\FT@latinvii \newcount\FT@farsivii -\newcount\FT@latinviii \newcount\FT@farsiviii -\newcount\FT@latinix \newcount\FT@farsiix -\newcount\FT@latinx \newcount\FT@farsix -\newcount\FT@latinxi \newcount\FT@farsixi -\newcount\FT@latinxii \newcount\FT@farsixii - \newcount\FT@farsixiii +\newcount\FT@latini \newcount\FT@persiani +\newcount\FT@latinii \newcount\FT@persianii +\newcount\FT@latiniii \newcount\FT@persianiii +\newcount\FT@latiniv \newcount\FT@persianiv +\newcount\FT@latinv \newcount\FT@persianv +\newcount\FT@latinvi \newcount\FT@persianvi +\newcount\FT@latinvii \newcount\FT@persianvii +\newcount\FT@latinviii \newcount\FT@persianviii +\newcount\FT@latinix \newcount\FT@persianix +\newcount\FT@latinx \newcount\FT@persianx +\newcount\FT@latinxi \newcount\FT@persianxi +\newcount\FT@latinxii \newcount\FT@persianxii + \newcount\FT@persianxiii \newcount\FT@temp \newcount\FT@temptwo @@ -120,7 +205,7 @@ \fi % % --BE -% In fact farsii is equal to the Leap years from a fixed year to the last +% In fact persiani is equal to the Leap years from a fixed year to the last % year minus the Kabise years from a fixed year to the last year plus a const. % \FT@tempthree=\FT@y % Number of Leap years @@ -146,25 +231,25 @@ \divide\FT@tempthree by 4\relax % T := T - ((SY+10) mod 33) div 4 \advance\FT@temp by -\FT@tempthree \advance\FT@temp by -137 % T := T - 137 Adjust the value -\FT@farsii=31 -\advance\FT@farsii by -\FT@temp % now 31 - T is the farsii +\FT@persiani=31 +\advance\FT@persiani by -\FT@temp % now 31 - T is the persiani % -\FT@farsiii = 30\relax +\FT@persianii = 30\relax \ifFT@kabiseh - \FT@farsiiii = 30\relax + \FT@persianiii = 30\relax \else - \FT@farsiiii = 29\relax + \FT@persianiii = 29\relax \fi -\FT@farsiiv = 31\relax -\FT@farsiv = 31\relax -\FT@farsivi = 31\relax -\FT@farsivii = 31\relax -\FT@farsiviii= 31\relax -\FT@farsiix = 31\relax -\FT@farsix = 30\relax -\FT@farsixi = 30\relax -\FT@farsixii = 30\relax -\FT@farsixiii= 30\relax +\FT@persianiv = 31\relax +\FT@persianv = 31\relax +\FT@persianvi = 31\relax +\FT@persianvii = 31\relax +\FT@persianviii= 31\relax +\FT@persianix = 31\relax +\FT@persianx = 30\relax +\FT@persianxi = 30\relax +\FT@persianxii = 30\relax +\FT@persianxiii= 30\relax % \FT@dn= 0\relax \FT@sn= 0\relax @@ -181,11 +266,11 @@ \advance \FT@dn by \FT@d % \FT@i=1\relax -\FT@sn = \FT@farsii +\FT@sn = \FT@persiani \ifnum \FT@sn<\FT@dn \loop \advance \FT@i by 1\relax -\advance\FT@sn by \csname FT@farsi\romannumeral\the\FT@i\endcsname +\advance\FT@sn by \csname FT@persian\romannumeral\the\FT@i\endcsname \ifnum \FT@sn<\FT@dn \repeat \fi \ifnum \FT@i < 4 @@ -195,19 +280,19 @@ \FT@m = \FT@i \advance \FT@m by -3\relax \advance \FT@y by -621\relax \fi -\advance\FT@sn by -\csname FT@farsi\romannumeral\the\FT@i% +\advance\FT@sn by -\csname FT@persian\romannumeral\the\FT@i% \endcsname \ifnum\FT@i = 1 - \FT@d = \FT@dn \advance \FT@d by 30 \advance\FT@d by -\FT@farsii + \FT@d = \FT@dn \advance \FT@d by 30 \advance\FT@d by -\FT@persiani \else \FT@d = \FT@dn \advance \FT@d by -\FT@sn \fi \beginL\number\FT@d\endL\space% %Changedc from here YJ -\farsimonth{\FT@m}\space\beginL\number\FT@y\endL% +\persianmonth{\FT@m}\space\beginL\number\FT@y\endL% } -% added \farsimonth YJ -\def\farsimonth#1{\ifcase#1\or فروردین\or +% added \persianmonth YJ +\def\persianmonth#1{\ifcase#1\or فروردین\or اردیبهشت\or خرداد\or تیر\or مرداد\or @@ -216,48 +301,137 @@ دی\or بهمن\or اسفند\fi} -\def\normalfont{\farsifont} -\def\today{\ftoday} -\let\@footnote=\footnote -\def\footnote#1{\@footnote{\farsifont#1}} -\let\@uthanks=\thanks -\def\thanks#1{\@uthanks{\farsifont#1}} -\let\@uframetitle=\frametitle -\def\frametitle#1{\@uframetitle{\centerline{\farsifont#1}}} -\let\@uframesubtitle=\framesubtitle -\def\framesubtitle#1{\@uframesubtitle{\centerline{\farsifont#1}}} -\let\@usubtitle=\subtitle -\def\subtitle#1{\@usubtitle{\farsifont#1}} -\let\@uinstitute=\institute -\def\institute#1{\@uinstitute{\farsifont#1}} -\let\@ucaption=\caption -\def\caption#1{\@ucaption{\farsifont#1}} -\let\@uleftmark=\leftmark -\def\leftmark{\beginR\farsifont\@uleftmark\endR} -\let\@urightmark=\rightmark -\def\rightmark{\beginR\farsifont\@urightmark\endR} - - - - -\renewcommand{\thefootnote}{\arabic{footnote}} -\renewcommand{\thefigure}{\arabic{figure}} -\renewcommand{\thetable}{\arabic{table}} -\renewcommand{\theequation}{\arabic{equation}} - - -\renewcommand{\figurename}{\farsifont شکل} -\renewcommand{\tablename}{\farsifont جدول} -\renewcommand{\contentsname}{فهرست مطالب} -\renewcommand{\listfigurename}{لیست تصاویر} -\renewcommand{\listtablename}{لیست جداول} -\renewcommand{\appendixname}{پیوست} -\renewcommand{\indexname}{نمایه} + +\let\originaltoday=\today +\def\today{\lr{\originaltoday}} +\let\romantoday\today +\def\today{\rl{\ftoday}} +\def\leftmark{\RL{\expandafter\@leftmark\botmark\@empty\@empty}} +\def\rightmark{\RL{\expandafter\@rightmark\firstmark\@empty\@empty}} + + +\newcommand\twocolumnstableofcontents{% + \begin{multicols}{2}[\section*{\contentsname}]% + \small + \@starttoc{toc}% + \end{multicols}} + +\def\rcases#1{\left.\vcenter{\normalbaselines\m@th + \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\,\right\}} + + +\def\thefootnote{\arabic{footnote}} +\def\thefigure{\arabic{figure}} +\def\thetable{\arabic{table}} +\def\theequation{\arabic{equation}} + +\def\figurename{\@ensure@RL{شکل}} +\def\tablename{\@ensure@RL{جدول}} +\def\contentsname{\@ensure@RL{فهرست مطالب}} +\def\listfigurename{\@ensure@RL{لیست تصاویر}} +\def\listtablename{\@ensure@RL{لیست جداول}} +\def\appendixname{\@ensure@RL{پیوست}} +\def\indexname{\@ensure@RL{نمایه}} +\def\refname{\@ensure@RL{مراجع}} +\def\abstractname{\@ensure@RL{چکیده}} +\def\partname{\@ensure@RL{بخش}} +\def\datename{\@ensure@RL{تاریخ:}} +\def\bibname{\@ensure@RL{کتابنامه}} +\def\chaptername{\@ensure@RL{فصل}} +\def\ccname{\@ensure@RL{رونوشت}} +\def\enclname{\@ensure@RL{پیوست}} +\def\pagename{\@ensure@RL{صفحه}} +\def\headtoname{\@ensure@RL{به}} +\def\proofname{\@ensure@RL{اثبات}} + + +\def\reflect#1{{\setbox0=\hbox{#1}\rlap{\kern0.5\wd0 + \special{x:gsave}\special{x:scale -1 1}}\box0 \special{x:grestore}}} +\def\XePersian{\leavevmode$\smash{\hbox{X\lower.5ex + \hbox{\kern-.125em\reflect{E}}Persian}}$} + + + + + +\renewenvironment{equation}{% +\beginL + \incr@eqnum + \mathdisplay@push + \st@rredfalse \global\@eqnswtrue + \mathdisplay{equation}% +}{% + \endmathdisplay{equation}% + \mathdisplay@pop + \ignorespacesafterend +} + + +\newif\if@RomanBibNum +\def\@@number#1{\ifmmode\else\beginL\fi{\if@RomanBibNum#1\else\persianfont#1\fi}\ifmmode\else\endL\fi} +\def\RomanBibNum{\@RomanBibNumtrue} +\def\PersianBibNum{\@RomanBibNumfalse} +\@RomanBibNumtrue +\DeclareOption{PersianBibNum}{\@RomanBibNumfalse} +\def\@number{\protect\@@number} +\let\@persian=\@arabic +\let\@@arabic=\@arabic +\let\@@alph=\@alph +\let\@@Alph=\@Alph +\def\@arabic#1{\ifmmode\else\@number{\@@arabic#1}\fi} +\def\arabicnorl#1{\expandafter\@@arabic\csname c@#1\endcsname} +\def\make@lr#1{\begingroup + \toks@=\expandafter{#1}% + \edef\x{\endgroup + \def\noexpand#1{\noexpand\@number{\the\toks@}}}% + \x} +\def\@character#1{\ifcase#1\or الف\char"200D\or ب\or پ\or ت\or ث\or +ج\or چ\or ح\or خ\or د\or ذ\or ر\or ز\or س\or ش\or ص\or ض\or ع\or غ\or +ف\or ق\or ک\or گ\or ل\or م\or ن\or ه\or و\or ی\fi} + + +\def\@harfi#1{\@character{\@@arabic#1}} + +\def\@numeric#1{\ifcase#1 \or یک\or دو\or سه\or چهار\or پنج\or شش\or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده\or چهارده\or پانزده\or شانزده\or هفده\or هجده\or نوزده\or بیست\fi} +\def\@adadi#1{\@numeric{\@@arabic#1}} + +\def\@@tartibi#1{\ifcase#1 \or اول \or دوم \or سوم \or چهارم \or پنجم \or ششم \or هفتم \or هشتم \or نهم \or دهم \or یازدهم \or دوازدهم \or سیزدهم \or چهاردهم \or پانزدهم \or شانزدهم \or هفدهم \or هجدهم \or نوزدهم \or بیستم\fi} +\def\@tartibi#1{\@@tartibi{\@@arabic#1}} + + + + + + +\let\@@text=\text +\def\text#1{\@@text{\RL{#1}}} + +\def\tagform@#1{\maketag@@@{)\ignorespaces\text{#1}\unskip\@@italiccorr(}} +\renewcommand{\eqref}[1]{\LR{\textup{\tagform@{\ref{#1}}}}} \@ifclassloaded{article}{% +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\parindent \z@ \raggedleft + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries \partname\nobreakspace\thepart + \par\nobreak + \fi + \huge \bfseries #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} \def\ps@plain{\ps@empty - \def\@oddfoot{\hfil\rl\thepage\hfil}% + \def\@oddfoot{\hfil\thepage\hfil}% \let\@evenfoot\@oddfoot } \renewenvironment{thebibliography}[1] @@ -281,53 +455,55 @@ \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\rl\leftmark\hfil\rl\thepage}% - \def\@oddhead{\rl\thepage\hfil\rl\rightmark}% + \def\@evenhead{\sl\RL{\leftmark}\hfil\thepage}% + \def\@oddhead{\sl\thepage\hfil\RL{\rightmark}}% \let\@mkboth\markboth \def\sectionmark##1{% \markboth {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \thesection\quad \fi - \rl{##1}}}{}}% + \RL{##1}}}{}}% \def\subsectionmark##1{% \markright {% \ifnum \c@secnumdepth >\@ne - \rl{\thesubsection\quad} + \RL{\thesubsection\quad} \fi - \rl{##1}}}} + \RL{##1}}}} \else \def\ps@headings{% \let\@oddfoot\@empty - \def\@oddhead{\rl\thepage\hfil\rl\rightmark}% + \def\@oddhead{\sl\thepage\hfil\RL{\rightmark}}% \let\@mkboth\markboth \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne - \rl{\thesection\quad} + \RL{\thesection\quad} \fi - \rl{##1}}}}} + \RL{##1}}}}} \fi \def\ps@myheadings{% \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\rl\thepage\hfil\rl\leftmark}% - \def\@oddhead{\rl\rightmark\hfil\rl\thepage}% + \def\@evenhead{\sl\thepage\hfil\RL{\leftmark}}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% \let\@mkboth\@gobbletwo \let\sectionmark\@gobble \let\subsectionmark\@gobble } \pagestyle{plain} -\renewcommand{\refname}{مراجع} -\renewcommand{\abstractname}{چکیده} +\renewcommand \thepart {\@tartibi\c@part} \renewcommand\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} }{} + + + \@ifclassloaded{amsart}{% -\let\oldleftskip=\leftskip -\let\leftskip=\rightskip -\let\rightskip=\oldleftskip +\def\part{\@startsection{part}{0}% + \z@{\linespacing\@plus\linespacing}{.5\linespacing}% + {\normalfont\bfseries\raggedleft}} \renewenvironment{thebibliography}[1]{% \@bibtitlestyle \normalfont\bibliofont\labelsep .5em\relax @@ -342,15 +518,36 @@ \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}% \endlist } -\renewcommand{\datename}{\rl{تاریخ:}} -\renewcommand{\refname}{مراجع} -\renewcommand{\abstractname}{چکیده} +\renewcommand \thepart {\@tartibi\c@part} \renewcommand\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} }{} + + + \@ifclassloaded{report}{% +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft \normalfont + \ifnum \c@secnumdepth >\m@ne + \huge\bfseries \@chapapp\space \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft + \normalfont + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} \renewenvironment{thebibliography}[1] {\chapter*{\bibname}% \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% @@ -373,47 +570,44 @@ \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\rl\thepage\hfil\rl\leftmark}% - \def\@oddhead{\rl\rightmark\hfil\rl\thepage}% + \def\@evenhead{\sl\thepage\hfil\RL{\leftmark}}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne - \rl{\@chapapp\ \thechapter. \ }% + \RL{\@chapapp\ \thechapter. \ }% \fi - \rl{##1}}}{}}% + \RL{##1}}}{}}% \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ - \rl{\thesection. \ }% + \RL{\thesection. \ }% \fi - \rl{##1}}}}} + \RL{##1}}}}} \else \def\ps@headings{% \let\@oddfoot\@empty - \def\@oddhead{\rl\rightmark\hfil\rl\thepage}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne - \rl{\@chapapp\ \thechapter. \ }% + \RL{\@chapapp\ \thechapter. \ }% \fi - \rl{##1}}}}} + \RL{##1}}}}} \fi \def\ps@myheadings{% \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\rl\thepage\hfil\rl\leftmark}% - \def\@oddhead{rl\rightmark\hfil\rl\thepage}% + \def\@evenhead{\sl\thepage\hfil\RL{\leftmark}}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% \let\@mkboth\@gobbletwo \let\chaptermark\@gobble \let\sectionmark\@gobble } \pagestyle{plain} -\renewcommand{\bibname}{مراجع} -\renewcommand{\abstractname}{چکیده} -\renewcommand{\chaptername}{فصل} -\renewcommand{\partname}{بخش} -%to make appendix numbering farsi +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering Persian \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% @@ -421,6 +615,100 @@ \gdef\thechapter{\@harfi\c@chapter} }%end appendix }{} + + + +\@ifclassloaded{xepersian-thesis}{% +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft \normalfont + \ifnum \c@secnumdepth >\m@ne + \huge\bfseries \@chapapp\space \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft + \normalfont + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\renewenvironment{thebibliography}[1] + {\chapter*{\bibname}% + \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \rightmargin\labelwidth + \advance\rightmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\sl\thepage\hfil\RL{\leftmark}}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \RL{\@chapapp\ \thechapter. \ }% + \fi + \RL{##1}}}{}}% + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \RL{\thesection. \ }% + \fi + \RL{##1}}}}} +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \RL{\@chapapp\ \thechapter. \ }% + \fi + \RL{##1}}}}} +\fi +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\sl\thepage\hfil\RL{\leftmark}}% + \def\@oddhead{\sl\RL{\rightmark}\hfil\thepage}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble + } +\pagestyle{plain} +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering persian +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@harfi\c@chapter} +}%end appendix +}{} + + + \@ifclassloaded{amsbook}{% \renewenvironment{thebibliography}[1]{% \@bibtitlestyle @@ -436,27 +724,99 @@ \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}% \endlist } -\let\oldleftskip=\leftskip -\let\leftskip=\rightskip -\let\rightskip=\oldleftskip \def\frontmatter{\cleardoublepage\pagenumbering{harfi}} -\renewcommand{\bibname}{کتابنامه } -\renewcommand{\chaptername}{فصل} -\renewcommand{\partname}{بخش} -%to make appendix numbering farsi +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering persian \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter} }%end appendix +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule\z@ \columnsep 35\p@ +\@indextitlestyle +\thispagestyle{plain}% +\let\item\@idxitem +\parindent\z@ \parskip\z@\@plus.3\p@\relax +\raggedleft +\hyphenpenalty\@M +\footnotesize} + +\def\@idxitem{\par\hangindent -2em} +\def\subitem{\par\hangindent -2em\hspace*{1em}} +\def\subsubitem{\par\hangindent -3em\hspace*{2em}} }{} + + + \@ifclassloaded{bookest}{% +\AtBeginDocument{ +\def\@makechapterhead#1{% + \vspace*{20\p@} + {\parindent \z@ \raggedleft \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + {\colorA\huge\scshape \@chapapp\space \thechapter} + \par\nobreak + \vskip 10\p@ + \fi + \fi + \interlinepenalty\@M + {\colorB\hrule} + \vskip 15\p@ + \begin{flushleft} + {\colorA\Huge \bfseries #1}\par\nobreak + \end{flushleft} + \vskip 5\p@ + {\colorB\hrule} + \vskip 30\p@ + }} +\def\@makeschapterhead#1{% + \vspace*{20\p@} + {\parindent \z@ \raggedright \normalfont + {\colorB\hrule} + \vskip 15\p@ + \begin{center} + {\colorA\Huge \bfseries #1}\par\nobreak + \end{center} + \vskip 5\p@ + {\colorB\hrule} + \vskip 30\p@ + }} +\renewcommand{\setevenhead}[1]{\def\@evenhead{#1}} +\renewcommand{\setoddhead}[1]{\def\@oddhead{#1}} +\renewcommand{\setevenfoot}[1]{\def\@evenfoot{#1}} +\renewcommand{\setoddfoot}[1]{\def\@oddfoot{#1}} +\renewcommand{\oddheadtext}{{\colorA{\slshape\rightmark}\hfill\thepage}} +\renewcommand{\setoddheadtext}[1]{\renewcommand{\oddheadtext}{#1}} +\renewcommand{\evenheadtext}{\oddheadtext} +\renewcommand{\setevenheadtext}[1]{\renewcommand{\evenheadtext}{#1}} +\renewcommand{\evenfoottext}{} +\renewcommand{\setevenfoottext}[1]{\renewcommand{\evenfoottext}{#1}} +\renewcommand{\oddfoottext}{} +\renewcommand{\setoddfoottext}[1]{\renewcommand{\oddfoottext}{#1}} +\renewcommand{\setleftmark}[1]{\renewcommand{\leftmark}{#1}} +\renewcommand{\setrightmark}[1]{\renewcommand{\rightmark}{#1}} +\renewcommand{\makeheadrule}{{\colorB\hrule\@width\textwidth \@height 0.4pt \vskip-0.4pt}} +\renewcommand{\makefootrule}{\makeheadrule} +\if@twoside + \setevenheadtext{{\colorA\thepage\hfill\slshape\leftmark}} +\fi +\setevenhead{\vbox{\evenheadtext \vskip 5\p@ \makeheadrule}} +\setoddhead{\vbox{\oddheadtext \vskip 5\p@ \makeheadrule}} +\let\UCase\MakeUppercase +\renewcommand{\MakeUppercase}{} +\def\ps@plain{% + \def\@oddfoot{{\hfil\colorA\thepage\hfil}} + \def\@evenfoot{{\hfil\colorA\thepage\hfil}} + \let\@oddhead\@empty + \let\@evenhead\@empty +} +} \NoHyper -\renewcommand{\bibname}{کتابنامه } -\renewcommand{\chaptername}{فصل} -\renewcommand{\partname}{بخش} -%to make appendix numbering farsi +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering persian \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% @@ -464,7 +824,31 @@ \gdef\thechapter{\@harfi\c@chapter} }%end appendix }{} + + \@ifclassloaded{book}{% +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \huge\bfseries \@chapapp\space \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft + \normalfont + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} \renewenvironment{thebibliography}[1] {\chapter*{\bibname}% \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% @@ -491,7 +875,7 @@ \renewcommand\mainmatter{% \cleardoublepage \@mainmattertrue - \pagenumbering{farsi}} + \pagenumbering{persian}} \renewcommand\backmatter{% \if@openright \cleardoublepage @@ -503,40 +887,40 @@ \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\rl\rightmark\hfil\rl\thepage}% - \def\@oddhead{\rl\thepage\hfil\rl\leftmark}% + \def\@evenhead{\sl\RL{\rightmark}\hfil\thepage}% + \def\@oddhead{\sl\thepage\hfil\RL{\leftmark}}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth {\MakeUppercase{% - \rl{\@chapapp\ \thechapter.\,\,}% + \RL{\@chapapp\ \thechapter.\,\,}% \ifnum \c@secnumdepth >\m@ne \if@mainmatter - \rl{##1} + \RL{##1} \fi \fi }}{}}% \def\ps@plain{\ps@empty - \def\@oddfoot{\hfil\rl\thepage\hfil}% + \def\@oddfoot{\hfil\thepage\hfil}% \let\@evenfoot\@oddfoot } \def\sectionmark##1{% \markright {\MakeUppercase{% - \rl{\thesection}\, + \RL{\thesection}\, \ifnum \c@secnumdepth >\z@ - \rl{##1} \ % + \RL{##1} \ % \fi }}}} \else \def\ps@headings{% \let\@oddfoot\@empty - \def\@oddhead{\rl\thepage\hfil\rl\rightmark}% + \def\@oddhead{\sl\thepage\hfil\RL{\rightmark}}% \let\@mkboth\markboth \def\chaptermark##1{% \markright {\MakeUppercase{% - \rl{\@chapapp\ \thechapter. } % + \RL{\@chapapp\ \thechapter. } % \ifnum \c@secnumdepth >\m@ne \if@mainmatter - \rl{##1} + \RL{##1} \fi \fi }}}} @@ -544,22 +928,22 @@ \fi \pagestyle{headings} -\renewcommand{\bibname}{کتابنامه } -\renewcommand{\chaptername}{فصل} -\renewcommand{\partname}{بخش} -%to make appendix numbering farsi + +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering Persian \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter} }%end appendix +\def\@idxitem{\par\hangindent -40\p@} }{} + + \@ifclassloaded{refrep}{% -\renewcommand{\bibname}{کتابنامه } -\renewcommand{\chaptername}{فصل} -\renewcommand{\partname}{بخش} -%to make appendix numbering farsi +\renewcommand \thepart {\@tartibi\c@part} +%to make appendix numbering Persian \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% @@ -569,72 +953,360 @@ }{} - -%We redefine arabic counter style -\def\@@number#1{\ifmmode\else\beginL\fi{\farsifont #1}\ifmmode\else\endL\fi} -\def\@@latin#1{\@@number{{\@fromrl#1}}} -\def\@number{\protect\@@number} -\def\@latin{\protect\@@latin} -\let\@farsi=\@arabic -\let\@@arabic=\@arabic -\let\@@roman=\@roman -\let\@@Roman=\@Roman -\let\@@alph=\@alph -\let\@@Alph=\@Alph -\def\@arabic#1{\ifmmode\else\@number{\@@arabic#1}\fi} -\def\@Roman#1{\@latin{\@@Roman#1}} -\def\arabicnorl#1{\expandafter\@@arabic\csname c@#1\endcsname} -\def\make@lr#1{\begingroup - \toks@=\expandafter{#1}% - \edef\x{\endgroup - \def\noexpand#1{\noexpand\@number{\the\toks@}}}% - \x} -\def\@character#1{\ifcase#1\or الف\or ب\or پ\or ت\or ث\or ج\or چ\or ح\or خ\or د\or ذ\or ر\or ز\or س\or ش\or ص\or ض\or ع\or غ\or ف\or ق\or ک\or گ\or ل\or م\or ن\or ه\or و\or ی\fi} - -\def\@harfi#1{\farsifont\@character{\@@arabic#1}} - -\def\@numeric#1{\ifcase#1 \or یک\or دو\or سه\or چهار\or پنج\or شش\or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده\or چهارده\or پانزده\or شانزده\or هفده\or هجده\or نوزده\or بیست\fi} -\def\@adadi#1{\farsifont\@numeric{\@@arabic#1}} - -%The figure or table caption -\newsavebox\@Arabitempboxa -\long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@Arabitempboxa{\beginR #1: #2\endR}% - \ifdim \wd\@Arabitempboxa >\hsize - \beginR #1: #2\endR\par +\@ifclassloaded{beamer}{% +\def\familydefault{\rmdefault} +\raggedleft +\def\LTR{\bgroup\par\raggedright\@rlfalse} +\def\endLTR{\par\egroup} +\def\RTL{\bgroup\par\raggedleft\@rltrue} +\def\endRTL{\par\egroup} +\def\roman{\bgroup\par\raggedright\@rlfalse\rmfamily} +\def\endroman{\par\egroup} +\def\persian{\bgroup\par\raggedleft\@rltrue\persianfont} +\def\endpersian{\par\egroup} +\long\def\beamer@@frametitle[#1]#2{% + \beamer@ifempty{#2}{}{% + \gdef\insertframetitle{\raggedleft\rightskip=2em{\RL{#2}\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{\RL{#2}}% + \gdef\beamer@shortframetitle{\RL{#1}}% +}% +} +\def\@thm#1#2#3{% + \ifhmode\unskip\unskip\par\fi + \normalfont + \let\thmheadnl\relax + \let\thm@swap\@gobble + \thm@headpunct{.}% add period after heading + \thm@space@setup + #1% style overrides + \def\inserttheoremname{#3} + \def\inserttheorempunctuation{\the\thm@headpunct} + \def\@tempa{#2}% + \ifx\@empty\@tempa + \def\inserttheoremnumber{} \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@Arabitempboxa\hfil}% + \refstepcounter{#2}% + \expandafter\def\expandafter\inserttheoremnumber\expandafter{ \csname the#2\endcsname} \fi - \vskip\belowcaptionskip} + \beamer@begintheorem% +\raggedleft\@rltrue +} + \ifbeamer@countsect + \newtheorem{قضیه}{\raggedleft قضیه}[section] + \else + \newtheorem{قضیه}{\raggedleft قضیه} + \fi + \newtheorem{نتیجه}[theorem]{\raggedleft نتیجه} + \newtheorem{حقیقت}[theorem]{\raggedleft حقیقت} + \newtheorem{لما}[theorem]{\raggedleft لما} + \newtheorem{مسئله}[theorem]{\raggedleft مسئله} + \newtheorem{پاسخ}[theorem]{\raggedleft پاسخ} +\theoremstyle{definition} + \newtheorem{تعریف}[theorem]{\raggedleft تعریف} + \newtheorem{تعریفها}[theorem]{\raggedleft تعریفها} +\theoremstyle{example} + \newtheorem{مثال}[theorem]{\raggedleft مثال} + \newtheorem{مثالها}[theorem]{\raggedleft مثالها} +\newenvironment<>{اثبات}[1][\raggedleft اثبات]{% + \par + \def\insertproofname{#1\@addpunct{}}% + \pushQED{\qed} + \usebeamertemplate{proof begin}\@rltrue#2} +{\popQED\usebeamertemplate{proof end}} + \newenvironment<>{بلوک}[1]{% + \begin{actionenv}#2% + \def\insertblocktitle{\raggedleft#1}% + \par% + \usebeamertemplate{block begin}\raggedleft\@rltrue} + {\par% + \usebeamertemplate{block end}% + \end{actionenv}} + \newenvironment<>{بلوکهشدار}[1]{% + \begin{actionenv}#2% + \def\insertblocktitle{\raggedleft#1}% + \par% + \mode<presentation>{%\usebeamerfont{block}% + \setbeamercolor{local structure}{parent=alerted text}}% + \usebeamertemplate{block alerted begin}\raggedleft\@rltrue} + {\par% + \usebeamertemplate{block alerted end}% + \end{actionenv}} + \newenvironment<>{بلوکمثال}[1]{% + \begin{actionenv}#2% + \def\insertblocktitle{\raggedleft#1}% + \par% + \mode<presentation>{%\usebeamerfont{block}% + \setbeamercolor{local structure}{parent=example text}}% + \usebeamertemplate{block example begin}\raggedleft\@rltrue} + {\par% + \usebeamertemplate{block example end}% + \end{actionenv}} +\def\beamer@enum@{% + \beamer@computepref\@itemdepth% sets \beameritemnestingprefix + \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}% + \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}% + \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}% + \expandafter + \list + {\usebeamertemplate{\beamer@enumtempl}} + {\usecounter\@enumctr% + \def\makelabel##1{{\hss\llap{{% + \usebeamerfont*{enumerate \beameritemnestingprefix item}% + \usebeamercolor[fg]{enumerate \beameritemnestingprefix item}##1}}}}}% + \beamer@cramped% + \raggedleft\rightskip=2em% + \beamer@firstlineitemizeunskip% +} +\renewcommand{\itemize}[1][]{% + \beamer@ifempty{#1}{}{\def\beamer@defaultospec{#1}}% + \ifnum \@itemdepth >2\relax\@toodeep\else + \advance\@itemdepth\@ne + \beamer@computepref\@itemdepth% sets \beameritemnestingprefix + \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}% + \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}% + \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}% + \list + {\usebeamertemplate{itemize \beameritemnestingprefix item}} + {\def\makelabel##1{% + {% + \hss\llap{{% + \usebeamerfont*{itemize \beameritemnestingprefix item}% + \usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}% + }% + }% + } + \fi% + \beamer@cramped% + \raggedleft\rightskip=2em% + \beamer@firstlineitemizeunskip% +} +\def\@@description{% + \advance\beamer@descdefault by \labelsep% + \list + {} + {\labelwidth\beamer@descdefault\leftmargin\beamer@descdefault\let\makelabel\beamer@descriptionitem}% + \beamer@cramped% + \raggedleft\rightskip=6em + \beamer@firstlineitemizeunskip% +} +\AtBeginDocument{\@rlfalse} +\renewenvironment{beamer@frameslide}{% + \ifbeamer@autobreak\else% + \ifx\beamer@againname\@empty% + {\let\@elt\beamer@restorecounter\beamer@overlaycounterresets}% + \else% + {\let\@elt\beamer@labelrestorecounter\beamer@overlaycounterresets}% + \fi% + \fi% + \global\c@beamerpauses=1\relax% + \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{% + \refstepcounter{subsectionslide}% + \xdef\beamer@framestartpage{\the\c@page}% only first time + }{\clearpage\beamer@notesactions}% cleanup from previous slide + \hypersetup{pdfpagetransition=R}% + \hypersetup{pdfpageduration=}% + \xdef\beamer@frameendpage{\the\c@page}% every time + \beamer@setuplinks% + \beamer@displaybreak% + \global\setbox\beamer@zoombox=\box\voidb@x% + \def\beamer@zoomer{}% + \beamer@slidehaszoomfalse% + \gdef\insertframetitle{}% + \gdef\insertframesubtitle{}% + \gdef\beamer@frametitle{}% + \gdef\beamer@shortframetitle{}% + \gdef\beamer@framesubtitle{}% + \let\beamer@startcomment=\beamer@startcommentinframe% + % Start slide: + \beamer@framenotesbegin\@rltrue% + \global\setbox\beamer@framebox=\vbox\bgroup% + \beamer@inframetrue% + \let\frame=\framelatex% inside frames, use LaTeX's \frame command + \begin{beamer@framepauses}% + \ifbeamer@shrink% + \hsize=\beamer@shrinkfactorinv\hsize% + \textwidth=\beamer@shrinkfactorinv\textwidth% + \linewidth=\beamer@shrinkfactorinv\linewidth% + \fi% + % Insert labels if necessary: + \ifx\beamer@againname\@empty\else% + \nointerlineskip\vbox to0pt{\vss% + \label<\the\beamer@slideinframe>{\beamer@againname<\the\beamer@slideinframe>}% + \ifnum\beamer@slideinframe=1\relax% + \label<1>{\beamer@againname}% + \fi% + }\nointerlineskip% + \fi% + \ifx\beamer@framehypertargets\@empty\else% + \nointerlineskip\vbox to0pt{\vss% + \beamer@framehypertargets% + \global\let\beamer@framehypertargets\@empty% + }\nointerlineskip% + \fi% + \vskip-\parskip\vbox{}% + \beamer@initfirstlineunskip% + \ifbeamer@plainframe\nointerlineskip\fi% + \beamer@checkframetitle}% + {\end{beamer@framepauses}% + \egroup% + \ifx\beamer@frametitle\@empty% + \setbox\beamer@frametitlebox=\box\voidb@x% + \else% + \setbox\beamer@frametitlebox=\vbox{% + \vbox{}% + {\parskip0pt\usebeamertemplate***{frametitle}\vskip0.25em}% + }% + \fi% + \ifbeamer@plainframe% + \beamer@frametextheight=\paperheight% + \else% + \beamer@frametextheight=\textheight% + \fi% + \advance\beamer@frametextheight by-\ht\beamer@frametitlebox% + \advance\beamer@frametextheight by-\dp\beamer@frametitlebox% + \advance\beamer@frametextheight by-\beamer@frametopskip% + \ifbeamer@shrink% + \beamer@shrinkframebox% + \fi% + \ifx\beamer@zoomer\@empty + \setbox\beamer@framebox=\vbox{% + \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak% + \nointerlineskip\unvbox\beamer@frametitlebox% + \nobreak% + \ifbeamer@autobreak% + \vskip\beamer@frametopskipautobreak% + \else% + \vskip\beamer@frametopskip% + \fi% + \nobreak% + \nointerlineskip\box\beamer@zoombox\nointerlineskip% + \nobreak% + \ifbeamer@slidehaszoom\box\beamer@framebox\else\unvbox\beamer@framebox\fi% + % bottom skip is added in autobreakframebox + }% + \beamer@autobreakframebox% + \else% + \beamer@zoomer% + \fi% + \beamer@undolabels% + \beamer@framenotesend% + \box\beamer@framebox} +\long\def\beamer@title[#1]#2{% + \def\inserttitle{\RL{#2}}% + \def\beamer@shorttitle{\RL{#1}}% + } +\long\def\beamer@subtitle[#1]#2{% + \def\insertsubtitle{\RL{#2}}% + \def\beamer@shortsubtitle{\RL{#1}}% + } +\long\def\beamer@date[#1]#2{% + \def\insertdate{\RL{#2}}% + \def\beamer@shortdate{\RL{#1}}% + } +\long\def\beamer@author[#1]#2{% + \def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}\RL{#2}}% + \def\beamer@shortauthor{\RL{#1}}% + \ifbeamer@autopdfinfo% + \def\beamer@andstripped{}% + \beamer@stripands#2 \and\relax + {\let\inst=\@gobble\let\thanks=\@gobble\def\and{, }\hypersetup{pdfauthor={\beamer@andstripped}}} + \fi% +} +\long\def\beamer@institute[#1]#2{% + \def\beamer@temp{\RL{#2}}% + \ifx\beamer@temp\@empty + \def\insertinstitute{} + \else + \def\insertinstitute{\def\inst{\beamer@instinst}\def\and{\beamer@andinst}\RL{#2}}% + \fi + \def\beamer@shortinstitute{\RL{#1}}} +\renewenvironment{thebibliography}[1] +{%\leavevmode\unskip% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\beamer@biblabeltemplate{\@biblabel{#1}}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep=0pt% + \partopsep=0pt% + \topsep=0pt% + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv} + \let\makelabel\beamer@biblabeltemplate}% + \sloppy\raggedleft + \clubpenalty10000 + \@clubpenalty \clubpenalty + \widowpenalty10000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \ifhmode\unskip\fi\endlist} +\long\def\beamer@@@section#1{\beamer@section[\RL{#1}]{#1}} +\def\beamer@@@subsection#1{\beamer@subsection[\RL{#1}]{#1}} +\def\beamer@@@subsubsection#1{\beamer@subsubsection[\RL{#1}]{#1}} +\long\def\beamer@subsectionintoc#1#2#3#4#5#6{% + \ifnum\c@tocdepth>1% + \ifnum#5=\beamer@showpartnumber% + { + \beamer@saveanother% + \gdef\beamer@todo{}% + \beamer@slideinframe=#1\relax% + \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% + \ifbeamer@pausesubsections\pause\fi% + \beamer@tempcount=#6% + \advance\beamer@tempcount by\beamer@sectionadjust% + \edef\inserttocsectionnumber{\the\beamer@tempcount}% + \def\inserttocsubsectionnumber{#2}% + \def\inserttocsubsection{\rightskip=1.5em\hyperlink{Navigation#4}{\RL{#3}\hfill}}% + \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@oss\else\beamer@toc@ooss\fi}% + {% + \def\beamer@breakhere{\\}% + \beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi} + {subsection in toc}% + }% + }}% + \beamer@restoreanother% + } + \beamer@todo% + \fi\fi% +} +\long\def\beamer@subsubsectionintoc#1#2#3#4#5#6#7{% + \ifnum\c@tocdepth>2% + \ifnum#1=\beamer@showpartnumber% + { + \beamer@saveanother% + \gdef\beamer@todo{}% + \beamer@slideinframe=#2\relax% + \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% + \ifbeamer@pausesubsections\pause\fi% + \beamer@tempcount=#6% + \advance\beamer@tempcount by\beamer@sectionadjust% + \edef\inserttocsectionnumber{\the\beamer@tempcount}% + \def\inserttocsubsectionnumber{#3}% + \def\inserttocsubsubsectionnumber{#4}% + \def\inserttocsubsubsection{\rightskip=3em\hyperlink{Navigation#5}{\RL{#7}\hfill}}% + \beamer@tocifnothide{\ifnum\c@section=#2\beamer@toc@oss\else\beamer@toc@ooss\fi}% + {% + \def\beamer@breakhere{\\}% + \beamer@tocact{\ifnum\c@section=#2\ifnum\c@subsection=#3\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi} + {subsubsection in toc}% + }% + }}% + \beamer@restoreanother% + } + \beamer@todo% + \fi\fi% +} +}{} + -%The correct the right footnorerule so it does not overlap the texts -\def\r@fn{% - \hbox to \columnwidth - {\beginR \vbox{\kern -3\p@ - \hrule width .4\columnwidth \kern2.6\p@}\hfil\endR}} -\def\footnoterule{\r@fn} -%a command to put a footnote from left to right -%while in a right to left context -\providerobustcmd{\Footnote}[1]{% -\bgroup% To make the scope of the change local -\footnotemark% -\renewcommand{\thefootnote}{\arabic{footnote}}% -\unsetRL% -\footnotetext{#1}% -\egroup -} -%For Right-to-Left two column command, I guess taken from rlbabel -\makeatletter -\let\@old@outputdblcol\@outputdblcol -\newcommand{\rl@outputdblcolumn}{% +\def\rl@outputdblcolumn{% \if@firstcolumn \global \@firstcolumnfalse \global \setbox\@leftcolumn \box\@outputbox @@ -660,25 +1332,44 @@ \@startdblcolumn}% \endgroup \fi} + +\def\lr@outputdblcolumn{% + \if@firstcolumn + \global \@firstcolumnfalse + \global \setbox\@leftcolumn \box\@outputbox + \else + \global \@firstcolumntrue + \setbox\@outputbox \vbox {% + \hb@xt@\textwidth {% + \hb@xt@\columnwidth {% + \box\@leftcolumn \hss}% + \hfil + {\normalcolor\vrule \@width\columnseprule}% + \hfil + \hb@xt@\columnwidth {% + \box\@outputbox \hss}% + }% + }% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage + \@startdblcolumn}% + \endgroup + \fi +} \newcommand{\rldblcolumn}{\renewcommand{\@outputdblcol}{\rl@outputdblcolumn}} -\newcommand{\lrdblcolumn}{\renewcommand{\@outputdblcol}{\@old@outputdblcol}} +\newcommand{\lrdblcolumn}{\renewcommand{\@outputdblcol}{\lr@outputdblcolumn}} %set the default direction of the twocolumn texts to Right-to-Left \rldblcolumn -% define the XePersian logo -\def\reflect#1{{\setbox0=\hbox{#1}\rlap{\kern0.5\wd0 - \special{x:gsave}\special{x:scale -1 1}}\box0 \special{x:grestore}}} -\def\XePersian{\leavevmode$\smash{\hbox{X\lower.5ex - \hbox{\kern-.125em\reflect{E}}Persian}}$} - -\newenvironment{english}{\par\vspace{.5cm}\setLR\begin{rmfamily}}{\end{rmfamily}\par\vspace{.5cm}} -\def\lr#1{\LR{\rmfamily{#1}}} -\def\rl#1{\RL{\farsifont#1}} -%To fix tabular problem in bidi. Taken from farsitex \newif\if@tabsw \global\@tabswfalse \def\@tabular{\if@rl\global\@tabswtrue\fi @@ -704,40 +1395,23 @@ \if@tabsw\hbox\bgroup\beginR\vbox\bgroup\fi \@preamble} -%taken from rlbabel.ldf -\newif\if@rl -\AtBeginDocument{% Here we set the main document direction - \newif\if@rlmain% - \if@rl% e.g: if the options to babel were [english,hebrew] - \@rlmaintrue% - \else% e.g: if the options to babel were [hebrew,english] - \@rlmainfalse% - \fi% -} -%To fix eqref problem taken from amsmath -\let\@@text=\text -\def\text#1{\@@text{\RL{#1}}} -\def\tagform@#1{\maketag@@@{)\ignorespaces\text{#1}\unskip\@@italiccorr(}} -\renewcommand{\eqref}[1]{(\ref{#1})} -%To fix equation numbers. taken from amsmath -\renewenvironment{equation}{% -\par\unsetRL - \incr@eqnum - \mathdisplay@push - \st@rredfalse \global\@eqnswtrue - \mathdisplay{equation}% -}{% - \endmathdisplay{equation}% - \mathdisplay@pop - \ignorespacesafterend -\par\setRL\noindent -} -%almost taken verbatim from polyglossia for making abjad numbering in enumerate environment + + + + + + + + + + + + \providecommand*{\xpg@warning}[1]{% \PackageWarning{XePersian}% {#1}} @@ -763,12 +1437,12 @@ } \def\abjad@zero{} \def\abj@num@i#1{% - \ifcase#1\or ا\or ب\or ج\char"200D\or د% - \or ه\or و\or ز\or ح\or ط\fi + \ifcase#1\or ا\or ب\or ج\char"200D\or د% + \or ه\char"200D\or و\or ز\or ح\or ط\fi \ifnum#1=\z@\abjad@zero\fi} \def\abj@num@ii#1{% \ifcase#1\or ی\or ک\or ل\or م\or ن% - \or س\or ع\or ف\or ص\fi + \or س\or ع\or ف\or ص\fi \ifnum#1=\z@\fi\abj@num@i} \def\abj@num@iii#1{% \ifcase#1\or ق\or ر\or ش\or ت\or ث% @@ -779,22 +1453,175 @@ \ifnum#1=\z@\fi\abj@num@iii} } -\def\farsi@numbers{% \let\@latinalph\@alph% \let\@latinAlph\@Alph% \let\@alph\abjad% \let\@Alph\abjad% + + + +\def\underline#1{% + \relax + \ifmmode\@@@underline{#1}% + \else +\if@rl $\@@@underline{\hbox{\RL{#1}}}\m@th$\relax +\else +$\@@@underline{\hbox{#1}}\m@th$\relax\fi\fi} + + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % % + % footnote setup % + % % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % is defined in Plain already + + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\_=\CatLetter % top level macro file + + +\def\r@fn{% + \hbox to \columnwidth + {\beginR \vbox{\kern -3\p@ + \hrule width .4\columnwidth \kern2.6\p@}\hfil\endR}} +\def\l@fn{% + \hrule width .4\columnwidth\kern 2.6\p@} + + +\def\@makefnmark{\hbox{$^{\hbox{\scriptsize\@thefnmark}}\m@th$}} + + +\def\leftfootnoterule{\global\def\footnoterule{\l@fn}} +\def\rightfootnoterule{\global\def\footnoterule{\r@fn}} +\leftfootnoterule + +%%% \beginprog +\newread\old_foot_file +\newwrite\foot_file +\def\foot_file_name{\jobname.fot\relax} +\def\init_footnote{% + \openin\old_foot_file\foot_file_name + \ifeof\old_foot_file \closein\old_foot_file + \else \closein\old_foot_file + \read_foot_file + \fi + \immediate\openout\foot_file\foot_file_name + \immediate\write\foot_file{\relax}% + \global\let\init_footnote\relax + } + +\newcount\foot_name_no % for generating footnote mark names + + + + + +\newcount\autofootnote +\def\fnpp_next_footnote{% + \init_footnote + \global\advance\foot_name_no\@ne + \global\advance\c@footnote\@ne + \edef\do_write{% + \immediate\write\foot_file{% + \string\advance\autofootnote\@ne + \string\expandafter\xdef + \string\csname\space f@\number\foot_name_no \endcsname{% + \string\number\autofootnote + }% + }% + }% + \do_write + \global\autofootnote 0\csname f@\number\foot_name_no \endcsname \relax + } + +\def\read_foot_file{% + \begingroup + \catcode`\@\CatLetter \catcode`\^^M\CatIgnore + \input \foot_file_name + \endgroup + } + +\let\fnpp_orig_outputpage=\@outputpage +\def\@outputpage{% + \ifx \init_footnote\relax + \immediate\write\foot_file{\autofootnote\z@}% + \fi + \fnpp_orig_outputpage + } + +\let\FnppOrigFootnote=\footnote % save original bindings +\let\FnppOrigFootnotemark=\footnotemark + +\def\footnote{% + \@ifnextchar[% % ] (Emacs) + \@xfootnote + {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnote[\the\c@footnote] % +}% + } +\def\footnotemark{% + \@ifnextchar[% % ] (Emacs) + \@xfootnotemark + {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi \@xfootnotemark[\the\c@footnote]}% + } + + + + +\def\footnotemarkLR{% + \@ifnextchar[% % ] (Emacs) + \@xfootnotemark + {\fnpp_next_footnote \ifnum\autofootnote=1\leftfootnoterule\fi\@xfootnotemark[\the\c@footnote]}% + } + +\newif\if@RomanFootNum +\providerobustcmd{\Footnote}[1]{% +\bgroup +\footnotemarkLR% +\renewcommand{\thefootnote}{\if@RomanFootNum\rmfamily{\@arabic\c@footnote}\else\@arabic\c@footnote\fi}% +\@rl@footnotefalse\footnotetext{\rmfamily#1}% +\egroup } +\@RomanFootNumfalse +\def\PersianFootNum{\@RomanFootNumfalse} +\def\RomanFootNum{\@RomanFootNumtrue} +\DeclareOption{RomanFootNum}{\@RomanFootNumtrue} +\ProcessOptions -\AtBeginDocument{\farsi@numbers} +\ifx \@minipagerestore\relax + \let\@minipagerestore\@empty +\fi + +\g@addto@macro\@minipagerestore{% + \let\footnote\FnppOrigFootnote + } + +\let\fnpp_orig_maketitle=\maketitle +\def\maketitle{% + \begingroup + \let\footnotemark\FnppOrigFootnotemark + \fnpp_orig_maketitle + \endgroup + } + +\catcode`\_=\CatUsCode + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % % + % End of footnote setup % + % % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand\twocolumnstableofcontents{% - \begin{multicols}{2}[\section*{\contentsname}]% - \small - \@starttoc{toc}% - \end{multicols}} -\def\rcases#1{\left.\vcenter{\normalbaselines\m@th - \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\,\right\}} \endinput |