diff options
Diffstat (limited to 'iansecs.sty')
-rw-r--r-- | iansecs.sty | 144 |
1 files changed, 128 insertions, 16 deletions
diff --git a/iansecs.sty b/iansecs.sty index ee6ab04..24894ad 100644 --- a/iansecs.sty +++ b/iansecs.sty @@ -40,6 +40,16 @@ \eject } +%% prevent page breaks +\newcount\prevpostdisplaypenalty +\def\nopagebreakaftereq{ + \prevpostdisplaypenalty=\postdisplaypenalty + \postdisplaypenalty=10000 +} +\def\restorepagebreakaftereq{ + \postdisplaypenalty=\prevpostdisplaypenalty +} + %% hyperlinks % hyperlinkcounter \newcounter{lncount} @@ -64,15 +74,21 @@ %% define a label for the latest tag %% label defines a command containing the string stored in \tag \AtBeginDocument{ - \def\label#1{\expandafter\outdef{#1}{\safe\tag}} + \def\label#1{\expandafter\outdef{label@#1}{\safe\tag}} + +%% make a custom link at any given location in the document +\def\makelink#1#2{ + \hrefanchor + \outdef{label@#1}{#2} +} \def\ref#1{% % check whether the label is defined (hyperlink runs into errors if this check is ommitted) -\ifcsname #1@hl\endcsname% -\hyperlink{ln.\csname #1@hl\endcsname}{\safe\csname #1\endcsname}% +\ifcsname label@#1@hl\endcsname% +\hyperlink{ln.\csname label@#1@hl\endcsname}{{\color{blue}\safe\csname label@#1\endcsname}}% \else% -\ifcsname #1\endcsname% -\csname #1\endcsname% +\ifcsname label@#1\endcsname% +{\color{blue}\csname #1\endcsname}% \else% {\bf ??}% \fi% @@ -143,11 +159,9 @@ \ifsubseqcount% \setcounter{seqcount}0% \fi% -% space before subsection (if not first) -\ifnum\thesubsectioncount>1% +% space before subsection \subseqskip% \penalty-500% -\fi% % hyperref anchor \hrefanchor % define tag (for \label) @@ -180,11 +194,13 @@ \newlength\itemizeseparator % space between the item symbol and the text \setlength\itemizeseparator{5pt} +% penalty preceding an itemize +\def\itemizepenalty{0} \newlength\current@itemizeskip \setlength\current@itemizeskip{0pt} \def\itemize{ - \par\medskip + \par\penalty\itemizepenalty\medskip\penalty\itemizepenalty \addtolength\current@itemizeskip{\itemizeskip} \leftskip\current@itemizeskip } @@ -202,6 +218,31 @@ \hskip-\itempt@total\itemizept\hskip\itemizeseparator } +%% 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 +} + %% points \def\point{ \stepcounter{pointcount} @@ -229,6 +270,17 @@ % define tag (for \label) \xdef\tag{\thepointcount-\thesubpointcount-\thesubsubpointcount} } +\def\pspoint{ + \stepcounter{pointcount} + \stepcounter{subpointcount} + \setcounter{subsubpointcount}0 + % hyperref anchor + \hrefanchor + \indent\hskip.5cm{\bf \thepointcount-\thesubpointcount\ - } + % define tag (for \label) + \xdef\tag{\thepointcount-\thesubpointcount} +} + % reset points \def\resetpointcounter{ \setcounter{pointcount}{0} @@ -265,7 +317,7 @@ \setlength\figwidth\textwidth \addtolength\figwidth{-2.5cm} -\def\figcount#1{% +\def\caption#1{% \stepcounter{figcount}% % hyperref anchor \hrefanchor% @@ -279,7 +331,25 @@ % define tag (for \label) \xdef\tag{\figformat}% % write -\hfil fig \figformat: \parbox[t]{\figwidth}{\small#1}% +\hfil fig \figformat: \parbox[t]{\figwidth}{\leavevmode\small#1}% +\par\bigskip% +} +%% short caption: centered +\def\captionshort#1{% +\stepcounter{figcount}% +% hyperref anchor +\hrefanchor% +% the number of the figure +\edef\figformat{\thefigcount}% +% add section number +\ifsections% +\let\tmp\figformat% +\edef\figformat{\sectionprefix\thesectioncount.\tmp}% +\fi% +% define tag (for \label) +\xdef\tag{\figformat}% +% write +\hfil fig \figformat: {\small#1}% \par\bigskip% } @@ -290,10 +360,48 @@ \def\endfigure{ \par\penalty-1000 } -\let\caption\figcount %% 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} +\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% +% hyperref anchor +\hrefanchor% +% define tag (for \label) +\xdef\tag{#1}% +\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} + \def\delim{\par\leavevmode\raise.3em\hbox to\hsize{\vrule height0.3em\hrulefill\vrule height0.3em}\par\penalty10000} \def\enddelim{\par\penalty10000\leavevmode\raise.3em\hbox to\hsize{\vrule height0.3em\hrulefill\vrule height0.3em}\par} @@ -317,6 +425,10 @@ \delimtitle{\bf #1 \formattheo} } \let\endtheo\enddelim +%% theorem headers with name +\def\theoname#1#2{ + \theo{#1}\hfil({\it #2})\par\penalty10000\medskip% +} %% start appendices \def\appendix{% @@ -381,12 +493,12 @@ \stepcounter{tocsectioncount} \setcounter{tocsubsectioncount}{0} % write - \smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt #1\leaderfill#2}\par + \smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt {\color{blue}#1}\leaderfill#2}\par } \def\tocsubsection #1#2{ \stepcounter{tocsubsectioncount} % write - {\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\small #1}\leaderfill#2}}\par + {\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par } \def\tocappendices{ \medskip @@ -397,6 +509,6 @@ } \def\tocreferences#1{ \medskip - {\hyperlink{ln.\csname toc@references\endcsname}{{\bf References}\leaderfill#1}}\par + {\hyperlink{ln.\csname toc@references\endcsname}{{\color{blue}\bf References}\leaderfill#1}}\par \smallskip } |