Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'iansecs.sty')
-rw-r--r--iansecs.sty183
1 files changed, 168 insertions, 15 deletions
diff --git a/iansecs.sty b/iansecs.sty
index 5e0408e..0eaff3f 100644
--- a/iansecs.sty
+++ b/iansecs.sty
@@ -34,6 +34,22 @@
%% style for the equation number
\def\eqnumstyle{}
+%% correct vertical alignment at the end of a document
+\AtEndDocument{
+ \vfill
+ \eject
+}
+
+%% prevent page breaks
+\newcount\prevpostdisplaypenalty
+\def\nopagebreakaftereq{
+ \prevpostdisplaypenalty=\postdisplaypenalty
+ \postdisplaypenalty=10000
+}
+\def\restorepagebreakaftereq{
+ \postdisplaypenalty=\prevpostdisplaypenalty
+}
+
%% hyperlinks
% hyperlinkcounter
\newcounter{lncount}
@@ -58,14 +74,24 @@
%% 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%
-\safe\csname #1\endcsname%
+\ifcsname label@#1\endcsname%
+{\color{blue}\csname #1\endcsname}%
+\else%
+{\bf ??}%
+\fi%
\fi%
}
}
@@ -133,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)
@@ -161,6 +185,64 @@
\medskip\penalty10000%
}
+%% itemize
+\newlength\itemizeskip
+% left margin for items
+\setlength\itemizeskip{20pt}
+% item symbol
+\def\itemizept{\textbullet}
+\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\penalty\itemizepenalty\medskip\penalty\itemizepenalty
+ \addtolength\current@itemizeskip{\itemizeskip}
+ \leftskip\current@itemizeskip
+}
+\def\enditemize{
+ \addtolength\current@itemizeskip{-\itemizeskip}
+ \par\leftskip\current@itemizeskip
+ \medskip
+}
+\newlength\itempt@total
+\def\item{
+ \settowidth\itempt@total{\itemizept}
+ \addtolength\itempt@total{\itemizeseparator}
+ \par
+ \medskip
+ \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}
@@ -188,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}
@@ -224,7 +317,7 @@
\setlength\figwidth\textwidth
\addtolength\figwidth{-2.5cm}
-\def\figcount#1{%
+\def\caption#1{%
\stepcounter{figcount}%
% hyperref anchor
\hrefanchor%
@@ -238,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%
}
@@ -249,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}
@@ -276,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{%
@@ -340,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#3{
+\def\tocsubsection #1#2{
\stepcounter{tocsubsectioncount}
% write
- {\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\small #1}\leaderfill#3}}\par
+ {\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
}
\def\tocappendices{
\medskip
@@ -356,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
}