Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'iansecs.sty')
-rw-r--r--iansecs.sty144
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
}