diff options
author | Karl Berry <karl@freefriends.org> | 2016-08-15 20:38:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-08-15 20:38:10 +0000 |
commit | 6cf79a03641bce0310d2a380e33a2684780c8c19 (patch) | |
tree | 24aa9337e21041c00876970b8b8d8401afb15691 /Master/texmf-dist/tex | |
parent | 4ea3f68117e6dfff2f7a167f38406403896db33d (diff) |
phfnote (16aug16)
git-svn-id: svn://tug.org/texlive/trunk@41858 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/phfnote/phfnote.sty | 1028 |
1 files changed, 1028 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/phfnote/phfnote.sty b/Master/texmf-dist/tex/latex/phfnote/phfnote.sty new file mode 100644 index 00000000000..7c2590f1b9d --- /dev/null +++ b/Master/texmf-dist/tex/latex/phfnote/phfnote.sty @@ -0,0 +1,1028 @@ +%% +%% This is file `phfnote.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% phfnote.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2016 by Philippe Faist <philippe.faist@bluewin.ch> +%% +%% This file 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. +%% +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{phfnote} + [2016/08/15 v1.0 phfnote package] +\RequirePackage{xkeyval} +\RequirePackage{kvoptions} +\RequirePackage{etoolbox} +\def\phfnote@internal@execattribs#1#2#3{% + \@for\next:=#3\do{% + \ifcsname #1\next\endcsname% + \csname #1\next\endcsname% + \else% + \PackageWarning{phfnote}{Unknown #2: '\next'. Ignoring.} + \fi + } +} +\newcommand{\notetitlefont}{\sffamily\bfseries} +\newcommand{\notetitleauthorfont}{} +\newcommand{\notetitledatefont}{\footnotesize} +\newcommand{\notetitlebelowspace}{4mm} +\newcommand{\notetitletopspace}{-1.2cm} +\newcommand{\notetitlehrule}{\hrule} +\long\def\notetitle@title#1{\long\gdef\@title{#1}} +\def\phfnote@title@checksetspace#1{% + \ifdefined\singlespace\else% + \PackageError{phfnote}{Note title style `#1' requires the + `setspace' package to be loaded! Please load it, or use a + pkgset which loads it automatically}% + \fi% +} +\def\phfnote@setupthanksmpfootnote{% + \def\thempfootnote{\arabic{mpfootnote}}% + \let\footnoterule\relax% + \let\thanks\footnote% + \def\phfnote@mpfootmaterial{}% + \long\def\@mpfootnotetext##1{% + \protected@edef\@currentlabel% + {\csname p@mpfootnote\endcsname\@thefnmark}% + \protected@edef\@tmpa{\protect\phfnote@mympfootnotemark{\@thefnmark}{##1}% + \protect\phfnote@mpfootnoteglue}% + \expandafter\g@addto@macro\expandafter\phfnote@mpfootmaterial% + \expandafter{\@tmpa}% + }% + \def\thanksmark[##1]{\phfnote@mympfootnotemark{##1}}% +} +\def\phfnote@finalizempfootnotes{% + \global\setbox\@mpfootins=\vbox{% + \parskip=0pt\parindent=0pt\parshape 1 0.04\textwidth 0.96\textwidth\relax% + \noindent\leavevmode% + \reset@font\footnotesize% + \phfnote@fmt@titlefootnotes% + \phfnote@mpfootmaterial}% +} +\def\phfnote@fmt@titlefootnotes{} +\def\phfnote@mympfootnotemark#1{\@textsuperscript{\normalfont#1}} +\def\phfnote@mpfootnoteglue{\hskip 1.2em plus 2em minus 0.5em\relax} +\def\notetitle@thanksmark{\footnotemark} +\let\phfnote@old@thanks\thanks +\def\notetitle@thanks{\@ifnextchar[\phfnote@thanks{\phfnote@thanks[]}}%] +\long\def\phfnote@thanks[#1]#2{% + \if\relax\detokenize{#1}\relax% + \footnotemark% + \protected@xdef\@thanks{\@thanks\protect\footnotetext[\the\c@footnote]{#2}}% + \else% argument, pass on to sub-commands: + \footnotemark[#1]% + \protected@xdef\@thanks{\@thanks\protect\footnotetext[#1]{#2}}% + \fi% +} +\newcommand{\notetitle@style@default}{% + \begingroup\par\raggedright% + \phfnote@setupthanksmpfootnote% + \vspace*{\notetitletopspace}% + \phfnote@title@checksetspace{default}% + \begin{minipage}{\textwidth}% + \begin{singlespace}% + \parskip=0pt\parindent=0pt\relax% + {\let\phfnote@old@par\par% + \def\par{\phfnote@old@par% + \parskip=1.5ex\relax\parshape 1 0pt \textwidth\relax% + \noindent}% + \par% + \Large {\notetitlefont \@title}\par}% + \vskip 2mm\relax + \if\relax\detokenize\expandafter{\@author}\relax\else% + \par\parshape 1 0.04\textwidth 0.96\textwidth\relax% + {\notetitleauthorfont \@author}% + \vskip 2mm\relax% + \fi + \if\relax\detokenize\expandafter{\@date}\relax\else% + \par\parshape 1 0.04\textwidth 0.96\textwidth\relax% + {\notetitledatefont \@date} + \vskip 2mm\relax% + \fi + \global\let\@thanks\@empty% + \phfnote@finalizempfootnotes% + \end{singlespace}% + \end{minipage}\par% + \vspace*{2mm}% + \notetitlehrule\relax% + \par% + \endgroup% + \vskip\notetitlebelowspace\relax% don't change this, abstract needs to \removelastskip +} +\newcommand{\notetitle@style@small}{% + \begingroup\par\raggedright% + \let\footnote\thanks% + \vspace*{\notetitletopspace}% + {\notetitlefont \@title}% + \hfill\makebox{\fontsize{9pt}{10pt}\selectfont {\notetitleauthorfont \@author}% + \hspace*{2mm}--\hspace*{2mm}{\emph{\notetitledatefont \@date}}}% + \vspace*{1mm}\notetitlehrule\relax\vspace*{1mm}% + \par% + \endgroup% + \vskip\notetitlebelowspace\relax% don't change this, abstract needs to \removelastskip +} +\newcommand{\notetitle@style@article}{% + \vspace*{-3em}% + \begingroup + \centering + \let\footnote\thanks% + {\LARGE \@title \par}% + \vskip 1.5em% + {\large% + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author% + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date}% + \par% + \endgroup% + \par% + \vskip 2.5em\relax% +} +\def\phfnote@do@notetitle#1{ + \if\relax\detokenize\expandafter{#1}\relax + \else + \ifcsname notetitle@style@#1\endcsname + \def\phfnote@tmp@titsty{#1}% + \else + \PackageError{phfnote}{Unknown title style: '#1'.}{Unknown title + style: '#1'. Please consult the package documentation for available + styles.} + \def\phfnote@tmp@titsty{default}% + \fi + \let\title\notetitle@title + \let\thanks\notetitle@thanks + \let\thanksmark\notetitle@thanksmark + \def\@maketitle{\csname notetitle@style@\phfnote@tmp@titsty\endcsname} + \fi +} +\let\notedefaultabstract\abstract +\let\endnotedefaultabstract\endabstract +\newcommand{\noteabstracttextfont}{} +\newcommand{\noteabstractnamefont}{\bfseries\small} +\if@twocolumn + \newcommand\noteabstracttextwidth{\hsize} +\else + \newcommand{\noteabstracttextwidth}{0.9\hsize} +\fi +\newcommand\noteabstractafterspacing{1.5em} +\newcommand\noteabstractbeforespacing{1.5em} +\def\noteabstract@nameline{ + {\parskip=0pt\relax\par\centering\noteabstractnamefont% + \abstractname% + \par}\vskip 1ex\relax% +} +\newenvironment{noteabstract}{% + \removelastskip% + \vspace{\noteabstractbeforespacing}% + \begingroup% + \par\noindent\centering% + \begin{minipage}{\noteabstracttextwidth}% + \noteabstract@nameline% + \noteabstracttextfont% + }% + {% + \end{minipage}% + \par% + \endgroup% + \vspace{\noteabstractafterspacing}% +} +\def\noteabstract@attr@wide{% + \def\noteabstracttextwidth{\textwidth}% +} +\def\noteabstract@attr@narrow{% + \if@twocolumn + \else + \def\noteabstracttextwidth{0.8\textwidth}% + \fi +} +\def\noteabstract@attr@noname{% + \def\noteabstract@nameline{}%\vspace*{1ex}}% +} +\def\noteabstract@attr@original{% + \let\abstract\notedefaultabstract + \let\endabstract\endnotedefaultabstract +} +\def\noteabstract@attr@small{% + \g@addto@macro\noteabstracttextfont{\small}% +} +\def\noteabstract@attr@compact{% + \renewcommand\noteabstractafterspacing{1ex}% + \renewcommand\noteabstractbeforespacing{1ex}% +} +\def\noteabstract@attr@it{% + \g@addto@macro\noteabstracttextfont{\itshape}% +} +\def\phfnote@do@noteabstract#1{ + \let\abstract\noteabstract + \let\endabstract\endnoteabstract + \phfnote@internal@execattribs{noteabstract@attr@}{abstract attribute}{#1} +} +\def\phfnote@pagegeomstyle@default{ + \if@twocolumn + \PassOptionsToPackage{hmargin=1in,vmargin=0.75in,includeheadfoot}{geometry}% + \else + % fix the margins a bit to make text wider + \ifcase\@ptsize% mods for 10 pt + \PassOptionsToPackage{hmargin=1.5in,vmargin=1.25in}{geometry}% + \or% mods for 11 pt + \PassOptionsToPackage{hmargin=1.5in,vmargin=1.25in}{geometry}% + \or% mods for 12 pt + \PassOptionsToPackage{hmargin=1.25in,vmargin=1.25in}{geometry}% + \fi% + \fi +} +\def\phfnote@pagegeomstyle@narrow{ + \if@twocolumn + \PassOptionsToPackage{hmargin=1.25in,vmargin=0.75in,includeheadfoot}{geometry}% + \else + % fix the margins a bit to make text wider + \ifcase\@ptsize% mods for 10 pt + \PassOptionsToPackage{hmargin=1.75in,vmargin=1.5in}{geometry}% + \or% mods for 11 pt + \PassOptionsToPackage{hmargin=1.75in,vmargin=1.5in}{geometry}% + \or% mods for 12 pt + \PassOptionsToPackage{hmargin=1.5in,vmargin=1.5in}{geometry}% + \fi% + \fi +} +\def\phfnote@pagegeomstyle@wide{ + \if@twocolumn + \PassOptionsToPackage{hmargin=0.75in,vmargin=0.75in,includeheadfoot}{geometry}% + \else + % fix the margins a bit to make text wider + \ifcase\@ptsize% mods for 10 pt + \PassOptionsToPackage{hmargin=1.25in,vmargin=1.25in}{geometry}% + \or% mods for 11 pt + \PassOptionsToPackage{hmargin=1.25in,vmargin=1.25in}{geometry}% + \or% mods for 12 pt + \PassOptionsToPackage{hmargin=1in,vmargin=1.25in}{geometry}% + \fi% + \fi +} +\def\phfnote@pagegeomstyle@xwide{ + \if@twocolumn + \PassOptionsToPackage{hmargin=0.5in,vmargin=0.5in,includeheadfoot}{geometry}% + \else + % fix the margins a bit to make text wider + \ifcase\@ptsize% mods for 10 pt + \PassOptionsToPackage{hmargin=1in,vmargin=1.25in}{geometry}% + \or% mods for 11 pt + \PassOptionsToPackage{hmargin=1in,vmargin=1.25in}{geometry}% + \or% mods for 12 pt + \PassOptionsToPackage{hmargin=0.75in,vmargin=1.25in}{geometry}% + \fi% + \fi +} +\def\phfnote@pagegeomstyle@bigmargin{% + \if@twocolumn + \PassOptionsToPackage{hmargin=1.5in,vmargin=0.75in,includeheadfoot}{geometry}% + \else + % fix the margins a bit to make text wider + \ifcase\@ptsize% mods for 10 pt + \PassOptionsToPackage{hmargin={2.25in,1.75in},vmargin=1.25in}{geometry}% + \or% mods for 11 pt + \PassOptionsToPackage{hmargin={2.25in,1.75in},vmargin=1.25in}{geometry}% + \or% mods for 12 pt + \PassOptionsToPackage{hmargin={2in,1.5in},vmargin=1.25in}{geometry}% + \fi% + \fi +} +\newcommand{\phfnote@do@pagegeomdefs}[1]{ + \ifcsname phfnote@pagegeomstyle@#1\endcsname + \csname phfnote@pagegeomstyle@#1\endcsname + \else + \PackageWarning{phfnote}{Unknown page geometry style: `#1'!} + \fi + + \RequirePackage{geometry}% +} +\def\phfnote@do@spacing{ + \@ifpackageloaded{setspace}{ + \def\phfnote@dostretch##1{% + \setstretch{##1}\phfnote@docaptionstretch{##1}} + }{ + \def\phfnote@dostretch##1{% + \renewcommand\baselinestretch{##1}\phfnote@docaptionstretch{##1}} + } + \@ifpackageloaded{caption}{ + \def\phfnote@docaptionstretch##1{\captionsetup{font={stretch=##1}}} + }{ + \def\phfnote@docaptionstretch##1{\PackageWarning{phfnote}{Can't + set line spacing for captions, because the package `caption' + is not loaded. Please load it before `phfnote', or use an + appropriate (e.g. `rich') pkgset which loads this package + automatically .}} + } + \if@twocolumn + \phfnote@dostretch{1.0} % leave default + \emergencystretch=3em\relax + \else + \ifcase\@ptsize% 10pt + \phfnote@dostretch{1.1} + \or% 11pt + \phfnote@dostretch{1.0} % 1.05? better 1.0... + \or% 12pt + \phfnote@dostretch{1.0} % 1.03? not really noticeable... + \fi + \emergencystretch=6em\relax + \fi +} +\def\phfnote@par@original{% +} +\def\phfnote@par@indent{% + \parindent=1.5em\relax + \parskip=0pt\relax +} +\def\phfnote@par@indentminiskip{% + \parindent=1.5em\relax + \parskip=0.3em plus 0.1em\relax +} +\def\phfnote@par@skip{% + \parindent=0pt\relax + \parskip=0.8em plus 0.2em minus 0.1em\relax +} +\def\phfnote@do@par#1{% + \ifcsname phfnote@par@#1\endcsname + \csname phfnote@par@#1\endcsname + \else + \PackageWarning{phfnote}{Bad paragraph setting: #1. Leaving original} + \fi +} +\newcommand{\notesectionallfont}{% + \fontfamily{\notesectionallfontfamily}\fontseries{bx}\selectfont} +\newcommand{\notesectionallfontfamily}{ppl} +\newcommand{\notesectionfont}{\large} +\newcommand{\notesubsectionfont}{\normalsize} +\newcommand{\notesubsubsectionfont}{\small} +\newcommand{\noteparagraphfont}{\normalsize} +\newcommand{\notesubparagraphfont}{\normalsize} +\newcommand{\notesectionsetfonts}[3]{% + \renewcommand{\notesectionfont}{#1}% + \renewcommand{\notesubsectionfont}{#2}% + \renewcommand{\notesubsubsectionfont}{#3}% +} +\newcommand{\noteparagraphsetfonts}[2]{% + \renewcommand{\noteparagraphfont}{#1}% + \renewcommand{\notesubparagraphfont}{#2}% +} +\def\phfnote@do@secfmt@section{ + \RequirePackage{sectsty} + \sectionfont{\notesectionallfont\notesectionfont} + \subsectionfont{\notesectionallfont\notesubsectionfont} + \subsubsectionfont{\notesectionallfont\notesubsubsectionfont} +} +\def\phfnote@do@secfmt@paragraph{ + \RequirePackage{sectsty} + \paragraphfont{\notesectionallfont\noteparagraphfont} + \subparagraphfont{\notesectionallfont\notesubparagraphfont} +} +\def\phfnote@do@secfmt@compact{ + \notesectionsetfonts{\normalsize}{\small}{\small} +} +\def\phfnote@do@secfmt@larger{ + \notesectionsetfonts{\Large}{\large}{\normalsize} +} + +\def\phfnote@do@secfmt@secsquares{ + \RequirePackage{amssymb} + \let\phfnote@secsquares@old@seccntformat\@seccntformat + \def\@seccntformat##1{% + \expandafter\ifx\csname ##1\endcsname\section\relax% + \unexpanded{\makebox[0pt][r]{\raisebox{0.15ex}{{% + \notesmaller[0.6]\ensuremath{\blacksquare}}}% + \hspace*{1.2ex}}}% + \fi% + \phfnote@secsquares@old@seccntformat{##1}} +} +\def\phfnote@do@secfmt@secnummargin{ + \let\phfnote@secnummargin@old@seccntformat\@seccntformat + \def\@seccntformat##1{% + \protect\makebox[0pt][r]{\phfnote@secnummargin@old@seccntformat{##1}}} +} + +\def\phfnote@do@secfmt@rmfamily{ + \renewcommand\notesectionallfontfamily{\rmdefault} +} +\def\phfnote@do@secfmt@sffamily{ + \renewcommand\notesectionallfontfamily{\sfdefault} +} +\def\phfnote@do@secfmt@itpar{ + \def\noteparagraphfont{\normalfont\normalsize\itshape} + \def\notesubparagraphfont{\normalfont\normalsize\itshape} +} +\def\phfnote@do@secfmt@blockpar{ + \let\phfnote@old@paragraph\paragraph + \def\paragraph##1{% + \phfnote@old@paragraph{##1}% + \hspace*{0pt}\par\nopagebreak% ugly hack!! + } +} +\def\phfnote@do@secfmt#1{% + \phfnote@internal@execattribs{phfnote@do@secfmt@}{section formatting preset}{#1} +} +\def\phfnote@do@pkgset@none{ +} + +\def\phfnote@do@pkgset@minimal{ + + \RequirePackage{amsmath} + \RequirePackage{amsfonts} + \RequirePackage{amssymb} + \RequirePackage{amsthm} + + \RequirePackage{xcolor} + +} + +\def\phfnote@do@pkgset@rich{ + + \phfnote@do@pkgset@minimal + + \RequirePackage{setspace} + \RequirePackage{caption} + + \RequirePackage{microtype} + + \PassOptionsToPackage{shortlabels}{enumitem} + \RequirePackage{enumitem} + + \RequirePackage{graphicx} + + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + + \PassOptionsToPackage{utf8}{inputenc} + \RequirePackage{inputenc} +} + +\def\phfnote@do@pkgset@extended{ + + \phfnote@do@pkgset@rich + + \RequirePackage{float} + + \RequirePackage{verbdef} + + \PassOptionsToPackage{autostyle,autopunct=true}{csquotes} + \RequirePackage{csquotes} + + \RequirePackage{dsfont} + \RequirePackage{bbm} + \RequirePackage{mathtools} + +} +\def\phfnote@do@pkgset#1{ + \phfnote@internal@execattribs{phfnote@do@pkgset@}{package set}{#1} +} +\newcommand{\phfnote@do@pdfhyperrefdefs}{% + \phfnote@requirecolorpackage% + \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}% + \RequirePackage{url}% + \DeclareUrlCommand\phfnote@format@url{}% + \PassOptionsToPackage{bookmarks=true,backref=false}{hyperref}% + \RequirePackage{hyperref}% + % + \hypersetup{unicode=true,% + bookmarksnumbered=false,bookmarksopen=false,bookmarksopenlevel=1,% + breaklinks=true,pdfborder={0 0 0},colorlinks=true}% + \hypersetup{% + anchorcolor=docnotelinkcolor,citecolor=docnotelinkcolor,% + filecolor=docnotelinkcolor,linkcolor=docnotelinkcolor,% + menucolor=docnotelinkcolor,runcolor=docnotelinkcolor,% + urlcolor=docnotelinkcolor}% + \let\email\phfnote@email% + \urlstyle{notesf}% +} +\newcommand{\phfnotePdfLinkColor}[1]{% + \@ifpackageloaded{xcolor}{% + \colorlet{docnotelinkcolor}{#1}% + }{% else: + \PackageWarning{phfnote}{\protect\phfnotePdfLinkColor may only be + used if the package xcolor is loaded.}% + }% +} +\def\phfnote@sanitize@url{% + \catcode`\$12% + \catcode`\&12% + \catcode`\#12% + \catcode`\^12% + \catcode`\_12% + \catcode`\%12% + % \catcode`\^^J10% newline = space + % \catcode`\^^M10% newline = space + \relax% +}% +\providecommand\phfnote@format@url{\texttt} +\def\phfnote@email{\begingroup\phfnote@sanitize@url\phfnote@impl@email@}% +\def\phfnote@impl@email@#1{\endgroup\href{mailto:#1}{\phfnote@format@url{#1}}}% +\def\phfnote@requirecolorpackage{% + \@ifpackageloaded{color}{% + }{% + \@ifpackageloaded{xcolor}{% + }{% + \RequirePackage{xcolor}% + }% + }% +} +\def\phfnote@do@fontdefs{ + + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + + \renewcommand\sfdefault{cmbr} + +} +\newcommand{\phfnote@bibstyle}{naturemagdoi} +\newcommand{\phfnote@bibfont}{\fontsize{9}{11}\selectfont} +\let\phfnote@old@bibliography\bibliography +\let\phfnote@old@bibliographystyle\bibliographystyle +\newcommand{\phfnote@bibliography}[1]{% + \begingroup% + \phfnote@bibfont% + \phfnote@old@bibliographystyle{\phfnote@bibstyle}% + \phfnoteHackSectionStarWithTOC% + \catcode`\&=12\relax% normal char + \providecommand\eprint[2][]{\href{http://arxiv.org/abs/##2}{arXiv:##2}} + \phfnote@old@bibliography{#1}% + \endgroup% +} +\newcommand{\phfnote@bibliographystyle}[1]{% + \renewcommand{\phfnote@bibstyle}{#1}% +} +\def\phfnote@do@bibliographydefs{% + \let\bibliographystyle\phfnote@bibliographystyle% + \let\bibliography\phfnote@bibliography% +} +\def\phfnote@do@footnotedefs{ + \let\phfnote@orig@makefnmark\@makefnmark +%% \def\@makefnmark{\hbox{\@textsuperscript{% +%% \normalfont\tiny\fontseries{sb}\selectfont\@thefnmark}}} + \def\@makefnmark{\hbox{\@textsuperscript{% + \normalfont\tiny\bfseries\@thefnmark}}} +%% \def\@makefnmark{\hbox{\@textsuperscript{% +%% \normalfont\scriptsize\bfseries\@thefnmark}}}% too large +} +\newcommand\notesmaller[1][\notesmallerfrac]{% + \fontsize{#1\dimexpr\f@size pt\relax}{#1\dimexpr\f@baselineskip pt\relax}% + \selectfont\ignorespaces% +} +\def\notesmallerfrac{0.9} +\newcommand{\inlinetoc}{% + \begingroup% + \vspace*{2mm}% + \hrule% + \vspace*{2mm}% + \parskip=1pt\relax% + \@starttoc{toc}% + \vspace*{4mm}% + \hrule% + \vspace*{6mm}% + \endgroup% +} +\def\url@notettstyle{% + \def\UrlFont{\ttfamily\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@notesfstyle{% + \def\UrlFont{\sffamily\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@notesfssstyle{% + \def\UrlFont{\fontfamily{cmss}\selectfont\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@noteitsfstyle{% + \def\UrlFont{\sffamily\itshape\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@notermstyle{% + \def\UrlFont{\rmfamily\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@noteitstyle{% + \def\UrlFont{\itshape\notesmaller}% + \phfnote@urlstyle@common% +} +\def\url@notesmlstyle{% + \def\UrlFont{\notesmaller}% + \phfnote@urlstyle@common% +} +\def\phfnote@url@tilde{\hbox{\fontfamily{ptm}\selectfont\textasciitilde}} +%%\def\phfnote@url@tilde{\raise-0.8ex\hbox{% +%% \kern-0.2ex\fontfamily{cmbr}\selectfont\textasciitilde}} +\def\phfnote@urlstyle@common{% + \def\UrlTildeSpecial{\do\~{\phfnote@url@tilde}}% + \let\Url@force@Tilde\UrlTildeSpecial% +} +\def\phfnoteHackSectionStarWithTOC{% + \let\phfnote@old@section\section% + \def\section*##1{\phfnote@old@section*{##1}\addcontentsline{toc}{section}{##1}}% +} +\def\phfnoteHackSectionStarWithTOCInCommand#1{% + \expandafter\let\csname phfnote@old@\string#1\endcsname#1% + \gdef#1{% + \begingroup% + \phfnoteHackSectionStarWithTOC% + \csname phfnote@old@\string#1\endcsname% + \endgroup% + }% +} +\def\phfnoteSaveDefs#1#2{% + \csgdef{phfnote@restoredefs@#1}{}% + \def\@tmpa{#2}% + \@for\next:=\@tmpa\do{% + \global\csletcs{phfnote@restoredefs@#1@\next}{\next}% + \expandafter\xappto\csname phfnote@restoredefs@#1\endcsname{% + \noexpand\csletcs{\next}{phfnote@restoredefs@#1@\next}% + }% + }% +} +\def\phfnoteRestoreDefs#1{% + \ifcsname phfnote@restoredefs@#1\endcsname% + \csname phfnote@restoredefs@#1\endcsname% + \else% + \PackageError{phfnote}{\string\phfnoteRestoreDefs: no such + definitions stored (#1)} + \fi% +} +\def\phfverb#1{% + \ifx\protect\relax% + \phfverbfmt{\detokenize{#1}\unskip}% + \else% + \noexpand\phfverb{\unexpanded{#1}}% + \fi% +} +\def\phfverbfmt#1{{\normalfont\texttt{#1}}} +\SetupKeyvalOptions{ + family=phfnote, + prefix=phfnote@opt@ +} +\DeclareStringOption[default]{title} +\DeclareStringOption[]{abstract} +\DeclareStringOption[rich]{pkgset} +\DeclareBoolOption[true]{pagegeomdefs} +\DeclareComplementaryOption{nopagegeomdefs}{pagegeomdefs} +\DeclareStringOption[default]{pagegeom} +\DeclareStringOption[section]{secfmt} +\DeclareStringOption[skip]{par} +\DeclareBoolOption[true]{spacingdefs} +\DeclareComplementaryOption{nospacingdefs}{spacingdefs} +\DeclareBoolOption[true]{fontdefs} +\DeclareComplementaryOption{nofontdefs}{fontdefs} +\DeclareBoolOption[true]{footnotedefs} +\DeclareComplementaryOption{nofootnotedefs}{footnotedefs} +\DeclareBoolOption[true]{hyperrefdefs} +\DeclareComplementaryOption{nohyperrefdefs}{hyperrefdefs} +\DeclareBoolOption[true]{bibliographydefs} +\DeclareComplementaryOption{nobibliographydefs}{bibliographydefs} +\define@key{phfnote}{preset}{% + \ifcsname phfnote@preset@#1\endcsname% + \csname phfnote@preset@#1\endcsname% + \else% + \PackageError{phfnote}{Unknown preset: `#1'!}{You specified the + option 'preset=...' with an invalid value. Please look up the + package documentation corresponding to your version of phfnote + for possible values.} + \fi% +} +\DeclareDefaultOption{% + \@unknownoptionerror +} +\def\phfnote@hook@atendload{} +\def\phfnote@preset@article{ + \def\phfnote@opt@title{article} + \def\phfnote@opt@par{indent} + \def\phfnote@opt@pagegeom{default} +} +\newcommand\phfnote@presetcommon@xnote[1][noteitsf]{ + \def\phfnote@opt@title{default} + \def\phfnote@opt@par{skip} + \phfnote@opt@pagegeomdefstrue + \def\phfnote@opt@pagegeom{wide} + \setlength{\footnotesep}{5pt} + \g@addto@macro\phfnote@hook@atendload{ + \ifdefined\urlstyle + \urlstyle{#1} + \fi + } +} +\def\phfnote@preset@sfnote{ + \phfnote@presetcommon@xnote + \phfnote@opt@footnotedefstrue + \phfnote@opt@fontdefstrue + \renewcommand\familydefault{\sfdefault} + \renewcommand{\notesectionallfontfamily}{\sfdefault} +} +\def\phfnote@preset@sfssnote{ + \phfnote@preset@sfnote + \phfnote@opt@fontdefsfalse + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \renewcommand\sfdefault{cmss} +} +\def\phfnote@preset@opensansnote{ + \phfnote@preset@sfnote + \phfnote@opt@fontdefsfalse + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \PassOptionsToPackage{default,osfigures,scale=0.9}{opensans} + \RequirePackage{opensans} +} +\def\phfnote@preset@utopianote{ + \phfnote@presetcommon@xnote[noteit] + \phfnote@opt@fontdefsfalse + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \RequirePackage{fourier} + \renewcommand{\notesectionallfontfamily}{put} + \renewcommand{\notetitlefont}{\bfseries} + \renewcommand{\sfdefault}{phv} +} +\def\phfnote@preset@mnmynote{ + \phfnote@presetcommon@xnote[noteit] + \phfnote@opt@footnotedefsfalse + \phfnote@opt@fontdefsfalse + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \renewcommand{\notesectionallfontfamily}{\sfdefault} + \g@addto@macro\phfnote@hook@atendload{ + \RequirePackage{MnSymbol} + \PassOptionsToPackage{medfamily,textosf,mathlf,minionint,footnotefigures}{MinionPro} + \RequirePackage{MinionPro} + \PassOptionsToPackage{medfamily}{MyriadPro} + \RequirePackage{MyriadPro} + } +} +\def\phfnote@preset@pkgdoc{ + \phfnote@presetcommon@xnote[noteit] + \phfnote@opt@fontdefsfalse + \phfnote@pkgdoc@setupfont + \def\phfnote@opt@secfmt{section,paragraph,itpar,blockpar,larger,secsquares,secnummargin} + \def\phfnote@opt@pagegeom{bigmargin} + \def\phfnote@opt@abstract{noname} +} +\providecommand\phfnote@pkgdoc@setupfont{ + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \phfnote@pkgdoc@setupmainfont + \renewcommand{\notesectionallfontfamily}{put} + \renewcommand{\notetitlefont}{\bfseries} + \IfFileExists{opensans.sty}{}{\PackageError{phfnote}{Font OpenSans is not + available (need `opensans' package)}{Please install the opensans + package, which provides the OpenSans font.}} + \def\opensans@scale{s*[0.85]} + \renewcommand{\sfdefault}{fosj} +} +\providecommand\phfnote@pkgdoc@setupmainfont{\RequirePackage{fourier}} +\def\phfnote@preset@xpkgdoc{ + \phfnote@preset@pkgdoc + \RequirePackage{verbdef} + \ifdefined\PrintChanges + \phfnoteHackSectionStarWithTOCInCommand\PrintChanges + \fi + \ifdefined\PrintIndex + \phfnoteHackSectionStarWithTOCInCommand\PrintIndex + \fi + \def\PrintChangesAndIndexSpacing{\vspace{3cm plus 2cm minus 2cm}} + \def\PrintChangesAndIndex{\PrintChangesAndIndexSpacing\PrintChanges + \PrintChangesAndIndexSpacing\PrintIndex} + \ifdefined\c@IndexColumns + \setcounter{IndexColumns}{2} + \fi + \let\phfnote@xpkgdoc@old@theglossary\theglossary + \let\phfnote@xpkgdoc@old@endtheglossary\endtheglossary + \renewenvironment{theglossary}{% + \glossary@prologue% + \GlossaryParms \let\item\@idxitem \ignorespaces} + {} + \phfnote@opt@hyperrefdefsfalse + \g@addto@macro\phfnote@hook@atendload{ + \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}% + \RequirePackage{url}% + \DeclareUrlCommand\phfnote@format@url{}% + \RequirePackage{hypdoc} + % + \hypersetup{bookmarks=true,backref=false,unicode=true,% + bookmarksnumbered=false,bookmarksopen=false,bookmarksopenlevel=1,% + breaklinks=true,pdfborder={0 0 0},colorlinks=true}% + \hypersetup{% + anchorcolor=docnotelinkcolor,citecolor=docnotelinkcolor,% + filecolor=docnotelinkcolor,linkcolor=docnotelinkcolor,% + menucolor=docnotelinkcolor,runcolor=docnotelinkcolor,% + urlcolor=docnotelinkcolor}% + \let\email\phfnote@email% + \urlstyle{noteit} + } + \def\pkgname##1{% + \pkgnamefmt{##1}% + \index{##1=\pkgnamefmt{##1}|hyperpage}% + \index{packages:>##1=\pkgnamefmt{##1}|hyperpage}% + } + \robustify\pkgname + \def\pkgnamefmt##1{\textsf{##1}} + \robustify\pkgnamefmt + \newcounter{phfnotechanged} + \newcommand*\changed[4][]{% + \if\relax\detokenize{##1}\relax% + \changedtextfmt{##2}{##3}{##4}% + \changes{##2}{##3}{##4}% + \else% + \protected@edef\phfnotechanged@tmpa{{##2}{##3}{##4}}% + \immediate\write\@auxout{\string\phfnote@changed@set% + {##1}{\expandonce\phfnotechanged@tmpa}}% + \par\hspace*{0pt}\refstepcounter{phfnotechanged}\label{phfnotechanged:##1}% + \begingroup\let\phfnote@changedreftext@par\relax + \changedreftext{##1}% + \endgroup + \changes{##2}{##3}{\hyperref[phfnotechanged:##1]{##4}}% + \fi + } + \def\phfnote@changed@set##1{% + \expandafter\gdef\csname phfnote@changed@lbl@##1\endcsname% + } + \def\phfnote@changedreftext@par{\par} + \newcommand*\changedreftext[1]{% + \phfnote@changedreftext@par% + \ifcsname phfnote@changed@lbl@##1\endcsname + \hyperref[phfnotechanged:##1]{% + \expandafter\expandafter\expandafter\changedtextfmt% + \csname phfnote@changed@lbl@##1\endcsname + } + \else + \hyperref[phfnotechanged:##1]{% + \changedtextfmt{???}{???}{[\textbf{missing ref}]}% + }% + \fi + \par + } + \newcommand*\changedtextfmt[3]{% + \textit{Changed in {##1\kern 0.3ex\relax[##2]}:} ##3. + } + \RequirePackage{enumitem} + \newlist{pkgoptions}{description}{1} + \setlist[pkgoptions]{font=\pkgoptionfmt[{\vspace*{5pt}}],style=nextline} + \apptocmd\pkgoptions{\let\pkgoptions@old@item\item% + \def\item{\@ifnextchar[\pkgoptions@item@\pkgoptions@item@@}%] + \def\pkgoptions@item@[##1]{\pkgoptions@old@item[{{##1}}]}% + \def\pkgoptions@item@@{\PackageWarning{phfnote}{{pkgoptions}: you must + specify label to \string\item as \string\item[label].}% + \pkgoptions@old@item}% + }{}{\PackageWarning{phfnote}{preset xpkgdoc: Failed to patch command + \string\pkgoptions}} + \def\pkgoptionscombineitem{\leavevmode\vspace{\dimexpr-\baselineskip-\parskip-\itemsep\relax}} + \def\metatruefalsearg{\meta{\phfverb{true} $\mid$ \phfverb{false}}} + \newcommand\pkgoptionfmt[2][]{% + \begingroup\let\meta\pkgoptfmt@meta\fbox{\normalfont\ttfamily ##2}\endgroup% + \expandafter\phfnote@pkgdoc@index\expandafter{\@firstofone ##2}% + ##1} + \let\pkgopt@save@meta\meta + \def\pkgoptfmt@meta##1{\begingroup\normalfont\itshape\pkgopt@save@meta{##1}\endgroup} + \def\phfnote@pkgdoc@index##1{% + \begingroup\lccode`\= = `\,\relax% + \def\x{\lowercase{\def\@tmpa{##1}}}% + \x% + \let\meta\@gobble% + \let\marg\@gobble% + \let\oarg\@gobble% + \let\parg\@gobble% + \let\pkgoptattrib\@firstofone% + \let\pkgoptattribnodots\@firstofone% + \let\pkgoptattribempty\@empty% + \def\handleitemindex####1{% + \edef\@tmpc{####1}% + \if\relax\detokenize\expandafter{\@tmpc}\relax\else% + \edef\@tmpb{{\expandonce\@tmpc=\string\verb!*+\expandonce\@tmpc+ (\pkgoptname)|hyperpage}}% + \expandafter\index\@tmpb% + \edef\@tmpb{{\packageoptionsname:>\expandonce\@tmpc=\string\verb!*+\expandonce\@tmpc+|hyperpage}}% + \expandafter\index\@tmpb% + \fi% + }% + \def\@tmpc{\forcsvlist{\handleitemindex}}% + \expandafter\@tmpc\expandafter{\@tmpa}% + \endgroup% + } + \def\pkgoptname{pkg. opt.} + \def\packageoptionsname{package options} + \def\cmdoptions{\begingroup\setcmdnotpkgoptions + \pkgoptions} + \def\endcmdoptions{\endpkgoptions\endgroup} + \newcommand\cmdoptionfmt[2][]{\begingroup\setcmdnotpkgoptions + \pkgoptionfmt[{##1}]{##2}\endgroup} + \def\cmdoptname{cmd. opt.} + \def\commandoptionsname{command options} + \def\setcmdnotpkgoptions{\let\pkgoptname\cmdoptname + \let\packageoptionsname\commandoptionsname + \let\fbox\cmdoptionsfbox} + \def\cmdoptionsfbox##1{\ensuremath{\underline{{\text{##1}}}}} + \def\pkgoptattrib##1{\{##1,...\}} + \def\pkgoptattribnodots##1{\{##1\}} + \def\pkgoptattribempty{\{\}} + \phfnoteSaveDefs{verbatimstuff}{% + verbatim,@verbatim,@xverbatim,@sxverbatim,endverbatim} + \usepackage{tcolorbox} + \newtcolorbox{pkgnote}{ + colback=blue!5!white, + colframe=blue!5!white, + coltitle=blue!50!black, + toptitle=1.5ex, + fonttitle=\bfseries, + title={NOTE} + } + \newtcolorbox{pkgwarning}{ + colback=red!5!white, + colframe=red!5!white, + coltitle=red!50!black, + toptitle=1.5ex, + fonttitle=\bfseries, + title={WARNING} + } + \newtcolorbox{pkgtip}{ + colback=green!5!white, + colframe=green!5!white, + coltitle=green!50!black, + toptitle=1.5ex, + fonttitle=\bfseries, + title={TIP} + } + \phfnoteRestoreDefs{verbatimstuff} + \def\phfqitltxPkgTitle##1{The \pkgname{##1} package\thanks{\itshape + This document corresponds to \pkgname{##1}~\fileversion, dated \filedate. It + is part of the + \href{https://github.com/phfaist/phfqitltx/}{\pkgname{phfqitltx}} package + suite, see \url{https://github.com/phfaist/phfqitltx}.}} + \def\pkgfmtdate##1{% + \edef\pkgfmtdate@thedate{##1}% + \expandafter\pkgfmtdate@next\pkgfmtdate@thedate\@nil% + } + \def\pkgfmtdate@next##1/##2/##3\@nil{% YYYY/MM/DD + \ifcase ##2 \or January\or February\or March\or April\or May% + \or June\or July\or August\or September\or October\or November\or December\fi\space ##3,% + \space ##1} + \robustify\pkgfmtdate@next +} +\def\phfnote@preset@reset{ + \def\phfnote@opt@pkgset{none} + \def\phfnote@opt@title{} + \phfnote@opt@pagegeomdefsfalse + \phfnote@opt@spacingdefsfalse + \def\phfnote@opt@par{original} + \def\phfnote@opt@abstract{original} + \phfnote@opt@hyperrefdefsfalse + \phfnote@opt@fontdefsfalse + \def\phfnote@opt@secfmt{} + \phfnote@opt@bibliographydefsfalse + \phfnote@opt@footnotedefsfalse +} +\ProcessKeyvalOptions* +\phfnote@do@pkgset{\phfnote@opt@pkgset} + +\phfnote@do@notetitle{\phfnote@opt@title} + +\phfnote@do@noteabstract{\phfnote@opt@abstract} + +\phfnote@do@secfmt{\phfnote@opt@secfmt} + +\ifphfnote@opt@pagegeomdefs + \phfnote@do@pagegeomdefs{\phfnote@opt@pagegeom} +\fi + +\ifphfnote@opt@spacingdefs + \phfnote@do@spacing +\fi + +\phfnote@do@par{\phfnote@opt@par} + +\ifphfnote@opt@hyperrefdefs + \phfnote@do@pdfhyperrefdefs +\fi + +\ifphfnote@opt@fontdefs + \phfnote@do@fontdefs +\fi + +\ifphfnote@opt@bibliographydefs + \phfnote@do@bibliographydefs +\fi + +\ifphfnote@opt@footnotedefs + \phfnote@do@footnotedefs +\fi +\phfnote@hook@atendload +\endinput +%% +%% End of file `phfnote.sty'. |