% !TeX root= lshort.tex
% !TEX TS-program=xelatex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Special Commands for the LShort2e Introduction
% $Id: lshort.sty,v 1.2 2003/03/19 20:57:45 oetiker Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% By Tobias Oetiker
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\errorcontextlines=10

%save pageref an label
\let\lsspageref\pageref
\ProvidesPackage{lshort}

\RequirePackage{mflogo}
\RequirePackage{verbatim}
%\RequirePackage{fancyhea}
\RequirePackage{fancyhdr}
\RequirePackage{calc}
\RequirePackage{lastpage}
\RequirePackage{amsmath,latexsym,amsthm}
\RequirePackage{amssymb}
%\RequirePackage{cmmib57}% Use blueSky cmmib5 cmmib7 cmsy
\RequirePackage[all]{xy}
%\RequirePackage[T1]{fontenc}
%\RequirePackage[latin1]{inputenc}
\RequirePackage{lmodern}
%\RequirePackage{textcomp}
%\RequirePackage{type1cm}% remove size restrictions
%\RequirePackage{aeguill}
% some packages which draw a euro
\RequirePackage{textcomp}
\RequirePackage[onehalfspacing]{setspace}
\RequirePackage{hyperref}

\hypersetup{colorlinks=true,linkcolor=red,citecolor=green,filecolor=magneta,urlcolor=cyan}


% need some magic here to keep the original definition of rightarrow
\newcommand{\org@Rightarrow}{}
\let\org@Rightarrow\Rightarrow
\usepackage{marvosym}
\let\MVRightarrow\Rightarrow
\let\Rightarrow\org@Rightarrow
%%%%
\RequirePackage[gen]{eurosym} % redefines \EUR
\RequirePackage{eurosans}
\let\EUROSANS\euro
% marvosym defines \EUR, \EURtm, \EURhv and \EURcr (with \def), while europs
% uses \providecommand to define them :-( so let's first undefine them:
\let\EURtm\undefined
\let\EURhv\undefined
\let\EURcr\undefined
\RequirePackage{europs}
%\RequirePackage[mathcal]{euscript}
%\IfFileExists{eucal.sty}
%  {\RequirePackage[psamsfonts]{eucal}}
%  {\IfFileExists{euscript.sty}
%  {\RequirePackage[mathcal]{euscript}}{}}

\RequirePackage{url}
% Lets have some nice headings

%
\pagestyle{fancyplain}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection{} #1}}
\lhead[\fancyplain{}{\bfseries\thepage}]
 {\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
    {\fancyplain{}{\bfseries\thepage}}
\cfoot[]{}

\RequirePackage{pgfplots}
\RequirePackage{tikz}
\usetikzlibrary{%
  arrows,%
  calc,%
  fit,%
  patterns,%
  plotmarks,%
  shapes.geometric,%
  shapes.misc,%
  shapes.symbols,%
  shapes.arrows,%
  shapes.callouts,%
  shapes.multipart,%
  shapes.gates.logic.US,%
  shapes.gates.logic.IEC,%
  er,%
  automata,%
  backgrounds,%
  chains,%
  topaths,%
  trees,%
  petri,%
  mindmap,%
  matrix,%
  calendar,%
  folding,%
  fadings,%
  through,%
  positioning,%
  scopes,%
  decorations.fractals,%
  decorations.shapes,%
  decorations.text,%
  decorations.pathmorphing,%
  decorations.pathreplacing,%
  decorations.footprints,%
  decorations.markings,%
  shadows}
\addtolength{\headheight}{1.6pt}





%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Adapted from TeX FAQ
\renewcommand{\Email}{\begingroup \def\UrlLeft{<}\def\UrlRight{>} \urlstyle{tt}\Url}     % email address
\def\mailto|#1|{\href{mailto:#1}{\Email|#1|}}        % url to mail somewhere
\newcommand{\CTANref}{\begingroup \urlstyle{tt}\Url}     % 
\def\CTAN|#1|{\href{ftp://ftp.dante.de/tex-archive/#1}{\CTANref|CTAN:/tex-archive/#1|}}  
\newcommand\Newsgroup{\begingroup \urlstyle{tt}\Url} % newsgroup
\let\URL\url                                         % just a URL

\newcommand{\PSi}{پست‌\-اسکریپت
\index{پست‌اسکریپت}
\romanindex{PostScript}
}
\newcommand{\EPSi}{کپسول پست‌اسکریپت%Encapsulated \textsc{PostScript}
\index{\lr{Encapsulated PostScript}@\lr{Encapsulated \textsc{PostScript}}}%
\index{\lr{PostScript}@lr{\textsc{PostScript}}!\lr{Encapsulated}}%
}
% Earlier paragraphs were separated by some space
%
%\setlength{\parindent}{0pt}
%\setlength{\parskip}{1.5ex plus 0.7ex minus 0.6ex}

\newcommand{\manual}{\cite{manual}\,}
\newcommand{\companion}{\cite{companion}\,}
\newcommand{\guide}{\cite{local}\,}
\newcommand{\contrib}[3]{#1\quad\mailto|#2|{\small\\\quad\textit{#3}}\\[1ex]}
%
% Some commands for helping with INDEX creation
%
%\newcommand{\bs}{\symbol{'134}}%Print backslash
%\newcommand{\bs}{\ensuremath{\mathtt{\backslash}}}%Print backslash
% Index entry for a command (\cih for hidden command index
\newcommand{\eei}[1]{%
%\index{\lr{extension}!\texttt{#1}}
\index{بیی@پسوند!\texttt{#1}}\texttt{#1}}
% probably add handling of period like handling of \ in \ci 
\newcommand{\fni}[1]{%
\index{\lr{font}!#1@\texttt{\bs#1}}%
\index{#1@\texttt{\hspace*{-1.2ex}\bs #1}}\texttt{\bs #1}}
\newcommand{\cih}[1]{%
\index{فرمان‌ها!\lr{#1}@\texttt{\bs#1}}%
%\index{\lr{commands}!#1@\texttt{\bs#1}}%
\index{#1@\texttt{\hspace*{-1.2ex}\bs #1}}}
\newcommand{\ci}[1]{\cih{#1}\texttt{\bs #1}}
%Package
\newcommand{\paih}[1]{%
\index{بسته‌ها!\lr{#1}@\textsf{#1}}%
%\index{\lr{packages}!#1@\textsf{#1}}%
\index{#1@\textsf{#1}}}
\newcommand{\pai}[1]{%
\paih{#1}\textsf{#1}}
% Index entry for an environment

\newcommand{\ei}[1]{%
\index{محیط‌ها!\texttt{#1}}%
%\index{\lr{envoronments}!\texttt{#1}}%
\index{#1@\texttt{#1}}%
\texttt{#1}}
% Indexentry for a word (Word inserted into the text)
\newcommand{\wi}[1]{\index{#1}#1}
% Typesetting Commands
%
\newenvironment{lscommand}%
    {\begin{latin}\nopagebreak\par\small\addvspace{3.2ex plus 0.8ex minus 0.2ex}%
     \vskip -\parskip
     \noindent%
     \begin{tabular}{|l|}\hline\rule{0pt}{1em}\ignorespaces}%
    {\\\hline\end{tabular}\par\nopagebreak\addvspace{3.2ex plus 0.8ex
        minus 0.2ex}%
     \vskip -\parskip\end{latin}}
%
% Type setting Code Fragments
%
\newenvironment{code}{\begin{latin}\begin{quote}}{\end{quote}\end{latin}}
%
% Intro Environment
\newenvironment{intro}{\farsifontshafigh}{\vspace*{2ex minus 1.5ex}}
%
\newcommand{\secby}[2]{\LR{\nopagebreak\par\addvspace{-1.5ex}%
     \vskip -\parskip\noindent{\tiny \lr{By} #1 \mailto|#2|}\par\nopagebreak%
     \addvspace{1ex plus 0.8ex minus 0.2ex}% 
     \vskip -\parskip\noindent\ignorespaces}}
%
% propper bookmark entries in pdftex

%\noindent\addvspace{1ex}\small #1 $<$\texttt{#2}$>$\par\addvspace{2ex}\noindnet\ignorespaces}
%
%
% Symbol Entry for Math Symbol Tables
%
\newcommand{\X}[1]{$#1$&\texttt{\string#1}\hspace*{1ex}}
% normal text .... 
\newcommand{\SC}[1]{#1&\texttt{\string#1}\hspace*{1ex}}
% for accents in text mode
\newcommand{\A}[1]{#1&\texttt{\string#1}\hspace*{1ex}}
\newcommand{\BB}[2]{#1#2&\texttt{\string#1{} #2}\hspace*{1ex}}

\newcommand{\W}[2]{$#1{#2}$&
  \texttt{\string#1}\texttt{\string{\string#2\string}}\hspace*{1ex}}
\newcommand{\Y}[1]{$\big#1$ &\texttt{\string#1}}  %
% Mathsymbol Table
\newsavebox{\symbbox}
\newenvironment{symbols}[1]%
{\par\vspace*{2ex}
\renewcommand{\arraystretch}{1.1}
\begin{lrbox}{\symbbox}
\hspace*{4ex}\begin{latin}\begin{tabular}{@{}#1@{}}}%
{\end{tabular}\end{latin}\end{lrbox}\makebox[\textwidth]{\usebox{\symbbox}}\par\medskip}
%
% Special Prep for AMS Symbols Printout
% Should work if AMS is not available
%

%% we have no PS versions of the rsfs fonts ... so this is a nogo for pdf
%\ifx\HyPsd@pageref\undefined
\RequirePackage{mathrsfs}
%\fi
\RequirePackage{latexsym}
\RequirePackage[mathcal]{euscript}
%
% Print |--| to show a distance
%
\newcommand{\demowidth}[1]{\rule{0.3pt}{1.3ex}\rule{#1}{0.3pt}\rule{0.3pt}{1.3ex}}
%
%
% --- example ----
% This is an environment to set LaTeX examples.
% On the left side the source text and on the
% right side the typeset text.
%
% \begin{example}
% \Large This is Large
% \end{example}
% This Part is stolen from the verbaim.sty by FMi
% 
\newwrite\example@out
\newcounter{exacnt}
\setcounter{exacnt}{1}
\newlength{\savefboxrule}
\newlength{\savefboxsep}
\newlength{\outdent}
\setlength{\outdent}{1cm}
\addtolength{\headwidth}{\outdent}
\newenvironment{example}%
{\@RTLfalse\begingroup% Lets Keep the Changes Local
   \@bsphack
  \immediate\openout \example@out \jobname.exa
  \let\do\@makeother\dospecials\catcode`\^^M\active
  \def\verbatim@processline{%
    \immediate\write\example@out{\the\verbatim@line}}%
  \verbatim@start}%
{\immediate\closeout\example@out\@esphack\endgroup%
                                %
                                % And here comes my part. :-
                                %   
  \stepcounter{exacnt}%
  \setlength{\parindent}{0pt}%
  \par\addvspace{3.0ex plus 0.8ex minus 0.5ex}\vskip -\parskip
%  Page \lsspageref{exa:\theexacnt}
\expandafter\ifx\csname r@exa\theexacnt\endcsname\relax\else
%\ifx\pdfoutput\undefined % We're not running pdftex
  %\ifodd\lsspageref{exa\theexacnt}\hspace*{0pt}\else\hspace*{-\outdent}\fi%
%\else
%% HyPsd@pageref internal hyperref command v6.69c<<<<<<< HEAD
%  \if@twoside\ifodd\HyPsd@pageref{exa\theexacnt}\hspace*{-\outdent}\else\hspace*{0pt}\fi\fi
  %=======
  \ifodd\HyPsd@pageref{exa\theexacnt}\hspace*{-\outdent}\else\if@twoside\hspace*{0pt}\else\hspace*{-\outdent}\fi\fi%>>>>>>> 404cfb64c15599f79b0868b6d9ef8d43d8850358
%\fi
\fi
\makebox[\textwidth][l]{%
%\raisebox{-\height}[0pt][\totalheight]{%
  \begin{latin}\begin{minipage}[c]{0.5\outdent+0.46\textwidth-3mm}%
    \small\verbatiminput{\jobname.exa}
  \end{minipage}\end{latin}%
                                %}%
  \hspace{5mm}%
  \setlength{\savefboxrule}{\fboxrule}%
  \setlength{\fboxrule}{0.1pt}%
  \setlength{\savefboxsep}{\fboxsep}%
  \setlength{\fboxsep}{3mm}%
                                %  \raisebox{-\height}[0pt][\totalheight]{%
  \fbox{%
  \begin{latin}
    \begin{minipage}{0.5\outdent+0.54\textwidth-3.5mm-2\fboxrule-2\fboxsep}%
      \setlength{\fboxrule}{\savefboxrule}%
      \setlength{\fboxsep}{\savefboxsep}%
      \setlength{\fboxrule}{0.5pt}%
      \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}%
      \begin{trivlist}\item\small\input{\jobname.exa}
      \end{trivlist}
    \end{minipage}\end{latin}%\@rltrue
    }%
%  }%
}\label{exa\theexacnt}%
\par\addvspace{3ex plus 0.8ex minus 0.5ex}\vskip -\parskip
}

\newenvironment{lined}[1]%
 {\begin{center}\begin{minipage}{#1}\hrule\medskip}
 {\vspace{-1ex}\hrule \end{minipage}\end{center}}
% I want no headers on pages created by clearpage

\renewcommand{\cleardoublepage}
    {\clearpage\if@twoside \ifodd\c@page\else
    \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}



\newcommand{\graphicscompanion}{\cite{graphicscompanion} }
\newcommand{\hobby}{\cite{metapost} }
\newcommand{\hoenig}{\cite{unbound} }
\newcommand{\graphicsinlatex}{\cite{ursoswald} }
\usepackage{xepersian}

\@ifundefined{Footnote}{\let\Footnote\LTRfootnote}{}

\newcommand{\romanindex}[1]{\index{\lr{#1}}}
\newcommand\emp[1]{«#1»}
\newcommand\femph[1]{{\it #1}}
\let\originalemph\emph
\renewcommand{\emph}[1]{\originalemph{\lr{#1}}}

% \DeclareMathOperator{\argh}{argh}
% \DeclareMathOperator*{\nut}{Nut}


%%%%%%%%%%%%%%%%%%%End of titlesec definitions%%%%%%%%%%%%%%%%%%%%%%%%%%%
\settextfont[UprightFont={ALotus},BoldFont={ALotusBold},ItalicFont={ALotusItalic},Scale=1]{ALotus}
\setlatintextfont[Scale=1]{Linux Libertine}
\defpersianfont\farsifontsayeh[Scale=1.1]{ATitr}
\defpersianfont\farsifontpook[Scale=1]{AKufiOutline}
\defpersianfont\farsifontnavaar[Scale=1]{AHoma}
\defpersianfont\farsifontshafigh[Scale=1]{AMitra}
\defpersianfont\farsifontscheherazade[Scale=1.1]{Scheherazade}
\defpersianfont\nastaliq[Scale=2]{IranNastaliq}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\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]{\bfseries\leftmark}
\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
}
