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