summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-09 16:55:38 +0000
committerKarl Berry <karl@freefriends.org>2013-04-09 16:55:38 +0000
commitb029b3d5d1cba38f18a9e2bb6a0104edb1e70d08 (patch)
tree11f970b9475b128fc136c19d59f7b1b76d203344 /Master/texmf-dist
parentecb13406849d049696bb16a6b7f6f4a395055f89 (diff)
snotez (8apr13)
git-svn-id: svn://tug.org/texlive/trunk@29798 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/snotez/README30
-rw-r--r--Master/texmf-dist/doc/latex/snotez/snotez_en.pdfbin0 -> 406945 bytes
-rw-r--r--Master/texmf-dist/doc/latex/snotez/snotez_en.tex339
-rw-r--r--Master/texmf-dist/tex/latex/snotez/snotez.sty188
4 files changed, 557 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/snotez/README b/Master/texmf-dist/doc/latex/snotez/README
new file mode 100644
index 00000000000..b8a034dbac3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/snotez/README
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------
+the SNOTEZ package v0.2 2013/04/03
+
+ Sidenotes for LaTeX2e
+
+--------------------------------------------------------------------------
+Clemens Niederberger
+Web: https://bitbucket.org/cgnieder/snotez/
+E-Mail: contact@mychemistry.eu
+--------------------------------------------------------------------------
+Copyright 2012--2013 Clemens Niederberger
+
+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 this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clemens Niederberger.
+--------------------------------------------------------------------------
+The snotez package consists of the files
+ - snotez.sty, snotez_en.tex, snotez_en.pdf, README
+--------------------------------------------------------------------------
+If you have any ideas, questions, suggestions or bugs to report, please
+feel free to contact me.
+-------------------------------------------------------------------------- \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/snotez/snotez_en.pdf b/Master/texmf-dist/doc/latex/snotez/snotez_en.pdf
new file mode 100644
index 00000000000..3fbf28647f8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/snotez/snotez_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/snotez/snotez_en.tex b/Master/texmf-dist/doc/latex/snotez/snotez_en.tex
new file mode 100644
index 00000000000..259f09ddd30
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/snotez/snotez_en.tex
@@ -0,0 +1,339 @@
+% arara: pdflatex
+% arara: biber
+% arara: pdflatex
+% arara: pdflatex
+% --------------------------------------------------------------------------
+% the SNOTEZ package
+%
+% Sidenotes for LaTeX2e
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/snotez/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012--2013 Clemens Niederberger
+%
+% 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 this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The snotez package consists of the files
+% - snotez.sty, snotez_en.tex, snotez_en.pdf, README
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% in order to compile this documentation you need the document class
+% `cnpkgdoc' which you can get here:
+% https://bitbucket.org/cgnieder/cnpkgdoc/
+%
+\PassOptionsToPackage{supstfm=libertinesups}{superiors}
+\documentclass[toc=index,toc=bib,mpinclude]{cnpkgdoc}
+\setlength{\marginparwidth}{2\marginparwidth}
+\docsetup{
+ pkg={[footnote,perpage]snotez},
+ subtitle=sidenote support for \LaTeXe
+}
+\addcmds{
+ RaggedRight,
+ sidenote,setsidenotes,superiors@spaced,
+ textsu
+}
+% Layout:
+\cnpkgusecolorscheme{friendly}
+\renewcommand*\othersectionlevelsformat[3]{%
+ \textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{%
+ \textcolor{main}{\partname~\thepart\autodot}}
+\usepackage{fnpct}
+\AdaptNoteOpt\sidenote\multsidenote
+\pagestyle{headings}
+
+\usepackage[biblatex]{embrac}[2013/03/22]
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\usepackage{libertinehologopatch}
+\usepackage{ragged2e}
+
+\normalmarginpar
+
+% Index:
+\usepackage{imakeidx}
+\usepackage{filecontents}
+\begin{filecontents*}{\jobname.ist}
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ suffix_3p "\\nohyperpage{\\,ff.}"
+\end{filecontents*}
+\indexsetup{othercode=\footnotesize}
+\makeindex[options={-s \jobname.ist},intoc,columns=3]
+
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+\addbibresource{\jobname.bib}
+\begin{filecontents}{\jobname.bib}
+@package{pkg:chngcntr,
+ title = {\paket*{chngcntr}},
+ author = {Peter Wilson and Will Robertson},
+ date = {2009-09-02},
+ version = {1.0a},
+ url = {http://mirror.ctan.org/macros/latex/contrib/chngcntr}
+}
+@package{pkg:etoolbox,
+ title = {\paket*{etoolbox}},
+ author = {Philipp Lehman},
+ date = {2011-01-21},
+ version = {2.1},
+ url = {http://mirror.ctan.org/macros/latex/contrib/etoolbox}
+}
+@package{pkg:fnpct,
+ title = {\paket*{fnpct}},
+ author = {Clemens Niederberger},
+ date = {2013-04-07},
+ version = {0.2k},
+ url = {http://mirror.ctan.org/macros/latex/contrib/fnpct}
+}
+@package{pkg:marginnote,
+ title = {\paket*{marginnote}},
+ author = {Karkus Kohm},
+ date = {2012-03-29},
+ version = {1.1i},
+ url = {http://mirror.ctan.org/macros/latex/contrib/marginnote}
+}
+@package{cls:memoir,
+ title = {\klasse{memoir}},
+ author = {Lars Madsen and Peter Wilson},
+ date = {2011-03-06},
+ version = {3.6j patch 6.0g},
+ url = {http://mirror.ctan.org/macros/latex/contrib/memoir}
+}
+@package{pkg:perpage,
+ title = {\paket*{perpage}},
+ author = {David Kastrup},
+ date = {2006-07-15},
+ version = {1.12},
+ url = {http://mirror.ctan.org/macros/latex/contrib/perpage}
+}
+@package{pkg:pgfopts,
+ title = {\paket*{pgfopts}},
+ author = {Joseph Wright},
+ date = {2011-06-02},
+ version = {2.1},
+ url = {http://mirror.ctan.org/macros/latex/contrib/pgfopts}
+}
+@package{pkg:ragged2e,
+ title = {\paket*{ragged2e}},
+ author = {Martin Schröder},
+ date = {2009-05-21},
+ version = {2.1},
+ url = {http://mirror.ctan.org/macros/latex/contrib/ragged2e}
+}
+@package{pkg:sidenotes,
+ title = {\paket*{sidenotes}},
+ author = {Andy Thomas and Oliver Schebaum},
+ date = {2012-11-09},
+ version = {0.92},
+ url = {http://mirror.ctan.org/macros/latex/contrib/sidenotes}
+}
+@package{pkg:superiors,
+ title = {\paket*{superiors}},
+ author = {Michael Sharpe},
+ date = {2012-08-13},
+ version = {1.02},
+ url = {http://mirror.ctan.org/macros/latex/contrib/superiors}
+}
+@package{cls:tufte,
+ title = {\klasse{tufte-latex}},
+ author = {Kevin Godby and Bil Kleb and Bill Wood},
+ date = {2009-12-11},
+ version = {3.5.0},
+ url = {http://mirror.ctan.org/macros/latex/contrib/sidenotes}
+}
+\end{filecontents}
+
+\newcommand*\Default[1]{%
+ \hfill\llap{%
+ \ifblank{#1}
+ {(initially~empty)}
+ {Default:~\code{#1}}%
+ }\newline
+}
+
+\makeatletter
+\newcommand*\defaultsidenotes{%
+ \setsidenotes{
+ note-mark-format = \@textsuperscript{\normalfont##1},
+ text-format = \footnotesize
+ }}
+\setsidenotes{
+ note-mark-format=#1.,
+ text-mark-format=\textsu{\hspace*{\superiors@spaced}#1},
+ text-format+=\RaggedRight
+}
+\makeatother
+
+\begin{document}
+
+\section{License and Requirements}\label{sec:license}\secidx{License}
+\snotez is placed under the terms of the \LaTeX{} Project Public License,
+version 1.3 or later (\url{http://www.latex-project.org/lppl.txt}). It has the
+status ``maintained.''
+
+\snotez needs and loads the packages
+\paket*{etoolbox}\sidenote[-2\baselineskip][]{\textcite{pkg:etoolbox}},
+\paket*{pgfopts}\sidenote[-\baselineskip][]{\textcite{pkg:pgfopts}},
+\paket*{marginnote}\sidenote{\textcite{pkg:marginnote}} and
+\paket*{perpage}\sidenote{\textcite{pkg:perpage}}.
+\secidx*{License}
+
+\section{Motivation}
+This has just been an exercise on a lazy
+afternoon\sidenote[-2\baselineskip][]{\url{http://www.youtube.com/watch?v=PPRiaYH1iTk}}.
+Well, more or less at least. Since there already is Andy Thomas' \paket*{sidenotes}
+package\sidenote[-\baselineskip][]{\textcite{pkg:sidenotes}} there is probably
+no real need for \snotez. Moreover, the tufte classes\sidenote{\textcite{cls:tufte}}
+as well as \klasse{memoir}\sidenote{\textcite{cls:memoir}} also provide corresponding
+mechansims. Besides the fun I had my motivation was also based on the fact that
+I didn't like some smaller things (\emph{not} bugs) done by the \paket{sidenotes}
+package such as inserting kerns and superscripted commas for multiple marks. I
+prefer to let my \paket*{fnpct}\sidenote{\textcite{pkg:fnpct}} package handle
+these things. Anyways, here it is and it seems to be working as intended so I
+don't see a reason why it shouldn't be available for use.
+
+By the way: the \paket*{fnpct} package v0.2k and later knows about \snotez and
+automatically adapts the note commands.
+
+\section{Introduction}\secidx{Introduction}
+The \snotez Package introduces a \cmd{sidenote} command%
+\begingroup\defaultsidenotes
+\sidenote{This is an example demonstrating the default appearance.}
+\endgroup
+that typesets sidenotes the
+same way \cmd{footnote} typesets footnotes. It provides some options that allow
+formatting the appearance of the sidenotes\sidenote[\baselineskip][]{In all
+sidenotes in this document the mark is typeset on the baseline and the text is
+set ragged right.}. As a default sidenotes are typeset in a \cmd{marginpar} but
+there are possibilities using Markus Kohm's \paket{marginnote} package as well.
+
+As with footnotes it is possible to set mark and text separately using the
+equivalent commands \cmd{sidenotemark} and \cmd{sidenotetext}, respectively.
+Instead of code examples this documentation will use the \cmd{sidenote} macro
+itself extensively. It is assumend you know how to use \cmd{footnote} and are
+able to transfer your knowledge.
+\secidx*{Introduction}
+
+\section{Usage}\secidx{Usage}
+The basic usage is the very same as with \LaTeX's \cmd{footnote}, \cmd{footnotemark}
+and \cmd{footnotetext}. Unsurprisingly the presented commands are these:
+\begin{beschreibung}
+ \Befehl{sidenote}\oa{<mark>}\ma{<text>}\newline
+ The basic command. The sytnax is the very same as for \cmd{footnote}.
+ \Befehl{sidenote}\oa{<offset>}\oa{<mark>}\ma{<text>}\newline
+ Actually I lied: \cmd{sidenote} has a second option that smuggles itself
+ before the \oa{<mark>} option if you use it: an argument for a vertical offset
+ that takes a length. An empty second option assumes you want the automatic
+ mark. If you use this argument the note is set with the \cmd{marginnote}
+ command\sidenote[-\baselineskip][]{From the \paket{marginnote} package}.
+ Please see its documentation\sidenote{For example with \texttt{texdoc
+ marginnote} on your command line.}~\cite{pkg:marginnote} for the \oa{<offset>}
+ argument. \snotez only passes the value on. Only this much: a positive value
+ shifts the note \emph{down}.
+ \Befehl{sidenotemark}\oa{<text>}\newline
+ This command has the same purpose as \cmd{footnotemark} but for sidenotes.
+ \Befehl{sidenotetext}\oa{<mark>}\ma{<text>}\newline
+ The same as \cmd{footnotetext} but for sidenotes. Beware where you place it:
+ it calls \cmd{marginpar} or \cmd{marginnote} and thus determines where the
+ actual note is placed.
+ \Befehl{sidenotetext}\oa{<offset>}\oa{<mark>}\ma{<text>}\newline
+ I lied again: \cmd{sidenotetext} also has the second optional argument
+ \oa{<offset>} that again smuggles itself before the \oa{<mark>} option if you
+ use it. For details see the second description of the \cmd{sidenote} command.
+\end{beschreibung}
+I am not really sure the order of optional arguments makes much sense. If you
+have a better idea please let me know\sidenote[-\baselineskip][]{The fastest way:
+email me at\\\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}.}.
+\secidx*{Usage}
+
+\section{Options}\secidx{Options}
+Although all options can be used as package option you can also set all options
+(locally) with a setup command:
+\begin{beschreibung}
+ \Befehl{setsidenotes}{<options>}
+\end{beschreibung}
+Available options are these:
+\begin{beschreibung}
+ \Option{marginnote}{\default{true}|false}\Default{false}
+ Use \paket{marginnote}'s \cmd{marginnote}~\cite{pkg:marginnote} for all
+ \cmd{sidenote}s. In the default setting \cmd{sidenote} uses \cmd{marginpar}s
+ to set the sidenote unless you use the \oa{<offset>} argument. If you use
+ this option \emph{all} sidenotes are set with \cmd{marginnote}. \emph{This
+ option can only be used in the preamble}.
+ \Option{text-format}{<code>}\Default{\cmd*{footnotesize}}
+ The format of the sidenote text.
+ \Option{text-format+}{<code>}\Default{}
+ Code to be appended to the format set with \key{text-format}\sidenote{This
+ document, for example, appends \paket*{ragged2e}'s \cmd*{RaggedRight}~\cite{pkg:ragged2e}
+ to the sidenote's format.}.
+ \Option{perpage}{\default{true}|false}\Default{false}
+ Make sidenotes counter per page. \emph{This option can only be set in the
+ preamble}. It uses package \paket{perpage}'s \cmd*{MakeSortedPerPage} macro
+ for the task. This documentation is an example for the use of the option.
+ In the default setting sidenotes are counted per chapter. If you want sidenotes
+ counted document-wise together with a class that defines a counter \code{chapter}
+ then use for example the package \paket*{chngcntr}~\cite{pkg:chngcntr} and issue
+ \cmd*{counterwithout}{sidenote}\ma{chapter} after loading \snotez.
+ \Option{note-mark-sep}{<code>}\Default{\cmd*{space}}
+ The separator between sidenote mark and sidenote text in the sidenote.
+ \Option{note-mark-format}{<code>}\Default{\cmd*{@textsuperscript}\{\cmd*{normalfont}\#1\}}
+ The format of the sidenote mark in the sidenote. Please refer to the actual
+ mark with \code{\#1}.
+ \Option{text-mark-format}{<code>}\Default{\cmd*{@textsuperscript}\{\cmd*{normalfont}\#1\}}
+ The format of the sidenote mark in the text\sidenote[-\baselineskip][]{This
+ document uses Michael Sharpe's \paket*{superiors} package~\cite{pkg:superiors}
+ and redefines the mark formats to use its \cmd*{textsu} command.}. Please refer
+ to the actual mark with \code{\#1}.
+ \Option{footnote}{\default{true}|false}\Default{false}
+ Let\sidenote[\baselineskip][]{In the sense of \cmd*{let}} \cmd{footnote} to be \cmd{sidenote},
+ \cmd{footnotemark} to be \cmd{sidenotemark} and \cmd{footnotetext} to be
+ \cmd{sidenotetext}. \emph{This option can only be used in the preamble}.
+\end{beschreibung}
+
+As a short example this is how the sidenotes for this document are formatted:
+\begin{beispiel}[code only]
+\setsidenotes{
+ note-mark-format=#1.,
+ text-mark-format=\textsu{\hspace*{\superiors@spaced}#1},
+ text-format+=\RaggedRight
+}
+\end{beispiel}
+\secidx*{Options}
+
+\setlength{\linewidth}{\dimexpr\textwidth+.5\marginparwidth}
+\printbibliography
+
+\section{Implementation}
+In the following code the lines 1--30 have been omitted. They only repeat the
+license statement which has already been mentioned in section~\ref{sec:license}.
+
+\implementation[linerange={31-179},firstnumber=31]
+
+\normalsize
+\printindex
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/snotez/snotez.sty b/Master/texmf-dist/tex/latex/snotez/snotez.sty
new file mode 100644
index 00000000000..9104f4c06f1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/snotez/snotez.sty
@@ -0,0 +1,188 @@
+% --------------------------------------------------------------------------
+% the SNOTEZ package
+%
+% Sidenotes for LaTeX2e
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/enotez/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012--2013 Clemens Niederberger
+%
+% 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 this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The snotez package consists of the files
+% - snotez.sty, snotez_en.tex, snotez_en.pdf, README
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{snotez}[2013/04/03 v0.2 sidenote support for LaTeX 2e (CN)]
+
+\RequirePackage{etoolbox,pgfopts,marginnote,perpage}
+
+% --------------------------------------------------------------------------
+% package options:
+\newbool{snotez@marginnote}
+\newbool{snotez@perpage}
+\newbool{snotez@footnote}
+
+\def\snotez@note@mark@sep{\space}
+\def\snotez@note@mark@format#1{\@textsuperscript{\normalfont#1}}
+\def\snotez@format{\footnotesize}
+\def\snotez@text@mark@format#1{\@textsuperscript{\normalfont#1}}
+
+\pgfkeys{
+ snotez/.cd,
+ % all sidenotes use \marginnote:
+ marginnote/.is if = snotez@marginnote ,
+ text-format/.code = \def\snotez@format{#1} ,
+ text-format+/.code =
+ \expandafter\def\expandafter\snotez@format\expandafter{\snotez@format#1} ,
+ % make sidenotes counted per page:
+ perpage/.is if = snotez@perpage ,
+ note-mark-sep/.code = \def\snotez@note@mark@sep{#1} ,
+ note-mark-format/.code = \def\snotez@note@mark@format##1{#1} ,
+ text-mark-format/.code = \def\snotez@text@mark@format##1{#1} ,
+ % make all footnotes sidenotes:
+ footnote/.is if = snotez@footnote
+}
+
+\ProcessPgfOptions*
+
+\newrobustcmd\setsidenotes[1]{\pgfqkeys{/snotez}{#1}}
+
+% --------------------------------------------------------------------------
+% the \sidenote command
+% syntax:
+% - \sidenote{text}
+% - \sidenote[mark]{text}
+% - \sidenote[offset][mark]{text}
+\newrobustcmd*\sidenote{%
+ \@ifnextchar[%
+ {\snotez@sidenote@aux@i}
+ {\snotez@sidenote@aux@ii{}[]}}% no option
+
+\def\snotez@sidenote@aux@i[#1]{%
+ \@ifnextchar[%
+ {\snotez@sidenote@aux@ii{#1}}% two options
+ {\snotez@sidenote@aux@ii{}[#1]}}% one option
+
+% #1: offset
+% #2: mark
+% #3: text
+\long\def\snotez@sidenote@aux@ii#1[#2]#3{%
+ \snotez@mark{#2}%
+ \snotez@text{#1}{#3}}
+
+% this one is very much \@footnotemark from latex.ltx:
+\def\snotez@write@mark#1{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ #1%
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+\def\snotez@mark#1{%
+ \ifblank{#1}% or \ifstrempty?
+ {\refstepcounter{sidenote}\protected@xdef\@the@snotez@mark{\thesidenote}}
+ {\protected@edef\@currentlabel{#1}\protected@xdef\@the@snotez@mark{#1}}%
+ \snotez@write@mark{\hbox{\snotez@text@mark@format{\@the@snotez@mark}}}%
+}
+
+\ifcsdef{c@chapter}
+ {\newcounter{sidenote}[chapter]}
+ {\newcounter{sidenote}}
+
+% --------------------------------------------------------------------------
+% the \sidenotemark command
+\newrobustcmd*\sidenotemark[1][]{\snotez@mark{#1}}
+
+% --------------------------------------------------------------------------
+% the \sidenotetext command
+% syntax:
+% - \sidenotetext{text}
+% - \sidenotetext[mark]{text}
+% - \sidenotetext[offset][mark]{text}
+\newrobustcmd*\sidenotetext{%
+ \@ifnextchar[%
+ {\snotez@sidenotetext@aux@i}
+ {\snotez@sidenotetext@aux@ii{}[]}}% no option
+
+\def\snotez@sidenotetext@aux@i[#1]{%
+ \@ifnextchar[%
+ {\snotez@sidenotetext@aux@ii{#1}}% two options
+ {\snotez@sidenotetext@aux@ii{}[#1]}}% one option
+
+% #1: offset
+% #2: mark
+% #3: text
+\long\def\snotez@sidenotetext@aux@ii#1[#2]#3{%
+ \ifblank{#2}{}{\protected@xdef\@the@snotez@mark{#2}}%
+ \snotez@text{#1}{#3}}
+
+% #1: offset
+% #2: text
+\def\snotez@text#1#2{%
+ \ifblank{#1}
+ {%
+ \snotez@marginpar{%
+ \snotez@format
+ \snotez@write@mark{\snotez@note@mark@format{\@the@snotez@mark}}%
+ \snotez@note@mark@sep#2}%
+ }
+ {%
+ \snotez@marginnote{%
+ \snotez@format
+ \snotez@write@mark{\snotez@note@mark@format{\@the@snotez@mark}}%
+ \snotez@note@mark@sep#2}[#1]%
+ }}
+
+\let\snotez@marginpar\marginpar
+\let\snotez@marginnote\marginnote
+
+% --------------------------------------------------------------------------
+% process preamble options:
+\AtBeginDocument{
+ % if option `footnote=true' let \footnote to \sidenote:
+ \ifbool{snotez@footnote}
+ {
+ \let\footnote\sidenote
+ \let\footnotemark\sidenotemark
+ \let\footnotetext\sidenotetext
+ }{}
+ % if option `marginnote=true' use \marginnote for all notes:
+ \ifbool{snotez@marginnote}
+ {\let\snotez@marginpar\marginnote}
+ {}
+}
+\AtEndPreamble{
+ % if option `perpage=true' count notes per page:
+ \ifbool{snotez@perpage}
+ {\MakeSortedPerPage{sidenote}}
+ {\MakeSorted{sidenote}}
+}
+
+\endinput
+
+% --------------------------------------------------------------------------
+% HISTORY:
+2012/11/15 v0.1 - first version
+2013/04/03 v0.2 - documentation, removed erroneous `fnpct' adaption, other
+ minor changes
+ - added update of \@currentlabel when a custom mark is used
+
+% --------------------------------------------------------------------------
+% TODO \ No newline at end of file