From 3e9b9256adba8ed35ba4d4c678bd9b333d4069af Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 13 Jan 2006 00:01:37 +0000 Subject: pagenote git-svn-id: svn://tug.org/texlive/trunk@1166 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/pagenote/pagenote.sty | 182 ++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/pagenote/pagenote.sty (limited to 'Master/texmf-dist/tex/latex/pagenote') diff --git a/Master/texmf-dist/tex/latex/pagenote/pagenote.sty b/Master/texmf-dist/tex/latex/pagenote/pagenote.sty new file mode 100644 index 00000000000..65cba46709a --- /dev/null +++ b/Master/texmf-dist/tex/latex/pagenote/pagenote.sty @@ -0,0 +1,182 @@ +%% +%% This is file `pagenote.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pagenote.dtx (with options: `usc') +%% +%% ----------------------------------------------------------------- +%% Author: Peter Wilson (The Herries Press) herries dot press at earthlink dot net +%% Copyright 2004 Peter R. Wilson +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2003/06/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files listed in the README file. +%% ----------------------------------------------------------------- +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pagenote}[2004/09/27 v1.1 page/end notes] +\@ifclassloaded{memoir}{}{\RequirePackage{ifmtarg}} + +\newif\ifpnhaschapter +\@ifundefined{chapter}{\pnhaschapterfalse}{\pnhaschaptertrue} + +\providecommand{\f@rtoc}{} + +\newif\ifpnpageopt + \pnpageoptfalse +\newif\ifpncontopt + \pncontoptfalse + +\DeclareOption{page}{\pnpageopttrue} +\DeclareOption{continuous}{\pncontopttrue} +\ProcessOptions + +\ifpncontopt + \newcounter{pagenote} +\else + \ifpnhaschapter + \newcounter{pagenote}[chapter] + \else + \newcounter{pagenote}[section] + \fi +\fi +\renewcommand{\thepagenote}{\arabic{pagenote}} +\setcounter{pagenote}{0} +\newcounter{pnotesavechap} + \setcounter{pnotesavechap}{-1000} + +\newif\ifmakingpagenotes + \makingpagenotesfalse + +\newcommand*{\makepagenote}{% + \newwrite\@notefile + \immediate\openout\@notefile=\jobname.ent + \makingpagenotestrue + \def\pagenote{\@bsphack\begingroup + \@sanitize + \@wrpnote}% + \typeout{Writing note file \jobname.ent}% + \let\makepagenote\@empty} + +\newcommand{\immediate@protected@write}[3]{% + \begingroup + #2% + \let\protect\@unexpandable@protect + \edef\reserved@a{\immediate\write#1{#3}}% + \reserved@a + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi} + +\ifpnpageopt + \let\@pnwrite\protected@write +\else + \let\@pnwrite\immediate@protected@write +\fi + +\newcommand{\@wrpnote}[2][]{% + \refstepcounter{pagenote}% + \notenumintext{\thepagenote}% + \ifpnhaschapter + \ifnum\value{pnotesavechap}=\value{chapter}\else + \setcounter{pnotesavechap}{\value{chapter}}% + \addtonotes{\pagenotesubhead{\thechapter}{\f@rtoc}}% + \fi + \else + \ifnum\value{pnotesavechap}=\value{section}\else + \setcounter{pnotesavechap}{\value{section}}% + \addtonotes{\pagenotesubhead{\thesection}{}}% + \fi + \fi + \@pnwrite\@notefile{} + {\string\noteentry{\thepagenote}{#1}{#2}{\thepage}}% + \endgroup + \@esphack} + +\def\pagenote{\@bsphack\begingroup \@sanitize\@pagenote} + +\newcommand{\@pagenote}[2][]{\endgroup\@esphack} + +\newcommand{\addtonotes}[1]{% + \ifmakingpagenotes + \IfFileExists{\jobname.ent}{\@pnwrite\@notefile{}{#1}}{\pnofilewarn}% +\fi} + +\newcommand{\notenumintext}[1]{% + \textsuperscript{#1}} +\newcommand{\notenuminnotes}[1]{% + {\normalfont #1.} } +\newcommand{\noteentry}[4]{% + \prenoteinnotes + \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}% + \postnoteinnotes} + +\newcommand{\textinnotes}[1]{% + [#1] } +\newcommand{\noteidinnotes}[2]{% + \@ifmtarg{#2}{% + \notenuminnotes{#1}}{\textinnotes{#2}}} +\providecommand*{\pagename}{page} +\newcommand{\pageinnotes}[1]{% + \ifpnpageopt (\pagename\ #1) \fi} +\newcommand{\noteinnotes}[1]{#1} + +\newcommand{\prenoteinnotes}{\par\noindent} +\newcommand{\postnoteinnotes}{\par} + +\providecommand*{\notesname}{Notes} +\ifpnhaschapter + \newcommand*{\notedivision}{\chapter{\notesname}} +\else + \newcommand*{\notedivision}{\section{\notesname}} +\fi + +\newcommand*{\printnotes}{\@ifstar{\@sprintnotes}{\@printnotes}} +\newcommand*{\pnofilewarn}{% + \PackageWarning{pagenote}{There is no .ent file}} +\newcommand*{\@sprintnotes}{% + \ifmakingpagenotes + \notedivision +\IfFileExists{\jobname.ent}{% + \immediate\closeout\@notefile + \input{\jobname.ent}% + \immediate\openout\@notefile=\jobname.ent% + }{% + \pnofilewarn +}% +\fi} + +\newcommand*{\@printnotes}{% + \ifmakingpagenotes + \notedivision +\IfFileExists{\jobname.ent}{% + \immediate\closeout\@notefile + \input{\jobname.ent}% + }{% + \pnofilewarn +} +\fi} + +\providecommand*{\chaptername}{Chapter} +\providecommand*{\sectionname}{Section} +\ifpnhaschapter + \DeclareRobustCommand{\pagenotesubhead}[2]{% + \subsection*{\chaptername\ #1 #2}} +\else + \DeclareRobustCommand{\pagenotesubhead}[2]{% + \subsection*{\sectionname\ #1}} +\fi + +\endinput +%% +%% End of file `pagenote.sty'. -- cgit v1.2.3