% !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 }