diff options
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/constants.sty | 32 | ||||
| -rw-r--r-- | libs/ian.cls | 670 | ||||
| -rw-r--r-- | libs/iantheo.sty | 162 | ||||
| -rw-r--r-- | libs/largearray.sty | 19 | ||||
| -rw-r--r-- | libs/point.sty | 106 | ||||
| -rw-r--r-- | libs/symbols.sty | 120 | 
6 files changed, 1109 insertions, 0 deletions
| diff --git a/libs/constants.sty b/libs/constants.sty new file mode 100644 index 0000000..d15deb5 --- /dev/null +++ b/libs/constants.sty @@ -0,0 +1,32 @@ +%% +%% constants package: +%%   automatically numbered constants +%% + +%% TeX format +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +%% package name +\ProvidesPackage{constants}[2016/11/19] + +%% declare new constant +\def\cst#1#2{% +  % check whether the constant was defined +  \ifcsname cst@#1@#2\endcsname% +    #1_{\csname cst@#1@#2\endcsname}% +  \else% +    % check whether this character has a counter associated to it +    \ifcsname thecst@#1@@count\endcsname% +    \else% +      \newcounter{cst@#1@@count}% +    \fi% +    % increment counter +    \stepcounter{cst@#1@@count}% +    \expandafter\xdef\csname cst@#1@#2\endcsname{\csname thecst@#1@@count\endcsname}#1_{\csname thecst@#1@@count\endcsname}% +  \fi +} + + +%% end +\endinput + diff --git a/libs/ian.cls b/libs/ian.cls new file mode 100644 index 0000000..416b856 --- /dev/null +++ b/libs/ian.cls @@ -0,0 +1,670 @@ +%% +%% 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 +  \vskip\subsecskip +  \penalty-500 + +  % 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 +  \vskip\subsubsecskip +  \penalty-500 + +  % 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 diff --git a/libs/iantheo.sty b/libs/iantheo.sty new file mode 100644 index 0000000..d33a93d --- /dev/null +++ b/libs/iantheo.sty @@ -0,0 +1,162 @@ +%% +%% iantheorem package: +%%   Ian's customized theorem command +%% + +%% boolean to signal that this package was loaded +\newif\ifiantheo + +%% TeX format +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +%% package name +\ProvidesPackage{iantheo}[2016/11/10] + +%% options +\newif\ifsectionintheo +\DeclareOption{section_in_theo}{\sectionintheotrue} +\DeclareOption{no_section_in_theo}{\sectionintheofalse} +\newif\ifsubsectionintheo +\DeclareOption{subsection_in_theo}{\subsectionintheotrue} +\DeclareOption{no_subsection_in_theo}{\subsectionintheofalse} + +\def\iantheo@defaultoptions{ +  \ExecuteOptions{section_in_theo, no_subsection_in_theo} +  \ProcessOptions + +  %%% reset at every new section +  \ifsectionintheo +    \let\iantheo@oldsection\section +    \gdef\section{\setcounter{theocount}{0}\iantheo@oldsection} +  \fi + +  %% reset at every new subsection +  \ifsubsectionintheo +    \let\iantheo@oldsubsection\subsection +    \gdef\subsection{\setcounter{theocount}{0}\iantheo@oldsubsection} +  \fi +} + + +%% delimiters +\def\delimtitle#1{ +  \par% +  \leavevmode% +  \raise.3em\hbox to\hsize{% +    \lower0.3em\hbox{\vrule height0.3em}% +    \hrulefill% +    \ \lower.3em\hbox{#1}\ % +    \hrulefill% +    \lower0.3em\hbox{\vrule height0.3em}% +  }% +  \par\penalty10000% +} + +%% callable by ref +\def\delimtitleref#1{ +  \par% +% +  \ifdefined\ianclass% +    % hyperref anchor% +    \hrefanchor% +    % define tag (for \label)% +    \xdef\tag{#1}% +  \fi% +% +  \leavevmode% +  \raise.3em\hbox to\hsize{% +    \lower0.3em\hbox{\vrule height0.3em}% +    \hrulefill% +    \ \lower.3em\hbox{\bf #1}\ % +    \hrulefill% +    \lower0.3em\hbox{\vrule height0.3em}% +  }% +  \par\penalty10000% +} + +%% no title +\def\delim{ +  \par% +  \leavevmode\raise.3em\hbox to\hsize{% +    \lower0.3em\hbox{\vrule height0.3em}% +    \hrulefill% +    \lower0.3em\hbox{\vrule height0.3em}% +  }% +  \par\penalty10000% +} + +%% end delim +\def\enddelim{ +  \par\penalty10000% +  \leavevmode% +  \raise.3em\hbox to\hsize{% +    \vrule height0.3em\hrulefill\vrule height0.3em% +  }% +  \par% +} + + +%% theorem +% counter +\newcounter{theocount} +% booleans (write section or subsection in equation number) +\def\theo#1{ +  \stepcounter{theocount} +  \ifdefined\ianclass +    % hyperref anchor +    \hrefanchor +  \fi +  % the number +  \def\formattheo{\thetheocount} +  % add subsection number +  \ifsubsectionintheo +    \let\tmp\formattheo +    \edef\formattheo{\thesubsectioncount.\tmp} +  \fi +  % add section number +  \ifsectionintheo +    \let\tmp\formattheo +    \edef\formattheo{\sectionprefix\thesectioncount.\tmp} +  \fi +  % define tag (for \label) +  \xdef\tag{\formattheo} +  % write +  \delimtitle{\bf #1 \formattheo} +} +\let\endtheo\enddelim +%% theorem headers with name +\def\theoname#1#2{ +  \theo{#1}\hfil({\it #2})\par\penalty10000\medskip% +} + + +%% qed symbol +\def\qedsymbol{$\square$} +\def\qed{\penalty10000\hfill\penalty10000\qedsymbol} + + +%% compatibility with article class +\ifdefined\ianclasstrue +  \relax +\else +  \def\thesectioncount{\thesection} +  \def\thesubsectioncount{\thesubsection} +  \def\sectionprefix{} +\fi + + +%% prevent page breaks after displayed equations +\newcount\prevpostdisplaypenalty +\def\nopagebreakaftereq{ +  \prevpostdisplaypenalty=\postdisplaypenalty +  \postdisplaypenalty=10000 +} +%% back to previous value +\def\restorepagebreakaftereq{ +  \postdisplaypenalty=\prevpostdisplaypenalty +} + + +%% end +\iantheo@defaultoptions +\endinput diff --git a/libs/largearray.sty b/libs/largearray.sty new file mode 100644 index 0000000..ad5753b --- /dev/null +++ b/libs/largearray.sty @@ -0,0 +1,19 @@ +%% +%% largearray package: +%%   Array spanning the entire line +%% + +%% TeX format +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +%% package name +\ProvidesPackage{largearray}[2016/11/10] + +\RequirePackage{array} + +%% array spanning the entire line +\newlength\largearray@width +\setlength\largearray@width\textwidth +\addtolength\largearray@width{-10pt} +\def\largearray{\begin{array}{@{}>{\displaystyle}l@{}}\hphantom{\hspace{\largearray@width}}\\[-.5cm]} +\def\endlargearray{\end{array}} diff --git a/libs/point.sty b/libs/point.sty new file mode 100644 index 0000000..9f983dc --- /dev/null +++ b/libs/point.sty @@ -0,0 +1,106 @@ +%% +%% Points package: +%%   \point commands +%% + +%% TeX format +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +%% package name +\ProvidesPackage{point}[2017/06/13] + +%% options +\newif\ifresetatsection +\DeclareOption{reset_at_section}{\resetatsectiontrue} +\DeclareOption{no_reset_at_section}{\resetatsectionfalse} +\newif\ifresetatsubsection +\DeclareOption{reset_at_subsection}{\resetatsubsectiontrue} +\DeclareOption{no_reset_at_subsection}{\resetatsubsectionfalse} +\newif\ifresetattheo +\DeclareOption{reset_at_theo}{\resetattheotrue} +\DeclareOption{no_reset_at_theo}{\resetattheofalse} + +\def\point@defaultoptions{ +  \ExecuteOptions{reset_at_section, reset_at_subsection, no_reset_at_theo} +  \ProcessOptions + +  %% reset at every new section +  \ifresetatsection +    \let\point@oldsection\section +    \gdef\section{\resetpointcounter\point@oldsection} +  \fi +  %% reset at every new subsection +  \ifresetatsubsection +    \let\point@oldsubsection\subsection +    \gdef\subsection{\resetpointcounter\point@oldsubsection} +  \fi + +  %% reset at every new theorem +  \ifresetattheo +    \ifdefined\iantheotrue +      \let\point@oldtheo\theo +      \gdef\theo{\resetpointcounter\point@oldtheo} +    \fi +  \fi +} + + +%% point +% counter +\newcounter{pointcount} +\def\point{ +  \stepcounter{pointcount} +  \setcounter{subpointcount}{0} +  % hyperref anchor (only if the class is 'ian') +  \ifdefined\ifianclass +    \hrefanchor +    % define tag (for \label) +    \xdef\tag{\thepointcount} +  \fi +  % header +  \indent{\bf \thepointcount\ - } +} + +%% subpoint +% counter +\newcounter{subpointcount} +\def\subpoint{ +  \stepcounter{subpointcount} +  \setcounter{subsubpointcount}0 +  % hyperref anchor (only if the class is 'ian') +  \ifdefined\ifianclass +    \hrefanchor +    % define tag (for \label) +    \xdef\tag{\thepointcount-\thesubpointcount} +  \fi +  % header +  \indent\hskip.5cm{\bf \thepointcount-\thesubpointcount\ - } +} + +%% subsubpoint +% counter +\newcounter{subsubpointcount} +\def\subsubpoint{ +  \stepcounter{subsubpointcount} +  % hyperref anchor (only if the class is 'ian') +  \ifdefined\ifianclass +    \hrefanchor +    % define tag (for \label) +    \xdef\tag{\thepointcount-\thesubpointcount-\thesubsubpointcount} +  \fi +  \indent\hskip1cm{\bf \thepointcount-\thesubpointcount-\thesubsubpointcount\ - } +} + + +%% reset point counters +\def\resetpointcounter{ +  \setcounter{pointcount}{0} +  \setcounter{subpointcount}{0} +  \setcounter{subsubpointcount}{0} +} + + + +%% end +\point@defaultoptions +\endinput diff --git a/libs/symbols.sty b/libs/symbols.sty new file mode 100644 index 0000000..8583aed --- /dev/null +++ b/libs/symbols.sty @@ -0,0 +1,120 @@ +\let\a=\alpha +\let\b=\beta +\let\g=\gamma +\let\d=\delta +\let\e=\varepsilon +\let\z=\zeta +\let\h=\eta +\let\th=\theta +\let\k=\kappa +\let\l=\lambda +\let\m=\mu +\let\n=\nu +\let\x=\xi +\let\p=\pi +\let\r=\rho +\let\s=\sigma +\let\t=\tau +\let\f=\varphi +\let\ph=\varphi +\let\c=\chi +\let\ps=\psi +\let\y=\upsilon +\let\o=\omega +\let\si=\varsigma +\let\G=\Gamma +\let\D=\Delta +\let\Th=\Theta +\let\L=\Lambda +\let\X=\Xi +\let\P=\Pi +\let\Si=\Sigma +\let\F=\Phi +\let\Ps=\Psi +\let\O=\Omega +\let\Y=\Upsilon + +\def\AAA{\mathcal A} +\def\XXX{\mathcal X} +\def\PPP{\mathcal P} +\def\HHH{\mathcal H} +\def\BBB{\mathcal B} +\def\III{\mathcal I} +\def\EE{\mathcal E} +\def\MM{\mathcal M} +\def\VV{\mathcal V} +\def\CC{\mathcal C} +\def\FF{\mathcal F} +\def\WW{\mathcal W} +\def\TT{\mathcal T} +\def\NN{\mathcal N} +\def\RR{\mathcal R} +\def\LL{\mathcal L} +\def\JJ{\mathcal J} +\def\OO{\mathcal O} +\def\DD{\mathcal D} +\def\GG{\mathcal G} +\def\SS{\mathcal S} +\def\KK{\mathcal K} +\def\UU{\mathcal U} +\def\QQ{\mathcal Q} + +\def\aaa{\mathbf a} +\def\bbb{\mathbf b} +\def\hhh{\mathbf h} +\def\hh{\mathbf h} +\def\HH{\mathbf H} +\def\AA{\mathbf A} +\def\qq{\mathbf q} +\def\BB{\mathbf B} +\def\YY{\mathbf Y} +\def\XX{\mathbf X} +\def\PP{\mathbf P} +\def\pp{\mathbf p} +\def\vv{\mathbf v} +\def\xx{\mathbf x} +\def\yy{\mathbf y} +\def\zz{\mathbf z} +\def\II{\mathbf I} +\def\ii{\mathbf i} +\def\jj{\mathbf j} +\def\kk{\mathbf k} +\def\bS{\mathbf S} +\def\mm{\mathbf m} +\def\Vn{\mathbf n} + +\def\ch{\chi} +\def\Exp{\mathrm exp} +\def\Log{\mathrm log} +\def\Ft{\varphi} +\def\E{H} + +\def\RRR{\mathbb R} +\def\ZZZ{\mathbb Z} + +\def\ss{\underline{\sigma}} + +\let\==\equiv +\let\io=\infty  +\let\0=\noindent +\def\media#1{\left<#1\right>} +\let\dpr=\partial +\def\sign{\mathrm{sign}} +\def\const{\mathrm{const}} +\def\wt{\widetilde} +\def\wh{\widehat} +\def\Val{\mathrm{Val}} +\let\ul=\underline +\def\lis{\overline} +\let\V=\mathbf +\def\be{\begin{equation}} +\def\ee{\end{equation}} +\def\bea{\begin{eqnarray}} +\def\eea{\end{eqnarray}} +\def\nn{\nonumber} + +\def\supp{\mathrm{supp}} +\def\dist{\mathrm{dist}} +\def\Ext{\mathrm{Ext}} +\def\Int{\mathrm{Int}} +\def\diam{\mathrm{diam}} | 
