Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ian.cls')
-rw-r--r--libs/ian.cls673
1 files changed, 0 insertions, 673 deletions
diff --git a/libs/ian.cls b/libs/ian.cls
deleted file mode 100644
index aec99ad..0000000
--- a/libs/ian.cls
+++ /dev/null
@@ -1,673 +0,0 @@
-%%
-%% Ian's class file
-%%
-
-%% TeX format
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-
-%% class name
-\ProvidesClass{ian}[2017/09/29]
-
-%% boolean to signal that this class is being used
-\newif\ifianclass
-
-%% options
-% no section numbering in equations
-\DeclareOption{section_in_eq}{\sectionsineqtrue}
-\DeclareOption{section_in_fig}{\sectionsinfigtrue}
-\DeclareOption{section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
-\DeclareOption{section_in_all}{\sectionsineqtrue\sectionsinfigtrue\PassOptionsToPackage{section_in_theo}{iantheo}}
-\DeclareOption{subsection_in_eq}{\subsectionsineqtrue}
-\DeclareOption{subsection_in_fig}{\subsectionsinfigtrue}
-\DeclareOption{subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
-\DeclareOption{subsection_in_all}{\subsectionsineqtrue\subsectionsinfigtrue\PassOptionsToPackage{subsection_in_theo}{iantheo}}
-\DeclareOption{no_section_in_eq}{\sectionsineqfalse}
-\DeclareOption{no_section_in_fig}{\sectionsinfigfalse}
-\DeclareOption{no_section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
-\DeclareOption{no_section_in_all}{\sectionsineqfalse\sectionsinfigfalse\PassOptionsToPackage{no_section_in_theo}{iantheo}}
-\DeclareOption{no_subsection_in_eq}{\subsectionsineqfalse}
-\DeclareOption{no_subsection_in_fig}{\subsectionsinfigfalse}
-\DeclareOption{no_subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
-\DeclareOption{no_subsection_in_all}{\subsectionsineqfalse\subsectionsinfigfalse\PassOptionsToPackage{no_subsection_in_theo}{iantheo}}
-% reset point
-\DeclareOption{point_reset_at_section}{\PassOptionsToPackage{reset_at_section}{point}}
-\DeclareOption{point_no_reset_at_section}{\PassOptionsToPackage{no_reset_at_section}{point}}
-\DeclareOption{point_reset_at_theo}{\PassOptionsToPackage{reset_at_theo}{point}}
-\DeclareOption{point_no_reset_at_theo}{\PassOptionsToPackage{no_reset_at_theo}{point}}
-
-\def\ian@defaultoptions{
- \ExecuteOptions{section_in_all, no_subsection_in_all}
- \ProcessOptions
-
- %% required packages
- \RequirePackage{iantheo}
- \RequirePackage{point}
- \RequirePackage{color}
- \RequirePackage{marginnote}
- \RequirePackage{amssymb}
- \PassOptionsToPackage{hidelinks}{hyperref}
- \RequirePackage{hyperref}
-}
-
-%% paper dimensions
-\setlength\paperheight{297mm}
-\setlength\paperwidth{210mm}
-
-%% fonts
-\input{size11.clo}
-\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}
-
-%% text dimensions
-\hoffset=-50pt
-\voffset=-72pt
-\textwidth=460pt
-\textheight=704pt
-
-
-%% remove default indentation
-\parindent=0pt
-%% indent command
-\def\indent{\hskip20pt}
-
-%% something is wrong with \thepage, redefine it
-\gdef\thepage{\the\c@page}
-
-%% array lines (to use the array environment)
-\setlength\arraycolsep{5\p@}
-\setlength\arrayrulewidth{.4\p@}
-
-
-%% correct vertical alignment at the end of a document
-\AtEndDocument{
- \vfill
- \eject
-}
-
-
-%% hyperlinks
-% hyperlinkcounter
-\newcounter{lncount}
-% hyperref anchor
-\def\hrefanchor{%
-\stepcounter{lncount}%
-\hypertarget{ln.\thelncount}{}%
-}
-
-%% define a command and write it to aux file
-\def\outdef#1#2{%
- % define command%
- \expandafter\xdef\csname #1\endcsname{#2}%
- % hyperlink number%
- \expandafter\xdef\csname #1@hl\endcsname{\thelncount}%
- % write command to aux%
- \immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1\endcsname{\csname #1\endcsname}}%
- \immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1@hl\endcsname{\thelncount}}%
-}
-
-%% can call commands even when they are not defined
-\def\safe#1{%
- \ifdefined#1%
- #1%
- \else%
- {\color{red}\bf?}%
- \fi%
-}
-
-%% define a label for the latest tag
-%% label defines a command containing the string stored in \tag
-\def\deflabel{
- \def\label##1{\expandafter\outdef{label@##1}{\safe\tag}}
-
- \def\ref##1{%
- % check whether the label is defined (hyperlink runs into errors if this check is omitted)
- \ifcsname label@##1@hl\endcsname%
- \hyperlink{ln.\csname label@##1@hl\endcsname}{{\color{blue}\safe\csname label@##1\endcsname}}%
- \else%
- \ifcsname label@##1\endcsname%
- {\color{blue}\csname ##1\endcsname}%
- \else%
- {\bf ??}%
- \fi%
- \fi%
- }
-}
-
-
-%% make a custom link at any given location in the document
-\def\makelink#1#2{%
- \hrefanchor%
- \outdef{label@#1}{#2}%
-}
-
-
-%% section command
-% counter
-\newcounter{sectioncount}
-% space before section
-\newlength\secskip
-\setlength\secskip{40pt}
-% a prefix to put before the section number, e.g. A for appendices
-\def\sectionprefix{}
-% define some lengths
-\newlength\secnumwidth
-\newlength\sectitlewidth
-\def\section#1{
- % reset counters
- \stepcounter{sectioncount}
- \setcounter{subsectioncount}{0}
- \ifsectionsineq
- \setcounter{seqcount}0
- \fi
- \ifsectionsinfig
- \setcounter{figcount}0
- \fi
-
- % space before section (if not first)
- \ifnum\thesectioncount>1
- \vskip\secskip
- \penalty-1000
- \fi
-
- % hyperref anchor
- \hrefanchor
- % define tag (for \label)
- \xdef\tag{\sectionprefix\thesectioncount}
-
- % get widths
- \def\@secnum{{\bf\Large\sectionprefix\thesectioncount.\hskip10pt}}
- \settowidth\secnumwidth{\@secnum}
- \setlength\sectitlewidth\textwidth
- \addtolength\sectitlewidth{-\secnumwidth}
-
- % print name
- \parbox{\textwidth}{
- \@secnum
- \parbox[t]{\sectitlewidth}{\Large\bf #1}}
-
- % write to table of contents
- \iftoc
- % save lncount in aux variable which is written to toc
- \immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@sec.\thesectioncount\endcsname{\thelncount}}
- \write\tocoutput{\noexpand\tocsection{#1}{\thepage}}
- \fi
-
- %space
- \par\penalty10000
- \bigskip\penalty10000
-}
-
-%% subsection
-% counter
-\newcounter{subsectioncount}
-% space before subsection
-\newlength\subsecskip
-\setlength\subsecskip{30pt}
-\def\subsection#1{
- % counters
- \stepcounter{subsectioncount}
- \setcounter{subsubsectioncount}{0}
- \ifsubsectionsineq
- \setcounter{seqcount}0
- \fi
- \ifsubsectionsinfig
- \setcounter{figcount}0
- \fi
-
- % space before subsection (if not first)
- \ifnum\thesubsectioncount>1
- \vskip\subsecskip
- \penalty-500
- \fi
-
- % hyperref anchor
- \hrefanchor
- % define tag (for \label)
- \xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount}
-
- % get widths
- \def\@secnum{{\bf\large\hskip.5cm\sectionprefix\thesectioncount.\thesubsectioncount.\hskip5pt}}
- \settowidth\secnumwidth{\@secnum}
- \setlength\sectitlewidth\textwidth
- \addtolength\sectitlewidth{-\secnumwidth}
- % print name
- \parbox{\textwidth}{
- \@secnum
- \parbox[t]{\sectitlewidth}{\large\bf #1}}
-
- % write to table of contents
- \iftoc
- % save lncount in aux variable which is written to toc
- \immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsec.\thesectioncount.\thesubsectioncount\endcsname{\thelncount}}
- \write\tocoutput{\noexpand\tocsubsection{#1}{\thepage}}
- \fi
-
- % space
- \par\penalty10000
- \medskip\penalty10000
-}
-
-%% subsubsection
-% counter
-\newcounter{subsubsectioncount}
-% space before subsubsection
-\newlength\subsubsecskip
-\setlength\subsubsecskip{20pt}
-\def\subsubsection#1{
- % counters
- \stepcounter{subsubsectioncount}
-
- % space before subsubsection (if not first)
- \ifnum\thesubsubsectioncount>1
- \vskip\subsubsecskip
- \penalty-500
- \fi
-
- % hyperref anchor
- \hrefanchor
- % define tag (for \label)
- \xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount}
-
- % get widths
- \def\@secnum{{\bf\hskip1.cm\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount.\hskip5pt}}
- \settowidth\secnumwidth{\@secnum}
- \setlength\sectitlewidth\textwidth
- \addtolength\sectitlewidth{-\secnumwidth}
- % print name
- \parbox{\textwidth}{
- \@secnum
- \parbox[t]{\sectitlewidth}{\large\bf #1}}
-
- % write to table of contents
- \iftoc
- % save lncount in aux variable which is written to toc
- \immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsubsec.\thesectioncount.\thesubsectioncount.\thesubsubsectioncount\endcsname{\thelncount}}
- \write\tocoutput{\noexpand\tocsubsubsection{#1}{\thepage}}
- \fi
-
- % space
- \par\penalty10000
- \medskip\penalty10000
-}
-
-%% itemize
-\newlength\itemizeskip
-% left margin for items
-\setlength\itemizeskip{20pt}
-\newlength\itemizeseparator
-% space between the item symbol and the text
-\setlength\itemizeseparator{5pt}
-% penalty preceding an itemize
-\newcount\itemizepenalty
-\itemizepenalty=0
-% counter counting the itemize level
-\newcounter{itemizecount}
-
-% item symbol
-\def\itemizept#1{
- \ifnum#1=1
- \textbullet
- \else
- $\scriptstyle\blacktriangleright$
- \fi
-}
-
-
-\newlength\current@itemizeskip
-\setlength\current@itemizeskip{0pt}
-\def\itemize{%
- \par\expandafter\penalty\the\itemizepenalty\medskip\expandafter\penalty\the\itemizepenalty%
- \addtocounter{itemizecount}{1}%
- \addtolength\current@itemizeskip{\itemizeskip}%
- \leftskip\current@itemizeskip%
-}
-\def\enditemize{%
- \addtocounter{itemizecount}{-1}%
- \addtolength\current@itemizeskip{-\itemizeskip}%
- \par\expandafter\penalty\the\itemizepenalty\leftskip\current@itemizeskip%
- \medskip\expandafter\penalty\the\itemizepenalty%
-}
-
-% item, with optional argument to specify the item point
-% @itemarg is set to true when there is an optional argument
-\newif\if@itemarg
-\def\item{%
- % check whether there is an optional argument (if there is none, add on empty '[]')
- \@ifnextchar [{\@itemargtrue\@itemx}{\@itemargfalse\@itemx[]}%
-}
-\newlength\itempt@total
-\def\@itemx[#1]{
- \if@itemarg
- \settowidth\itempt@total{#1}
- \else
- \settowidth\itempt@total{\itemizept\theitemizecount}
- \fi
- \addtolength\itempt@total{\itemizeseparator}
- \par
- \medskip
- \if@itemarg
- \hskip-\itempt@total#1\hskip\itemizeseparator
- \else
- \hskip-\itempt@total\itemizept\theitemizecount\hskip\itemizeseparator
- \fi
-}
-
-%% prevent page breaks after itemize
-\newcount\previtemizepenalty
-\def\nopagebreakafteritemize{
- \previtemizepenalty=\itemizepenalty
- \itemizepenalty=10000
-}
-%% back to previous value
-\def\restorepagebreakafteritemize{
- \itemizepenalty=\previtemizepenalty
-}
-
-%% enumerate
-\newcounter{enumerate@count}
-\def\enumerate{
- \setcounter{enumerate@count}0
- \let\olditem\item
- \let\olditemizept\itemizept
- \def\item{
- % counter
- \stepcounter{enumerate@count}
- % set header
- \def\itemizept{\theenumerate@count.}
- % hyperref anchor
- \hrefanchor
- % define tag (for \label)
- \xdef\tag{\theenumerate@count}
- \olditem
- }
- \itemize
-}
-\def\endenumerate{
- \enditemize
- \let\item\olditem
- \let\itemizept\olditemizept
-}
-
-
-%% equation numbering
-% counter
-\newcounter{seqcount}
-% booleans (write section or subsection in equation number)
-\newif\ifsectionsineq
-\newif\ifsubsectionsineq
-\def\seqcount{
- \stepcounter{seqcount}
- % the output
- \edef\seqformat{\theseqcount}
- % add subsection number
- \ifsubsectionsineq
- \let\tmp\seqformat
- \edef\seqformat{\thesubsectioncount.\tmp}
- \fi
- % add section number
- \ifsectionsineq
- \let\tmp\seqformat
- \edef\seqformat{\sectionprefix\thesectioncount.\tmp}
- \fi
- % define tag (for \label)
- \xdef\tag{\seqformat}
- % write number
- \marginnote{\hfill(\seqformat)}
-}
-%% equation environment compatibility
-\def\equation{\hrefanchor$$\seqcount}
-\def\endequation{$$\@ignoretrue}
-
-
-%% figures
-% counter
-\newcounter{figcount}
-% booleans (write section or subsection in equation number)
-\newif\ifsectionsinfig
-\newif\ifsubsectionsinfig
-% width of figures
-\newlength\figwidth
-\setlength\figwidth\textwidth
-\addtolength\figwidth{-2.5cm}
-% caption
-\def\defcaption{
- \long\def\caption##1{
- \stepcounter{figcount}
-
- % hyperref anchor
- \hrefanchor
-
- % the number of the figure
- \edef\figformat{\thefigcount}
- % add subsection number
- \ifsubsectionsinfig
- \let\tmp\figformat
- \edef\figformat{\thesubsectioncount.\tmp}
- \fi
- % add section number
- \ifsectionsinfig
- \let\tmp\figformat
- \edef\figformat{\sectionprefix\thesectioncount.\tmp}
- \fi
-
- % define tag (for \label)
- \xdef\tag{\figformat}
-
- % write
- \hfil fig \figformat: \parbox[t]{\figwidth}{\leavevmode\small##1}
-
- % space
- \par\bigskip
- }
-}
-%% short caption: centered
-\def\captionshort#1{
- \stepcounter{figcount}
-
- % hyperref anchor
- \hrefanchor
-
- % the number of the figure
- \edef\figformat{\thefigcount}
- % add section number
- \ifsectionsinfig
- \let\tmp\figformat
- \edef\figformat{\sectionprefix\thesectioncount.\tmp}
- \fi
-
- % define tag (for \label)
- \xdef\tag{\figformat}
-
- % write
- \hfil fig \figformat: {\small#1}
-
- %space
- \par\bigskip
-}
-
-%% environment
-\def\figure{
- \par
- \vfil\penalty100\vfilneg
- \bigskip
-}
-\def\endfigure{
- \par
- \bigskip
-}
-
-
-%% start appendices
-\def\appendix{
- \vfill
- \pagebreak
-
- % counter
- \setcounter{sectioncount}0
-
- % prefix
- \def\sectionprefix{A}
-
- % write
- {\bf \LARGE Appendices}\par\penalty10000\bigskip\penalty10000
-
- % add a mention in the table of contents
- \iftoc
- \immediate\write\tocoutput{\noexpand\tocappendices}\penalty10000
- \fi
-
- %% uncomment for new page for each appendix
- %\def\seqskip{\vfill\pagebreak}
-}
-
-
-%% bibliography
-% size of header
-\newlength\bibheader
-\def\thebibliography#1{
- \hrefanchor
-
- % add a mention in the table of contents
- \iftoc
- % save lncount in aux variable which is written to toc
- \immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@references\endcsname{\thelncount}}
- \write\tocoutput{\noexpand\tocreferences{\thepage}}\penalty10000
- \fi
-
- % write
- {\bf \LARGE References}\par\penalty10000\bigskip\penalty10000
- % width of header
- \settowidth\bibheader{[#1]}
- \leftskip\bibheader
-}
-% end environment
-\def\endthebibliography{
- \par\leftskip0pt
-}
-
-%% bibitem command
-\def\bibitem[#1]#2{%
- \hrefanchor%
- \outdef{label@cite#2}{#1}%
- \hskip-\bibheader%
- \makebox[\bibheader]{\cite{#2}\hfill}%
-}
-
-%% cite command (adapted from latex.ltx)
-% @tempswa is set to true when there is an optional argument
-\newif\@tempswa
-\def\cite{%
- % check whether there is an optional argument (if there is none, add on empty '[]')
- \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}%
-}
-% command with optional argument
-\def\@citex[#1]#2{\leavevmode%
- % initialize loop
- \let\@citea\@empty%
- % format
- \@cite{%
- % loop over ',' separated list
- \@for\@citeb:=#2\do{%
- % text to add at each iteration of the loop (separator between citations)
- \@citea\def\@citea{,\ }%
- % add entry to citelist
- \@writecitation{\@citeb}%
- \ref{cite\@citeb}%
- }%
- }%
- % add optional argument text (as an argument to '\@cite')
- {#1}%
-}
-\def\@cite#1#2{%
- [#1\if@tempswa , #2\fi]%
-}
-%% add entry to citelist after checking it has not already been added
-\def\@writecitation#1{%
- \ifcsname if#1cited\endcsname%
- \else%
- \expandafter\newif\csname if#1cited\endcsname%
- \immediate\write\@auxout{\string\citation{#1}}%
- \fi%
-}
-
-%% table of contents
-% boolean
-\newif\iftoc
-\def\tableofcontents{
- {\bf \large Table of contents:}\par\penalty10000\bigskip\penalty10000
-
- % copy content from file
- \IfFileExists{\jobname.toc}{\input{\jobname.toc}}{{\tt error: table of contents missing}}
-
- % open new toc
- \newwrite\tocoutput
- \immediate\openout\tocoutput=\jobname.toc
-
- \toctrue
-}
-%% close file
-\AtEndDocument{
- % close toc
- \iftoc
- \immediate\closeout\tocoutput
- \fi
-}
-
-
-%% fill line with dots
-\def\leaderfill{\leaders\hbox to 1em {\hss. \hss}\hfill}
-
-%% same as sectionprefix
-\def\tocsectionprefix{}
-
-%% toc formats
-\newcounter{tocsectioncount}
-\def\tocsection #1#2{
- \stepcounter{tocsectioncount}
- \setcounter{tocsubsectioncount}{0}
- \setcounter{tocsubsubsectioncount}{0}
- % write
- \smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt {\color{blue}#1}\leaderfill#2}\par
-}
-\newcounter{tocsubsectioncount}
-\def\tocsubsection #1#2{
- \stepcounter{tocsubsectioncount}
- \setcounter{tocsubsubsectioncount}{0}
- % write
- {\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
-}
-\newcounter{tocsubsubsectioncount}
-\def\tocsubsubsection #1#2{
- \stepcounter{tocsubsubsectioncount}
- % write
- {\hskip20pt\hyperlink{ln.\csname toc@subsubsec.\thetocsectioncount.\thetocsubsectioncount.\thetocsubsubsectioncount\endcsname}{{\bf \thetocsubsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
-}
-\def\tocappendices{
- \medskip
- \setcounter{tocsectioncount}0
- {\bf Appendices}\par
- \smallskip
- \def\tocsectionprefix{A}
-}
-\def\tocreferences#1{
- \medskip
- {\hyperlink{ln.\csname toc@references\endcsname}{{\color{blue}\bf References}\leaderfill#1}}\par
- \smallskip
-}
-
-
-%% definitions that must be loaded at begin document
-\let\ian@olddocument\document
-\def\document{
- \ian@olddocument
-
- \deflabel
- \defcaption
-}
-
-%% end
-\ian@defaultoptions
-\endinput