texlive[41858] Master: phfnote (16aug16)

commits+karl at tug.org commits+karl at tug.org
Mon Aug 15 22:38:10 CEST 2016


Revision: 41858
          http://tug.org/svn/texlive?view=revision&revision=41858
Author:   karl
Date:     2016-08-15 22:38:10 +0200 (Mon, 15 Aug 2016)
Log Message:
-----------
phfnote (16aug16)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/bibtex/bst/phfnote/
    trunk/Master/texmf-dist/bibtex/bst/phfnote/naturemagdoi.bst
    trunk/Master/texmf-dist/doc/latex/phfnote/
    trunk/Master/texmf-dist/doc/latex/phfnote/Makefile
    trunk/Master/texmf-dist/doc/latex/phfnote/README.md
    trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf
    trunk/Master/texmf-dist/doc/latex/phfnote/pkg.mk
    trunk/Master/texmf-dist/source/latex/phfnote/
    trunk/Master/texmf-dist/source/latex/phfnote/phfnote.dtx
    trunk/Master/texmf-dist/source/latex/phfnote/phfnote.ins
    trunk/Master/texmf-dist/tex/latex/phfnote/
    trunk/Master/texmf-dist/tex/latex/phfnote/phfnote.sty
    trunk/Master/tlpkg/tlpsrc/phfnote.tlpsrc

Added: trunk/Master/texmf-dist/bibtex/bst/phfnote/naturemagdoi.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/phfnote/naturemagdoi.bst	                        (rev 0)
+++ trunk/Master/texmf-dist/bibtex/bst/phfnote/naturemagdoi.bst	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,1657 @@
+%%
+%% PhF: I've shamelessly hacked & patched this file manually (2015). ABSOLUTELY
+%% NO GUARANTEES!!!!!!!
+%%
+%% Original header:
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This is file `naturemag.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `head,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}')
+%% physjour.mbs  (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}')
+%% geojour.mbs  (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}')
+%% photjour.mbs  (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}')
+%% merlin.mbs  (with options: `tail,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}')
+%% ----------------------------------------
+%% *** Style for the journal Nature (created by Peter Czoschke) ***
+%% 
+%% Copyright 1994-2002 Patrick W Daly
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)]
+ %   For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is a numerical citation style, and as such is standard LaTeX.
+ % It requires no extra package to interface to the main text.
+ % The form of the \bibitem entries is
+ %   \bibitem{key}...
+ % Usage of \cite is as follows:
+ %   \cite{key} ==>>          [#]
+ %   \cite[chap. 2]{key} ==>> [#, chap. 2]
+ % where # is a number determined by the ordering in the reference list.
+ % The order in the reference list is that by which the works were originally
+ %   cited in the text, or that in the database.
+ %---------------------------------------------------------------------
+
+ENTRY
+  { address
+    archive
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    eprint
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    doi
+    url
+    volume
+    year
+  }
+  {}
+  { label }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  new.block
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\emph{" swap$ * "}" * }
+  if$
+}
+FUNCTION {bolden}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textbf{" swap$ * "}" * }
+  if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+FUNCTION {bbl.volume}
+{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "" }
+
+FUNCTION {bbl.page}
+{ "" }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
+MACRO {aa}{"Astron. \& Astrophys."}
+MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
+MACRO {aj} {"Astron. J."}
+MACRO {aph} {"Acta Phys."}
+MACRO {advp} {"Adv. Phys."}
+MACRO {ajp} {"Amer. J. Phys."}
+MACRO {ajm} {"Amer. J. Math."}
+MACRO {amsci} {"Amer. Sci."}
+MACRO {anofd} {"Ann. Fluid Dyn."}
+MACRO {am} {"Ann. Math."}
+MACRO {ap} {"Ann. Phys. (NY)"}
+MACRO {adp} {"Ann. Phys. (Leipzig)"}
+MACRO {ao} {"Appl. Opt."}
+MACRO {apl} {"Appl. Phys. Lett."}
+MACRO {app} {"Astroparticle Phys."}
+MACRO {apj} {"Astrophys. J."}
+MACRO {apjsup} {"Astrophys. J. Suppl."}
+MACRO {apss} {"Astrophys. Space Sci."}
+MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
+MACRO {baas} {"Bull. Amer. Astron. Soc."}
+MACRO {baps} {"Bull. Amer. Phys. Soc."}
+MACRO {cmp} {"Comm. Math. Phys."}
+MACRO {cpam} {"Commun. Pure Appl. Math."}
+MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
+MACRO {cpc} {"Comp. Phys. Comm."}
+MACRO {cqg} {"Class. Quant. Grav."}
+MACRO {cra} {"C. R. Acad. Sci. A"}
+MACRO {fed} {"Fusion Eng. \& Design"}
+MACRO {ft} {"Fusion Tech."}
+MACRO {grg} {"Gen. Relativ. Gravit."}
+MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
+MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
+MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
+MACRO {ip} {"Infrared Phys."}
+MACRO {irp} {"Infrared Phys."}
+MACRO {jap} {"J. Appl. Phys."}
+MACRO {jasa} {"J. Acoust. Soc. America"}
+MACRO {jcp} {"J. Comp. Phys."}
+MACRO {jetp} {"Sov. Phys.--JETP"}
+MACRO {jfe} {"J. Fusion Energy"}
+MACRO {jfm} {"J. Fluid Mech."}
+MACRO {jmp} {"J. Math. Phys."}
+MACRO {jne} {"J. Nucl. Energy"}
+MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
+MACRO {jnm} {"J. Nucl. Mat."}
+MACRO {jpc} {"J. Phys. Chem."}
+MACRO {jpp} {"J. Plasma Phys."}
+MACRO {jpsj} {"J. Phys. Soc. Japan"}
+MACRO {jsi} {"J. Sci. Instrum."}
+MACRO {jvst} {"J. Vac. Sci. \& Tech."}
+MACRO {nat} {"Nature"}
+MACRO {nature} {"Nature"}
+MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
+MACRO {nf} {"Nucl. Fusion"}
+MACRO {nim} {"Nucl. Inst. \& Meth."}
+MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
+MACRO {np} {"Nucl. Phys."}
+MACRO {npb} {"Nucl. Phys. B"}
+MACRO {nt/f} {"Nucl. Tech./Fusion"}
+MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
+MACRO {inc} {"Nuovo Cimento"}
+MACRO {nc} {"Nuovo Cimento"}
+MACRO {pf} {"Phys. Fluids"}
+MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
+MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
+MACRO {pl} {"Phys. Lett."}
+MACRO {pla} {"Phys. Lett. A"}
+MACRO {plb} {"Phys. Lett. B"}
+MACRO {prep} {"Phys. Rep."}
+MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
+MACRO {pp} {"Phys. Plasmas"}
+MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
+MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
+MACRO {prl} {"Phys. Rev. Lett."}
+MACRO {pr} {"Phys. Rev."}
+MACRO {physrev} {"Phys. Rev."}
+MACRO {pra} {"Phys. Rev. A"}
+MACRO {prb} {"Phys. Rev. B"}
+MACRO {prc} {"Phys. Rev. C"}
+MACRO {prd} {"Phys. Rev. D"}
+MACRO {pre} {"Phys. Rev. E"}
+MACRO {ps} {"Phys. Scripta"}
+MACRO {procrsl} {"Proc. Roy. Soc. London"}
+MACRO {rmp} {"Rev. Mod. Phys."}
+MACRO {rsi} {"Rev. Sci. Inst."}
+MACRO {science} {"Science"}
+MACRO {sciam} {"Sci. Am."}
+MACRO {sam} {"Stud. Appl. Math."}
+MACRO {sjpp} {"Sov. J. Plasma Phys."}
+MACRO {spd} {"Sov. Phys.--Doklady"}
+MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
+MACRO {spu} {"Sov. Phys.--Uspeki"}
+MACRO {st} {"Sky and Telesc."}
+ % End module: physjour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
+MACRO {aisr} {"Adv. Space Res."}
+MACRO {ag} {"Ann. Geophys."}
+MACRO {anigeo} {"Ann. Geofis."}
+MACRO {angl} {"Ann. Glaciol."}
+MACRO {andmet} {"Ann. d. Meteor."}
+MACRO {andgeo} {"Ann. d. Geophys."}
+MACRO {andphy} {"Ann. Phys.-Paris"}
+MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
+MACRO {atph} {"Atm\'osphera"}
+MACRO {aao} {"Atmos. Ocean"}
+MACRO {ass}{"Astrophys. Space Sci."}
+MACRO {atenv} {"Atmos. Environ."}
+MACRO {aujag} {"Aust. J. Agr. Res."}
+MACRO {aumet} {"Aust. Meteorol. Mag."}
+MACRO {blmet} {"Bound.-Lay. Meteorol."}
+MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
+MACRO {cch} {"Clim. Change"}
+MACRO {cdyn} {"Clim. Dynam."}
+MACRO {cbul} {"Climatol. Bull."}
+MACRO {cap} {"Contrib. Atmos. Phys."}
+MACRO {dsr} {"Deep-Sea Res."}
+MACRO {dhz} {"Dtsch. Hydrogr. Z."}
+MACRO {dao} {"Dynam. Atmos. Oceans"}
+MACRO {eco} {"Ecology"}
+MACRO {empl}{"Earth, Moon and Planets"}
+MACRO {envres} {"Environ. Res."}
+MACRO {envst} {"Environ. Sci. Technol."}
+MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
+MACRO {expa}{"Exper. Astron."}
+MACRO {geoint} {"Geofis. Int."}
+MACRO {geopub} {"Geofys. Publ."}
+MACRO {geogeo} {"Geol. Geofiz."}
+MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
+MACRO {gfd} {"Geophys. Fluid Dyn."}
+MACRO {geomag} {"Geophys. Mag."}
+MACRO {georl} {"Geophys. Res. Lett."}
+MACRO {grl} {"Geophys. Res. Lett."}
+MACRO {ga} {"Geophysica"}
+MACRO {gs} {"Geophysics"}
+MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
+MACRO {ijawp} {"Int. J. Air Water Pollut."}
+MACRO {ijc} {"Int. J. Climatol."}
+MACRO {ijrs} {"Int. J. Remote Sens."}
+MACRO {jam} {"J. Appl. Meteorol."}
+MACRO {jaot} {"J. Atmos. Ocean. Technol."}
+MACRO {jatp} {"J. Atmos. Terr. Phys."}
+MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
+MACRO {jce} {"J. Climate"}
+MACRO {jcam} {"J. Climate Appl. Meteor."}
+MACRO {jcm} {"J. Climate Meteor."}
+MACRO {jcy} {"J. Climatol."}
+MACRO {jgr} {"J. Geophys. Res."}
+MACRO {jga} {"J. Glaciol."}
+MACRO {jh} {"J. Hydrol."}
+MACRO {jmr} {"J. Mar. Res."}
+MACRO {jmrj} {"J. Meteor. Res. Japan"}
+MACRO {jm} {"J. Meteor."}
+MACRO {jpo} {"J. Phys. Oceanogr."}
+MACRO {jra} {"J. Rech. Atmos."}
+MACRO {jaes} {"J. Aeronaut. Sci."}
+MACRO {japca} {"J. Air Pollut. Control Assoc."}
+MACRO {jas} {"J. Atmos. Sci."}
+MACRO {jmts} {"J. Mar. Technol. Soc."}
+MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
+MACRO {josj} {"J. Oceanogr. Soc. Japan"}
+MACRO {jwm} {"J. Wea. Mod."}
+MACRO {lao} {"Limnol. Oceanogr."}
+MACRO {mwl} {"Mar. Wea. Log"}
+MACRO {mau} {"Mausam"}
+MACRO {meteor} {"``Meteor'' Forschungsergeb."}
+MACRO {map} {"Meteorol. Atmos. Phys."}
+MACRO {metmag} {"Meteor. Mag."}
+MACRO {metmon} {"Meteor. Monogr."}
+MACRO {metrun} {"Meteor. Rundsch."}
+MACRO {metzeit} {"Meteor. Z."}
+MACRO {metgid} {"Meteor. Gidrol."}
+MACRO {mwr} {"Mon. Weather Rev."}
+MACRO {nwd} {"Natl. Weather Dig."}
+MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
+MACRO {npg} {"Nonlin. Proc. Geophys."}
+MACRO {om} {"Oceanogr. Meteorol."}
+MACRO {ocac} {"Oceanol. Acta"}
+MACRO {oceanus} {"Oceanus"}
+MACRO {paleoc} {"Paleoceanography"}
+MACRO {pce} {"Phys. Chem. Earth"}
+MACRO {pmg} {"Pap. Meteor. Geophys."}
+MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
+MACRO {physzeit} {"Phys. Z."}
+MACRO {pps} {"Planet. Space Sci."}
+MACRO {pss} {"Planet. Space Sci."}
+MACRO {pag} {"Pure Appl. Geophys."}
+MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
+MACRO {quatres} {"Quat. Res."}
+MACRO {rsci} {"Radio Sci."}
+MACRO {rse} {"Remote Sens. Environ."}
+MACRO {rgeo} {"Rev. Geophys."}
+MACRO {rgsp} {"Rev. Geophys. Space Phys."}
+MACRO {rdgeo} {"Rev. Geofis."}
+MACRO {revmeta} {"Rev. Meteorol."}
+MACRO {sgp}{"Surveys in Geophys."}
+MACRO {sp} {"Solar Phys."}
+MACRO {ssr} {"Space Sci. Rev."}
+MACRO {tellus} {"Tellus"}
+MACRO {tac} {"Theor. Appl. Climatol."}
+MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
+MACRO {wrr} {"Water Resour. Res."}
+MACRO {weather} {"Weather"}
+MACRO {wafc} {"Weather Forecast."}
+MACRO {ww} {"Weatherwise"}
+MACRO {wmob} {"WMO Bull."}
+MACRO {zeitmet} {"Z. Meteorol."}
+ % End module: geojour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
+
+MACRO {appopt} {"Appl. Opt."}
+MACRO {bell} {"Bell Syst. Tech. J."}
+MACRO {ell} {"Electron. Lett."}
+MACRO {jasp} {"J. Appl. Spectr."}
+MACRO {jqe} {"IEEE J. Quantum Electron."}
+MACRO {jlwt} {"J. Lightwave Technol."}
+MACRO {jmo} {"J. Mod. Opt."}
+MACRO {josa} {"J. Opt. Soc. America"}
+MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
+MACRO {josab} {"J. Opt. Soc. Amer.~B"}
+MACRO {jdp} {"J. Phys. (Paris)"}
+MACRO {oc} {"Opt. Commun."}
+MACRO {ol} {"Opt. Lett."}
+MACRO {phtl} {"IEEE Photon. Technol. Lett."}
+MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
+MACRO {sse} {"Solid-State Electron."}
+MACRO {sjot} {"Sov. J. Opt. Technol."}
+MACRO {sjqe} {"Sov. J. Quantum Electron."}
+MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
+MACRO {stph} {"Sov. Phys.--Techn. Phys."}
+MACRO {stphl} {"Sov. Techn. Phys. Lett."}
+MACRO {vr} {"Vision Res."}
+MACRO {zph} {"Z. f. Physik"}
+MACRO {zphb} {"Z. f. Physik~B"}
+MACRO {zphd} {"Z. f. Physik~D"}
+
+MACRO {CLEO} {"CLEO"}
+MACRO {ASSL} {"Adv. Sol.-State Lasers"}
+MACRO {OSA}  {"OSA"}
+ % End module: photjour.mbs
+%% Copyright 1994-2002 Patrick W Daly
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+
+% Phf: adding support for DOI, code pasted from apsrev4-1.bst
+FUNCTION {doi.command.href}
+{
+  "\Doi "
+}
+FUNCTION {noop.command}
+{
+  "\myhrefnoop "
+}
+FUNCTION {href.command}
+{
+  "\myhref "
+}
+FUNCTION {link.tag.open}
+{
+  doi duplicate$ empty$
+    {
+      pop$
+      url duplicate$ empty$
+        {
+          pop$ "" noop.command
+        }{
+          href.command
+        }
+      if$
+    }
+    {
+      doi.command.href
+    }
+  if$
+  "{" * swap$ * "} {" *
+}
+
+FUNCTION {link.tag.shut}
+{
+  "}"
+}
+FUNCTION {link.open}
+{
+  link.tag.open
+}
+FUNCTION {link.shut}
+{
+  link.tag.shut *
+}
+FUNCTION {add.doi}
+{
+  link.tag.open swap$ * link.tag.shut *
+}
+
+
+
+FUNCTION {bibinfo.check}
+{ swap$
+  duplicate$ missing$
+    {
+      pop$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ pop$
+        }
+        { swap$
+          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+  duplicate$ missing$
+    {
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ "empty " swap$ * " in " * cite$ * warning$
+        }
+        { swap$
+          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.eprint}
+{ eprint duplicate$ empty$
+    'skip$
+    { "\eprint"
+      archive empty$
+        'skip$
+        { "[" * archive * "]" * }
+      if$
+      "{" * swap$ * "}" *
+    }
+  if$
+}
+FUNCTION {format.url}
+{ url empty$
+    { "" }
+    { "\urlprefix\url{" url * "}" * }
+  if$
+}
+
+STRINGS  { bibinfo}
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}{, f.}{, jj}"
+      format.name$
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          nameptr #1
+          #1 + =
+          numnames #5
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal emphasize *
+                }
+                {
+                  "\&"
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.names.ed}
+{
+  format.names
+}
+FUNCTION {format.authors}
+{ author "author" format.names
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+    {
+      " " *
+      get.bbl.editor
+   "(" swap$ * ")" *
+      *
+    }
+  if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ * "note" bibinfo.check
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title
+  duplicate$ empty$ 'skip$
+    { "t" change.case$ }
+  if$
+  "title" bibinfo.check
+}
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in capitalize
+  " " * }
+
+FUNCTION {format.date}
+{
+  ""
+  duplicate$ empty$
+  year  "year"  bibinfo.check duplicate$ empty$
+    { swap$ 'skip$
+        { "there's a month but no year in " cite$ * warning$ }
+      if$
+      *
+    }
+    { swap$ 'skip$
+        {
+          swap$
+          " " * swap$
+        }
+      if$
+      *
+    }
+  if$
+  duplicate$ empty$
+    'skip$
+    {
+      before.all 'output.state :=
+    " (" swap$ * ")" *
+    }
+  if$
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      emphasize
+    }
+  if$
+}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { swap$ bbl.of space.word * swap$
+          emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { series empty$
+            { number "number" bibinfo.check }
+        { output.state mid.sentence =
+            { bbl.number }
+            { bbl.number capitalize }
+          if$
+          number tie.or.space.prefix "number" bibinfo.check * *
+          bbl.in space.word *
+          series "series" bibinfo.check *
+        }
+      if$
+    }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+    {
+      output.state mid.sentence =
+        { "l" }
+        { "t" }
+      if$ change.case$
+      "edition" bibinfo.check
+      " " * bbl.edition *
+    }
+  if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+    { duplicate$ multi.page.check
+        {
+          n.dashify
+        }
+        {
+        }
+      if$
+      "pages" bibinfo.check
+    }
+  if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$
+        { pop$ pop$ format.pages }
+        {
+          ", " *
+          swap$
+          n.dashify
+          "pages" bibinfo.check
+          *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  duplicate$ empty$ 'skip$
+    {
+      "volume" bibinfo.check
+    }
+  if$
+  bolden
+  format.journal.pages
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$
+          "type" bibinfo.check
+        }
+      if$
+      chapter tie.or.space.prefix
+      "chapter" bibinfo.check
+      * *
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+  emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+    {
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
+        {
+          " " *
+          get.bbl.editor
+          "(" swap$ * ") " *
+          * swap$
+          * }
+      if$
+      word.in swap$ *
+    }
+  if$
+}
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+    'pop$
+    { swap$ pop$
+      "t" change.case$ "type" bibinfo.check
+    }
+  if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+  type duplicate$ empty$
+    { pop$ bbl.techrep }
+    'skip$
+  if$
+  "type" bibinfo.check
+  swap$ duplicate$ empty$
+    { pop$ "t" change.case$ }
+    { tie.or.space.prefix * * }
+  if$
+}
+FUNCTION {format.article.crossref}
+{
+  key duplicate$ empty$
+    { pop$
+      journal duplicate$ empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
+        { "journal" bibinfo.check emphasize word.in swap$ * }
+      if$
+    }
+    { word.in swap$ * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  "editor" bibinfo.check
+  editor num.names$ duplicate$
+  #2 >
+    { pop$
+      "editor" bibinfo.check
+      " " * bbl.etal
+      emphasize
+      *
+    }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              "editor" bibinfo.check
+              " " * bbl.etal
+              emphasize
+              *
+            }
+            {
+              " \& "
+              * editor #2 "{vv~}{ll}" format.name$
+              "editor" bibinfo.check
+              *
+            }
+          if$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      pop$ word.in
+    }
+    { bbl.volume
+      capitalize
+      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { series empty$
+            { "need editor, key, or series for " cite$ * " to crossref " *
+              crossref * warning$
+              "" *
+            }
+            { series emphasize * }
+          if$
+        }
+        { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { format.booktitle duplicate$ empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+            }
+            { word.in swap$ * }
+          if$
+        }
+        { word.in key * " " *}
+      if$
+    }
+    { word.in format.crossref.editor * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  year empty$
+    { "empty year in " cite$ * warning$ }
+    'skip$
+  if$
+  address empty$ t empty$ and
+  year empty$ and
+    'skip$
+    {
+      add.blank "(" *
+      t empty$
+        { address "address" bibinfo.check *
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address "address" bibinfo.check * }
+          if$
+        }
+      if$
+      year empty$
+        'skip$
+        { t empty$ address empty$ and
+            'skip$
+            { ", " * }
+          if$
+          year "year" bibinfo.check
+          *
+        }
+      if$
+      ")" *
+    }
+  if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+% ###PhF: for revtex (?)
+FUNCTION {control}
+{
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  %duplicate$ empty$ { pop$ } { output } if$
+  new.block
+  crossref missing$
+    {
+      link.open
+      output
+      journal
+      "journal" bibinfo.check
+      emphasize
+      "journal" output.check
+      add.blank
+      format.vol.num.pages output
+      format.date "year" output.check
+      link.shut
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      add.blank
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      format.publisher.address output
+    }
+    {
+      new.block
+      format.book.crossref output.nonnull
+      format.date "year" output.check
+    }
+  if$
+  format.edition output
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  new.block
+  format.title "title" output.check
+  new.block
+  howpublished "howpublished" bibinfo.check output
+  address "address" bibinfo.check output
+  format.date output
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      new.sentence
+      format.publisher.address output
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+      format.date "year" output.check
+    }
+  if$
+  format.edition output
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    {
+      link.open
+      output
+      format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.chapter.pages output
+      link.shut
+      new.sentence
+      format.publisher.address output
+      format.edition output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    {
+      link.open
+      output
+      format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages output
+      link.shut
+      new.sentence
+      publisher empty$
+        { format.organization.address output }
+        { organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization "organization" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { output
+          address "address" bibinfo.check output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+        {
+          address new.block.checka
+          address "address" bibinfo.check output
+        }
+        'skip$
+      if$
+    }
+    {
+      organization address new.block.checkb
+      organization "organization" bibinfo.check output
+      address "address" bibinfo.check output
+    }
+  if$
+  format.edition output
+  format.date output
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle
+  "title" output.check
+  new.block
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.date "year" output.check
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title howpublished new.block.checkb
+  format.title output
+  howpublished new.block.checka
+  howpublished "howpublished" bibinfo.check output
+  format.date output
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+  empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle
+  "title" output.check
+  new.block
+  link.open
+  output
+  bbl.phdthesis format.thesis.type output.nonnull
+  link.shut
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.date "year" output.check
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization "organization" bibinfo.check output
+    }
+    { format.editors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  editor empty$
+    { publisher empty$
+        'skip$
+        {
+          new.sentence
+          format.publisher.address output
+        }
+      if$
+    }
+    { publisher empty$
+        {
+          new.sentence
+          format.organization.address output }
+        {
+          new.sentence
+          organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+     }
+  if$
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title
+  "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.date "year" output.check
+  new.block
+  format.url output
+  new.block
+  format.note output
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  format.date output
+  new.block
+  format.url output
+  new.block
+  format.note "note" output.check
+  format.eprint output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" *
+  write$ newline$
+  "\expandafter\ifx\csname url\endcsname\relax"
+  write$ newline$
+  "  \def\url#1{\texttt{#1}}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{Available at }\fi"
+  write$ newline$
+  "\providecommand{\bibinfo}[2]{#2}"
+  write$ newline$
+  "\providecommand{\eprint}[2][]{\url{#2}}"
+  write$ newline$
+
+  "\makeatletter"
+  write$ newline$
+
+  "\let\doibase\relax"
+  write$ newline$
+  "\providecommand \doibase [0]{http://dx.doi.org/}"
+  write$ newline$
+  "\providecommand \@sanitize at url [0]{\catcode `\\12\catcode `\$12\catcode"
+  write$ newline$
+  "  `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}"
+  write$ newline$
+  "\providecommand \Doi [0]{\begingroup \@sanitize at url \@Doi }%"
+  write$ newline$
+  "\providecommand \@Doi [1]{\endgroup\@@startlink{\doibase#1}\@@Doi}%"
+  write$ newline$
+  %% ugly hacks because I don't know how to program BST files and I very unshamefully totally
+  %% hacked the naturemag.bst style to add DOI's but I'm getting stray commas in bib entries
+  "\def\gobbledotblock , {}"
+  write$ newline$
+  "\let\@@Doi\relax"
+  write$ newline$
+  "\newcommand \@@Doi [1]{\textcolor{docnotelinkcolor}{\gobbledotblock#1}\@@endlink}"
+  write$ newline$
+  "\newcommand\myhrefnoop[2]{\gobbledotblock#2}"
+  write$ newline$
+  "\newcommand\@@myhref[2]{\href{#1}{\gobbledotblock#2}}"
+  write$ newline$
+  "\newcommand\@myhref[1]{\endgroup\@@myhref{#1}}"
+  write$ newline$
+  "\newcommand\myhref{\begingroup\@sanitize at url\@myhref}"
+  write$ newline$
+  % with code taken from revtex4-1.cls:
+  "\providecommand\@@startlink[1]{%"
+  write$ newline$
+  "\leavevmode%"
+  write$ newline$
+  "\pdfstartlink\pdfstartlink at attr%"
+  write$ newline$
+  " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}\relax%"
+  write$ newline$
+  "}"
+  write$ newline$
+  "\providecommand\@@endlink{\pdfendlink}"
+  write$ newline$
+  "\providecommand\pdfstartlink at attr{attr{/Border[0 0 0 [1 5] ]/H/I/C[0 1 1]}}"
+  write$ newline$
+
+  "\makeatother"
+  write$ newline$
+
+  ""
+  write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `nature.bst'.


Property changes on: trunk/Master/texmf-dist/bibtex/bst/phfnote/naturemagdoi.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/phfnote/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phfnote/Makefile	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/phfnote/Makefile	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,14 @@
+
+PKG = phfnote
+
+DIST_ADDITIONAL_FILES = naturemagdoi.bst
+
+-include pkg.mk
+
+pkg.mk:
+	ln -sf ../mkcommon/pkg.mk pkg.mk
+
+install:  install_sty install_doc
+	mkdir -p $(DESTDIR)$(PREFIX)/bibtex/bst/$(PKG)
+	cp naturemagdoi.bst  $(DESTDIR)$(PREFIX)/bibtex/bst/$(PKG)
+


Property changes on: trunk/Master/texmf-dist/doc/latex/phfnote/Makefile
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/phfnote/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phfnote/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/phfnote/README.md	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,18 @@
+# The phfnote package
+
+A handy LaTeX class for typesetting short notes and medium-length reports, full
+of goodies to make it look just right.
+
+The package phfnote provides basic formatting for short documents, such as notes
+on a specific topic, short documentation, or quick memos. It aims to cover all
+basic needs for such purposes: include a standard set of relevant packages, a
+nice title which doesn't take up too much space, better page margin sizes, and
+some basic styling to make the note look nicer. At the same time, it is highly
+flexible and customizable.
+
+
+# Documentation
+
+Run 'make sty' to generate the style file and 'make pdf' to generate the package
+documentation. Run 'make' or 'make help' for more info.
+


Property changes on: trunk/Master/texmf-dist/doc/latex/phfnote/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf	2016-08-15 20:37:30 UTC (rev 41857)
+++ trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf	2016-08-15 20:38:10 UTC (rev 41858)

Property changes on: trunk/Master/texmf-dist/doc/latex/phfnote/phfnote.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/phfnote/pkg.mk
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phfnote/pkg.mk	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/phfnote/pkg.mk	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,167 @@
+
+#
+# Common useful definitions
+#
+LATEX = latex
+
+PDFLATEX = TEXINPUTS="$$TEXINPUTS:../phfnote" pdflatex
+PDFLATEXOPTS = -interaction=batchmode
+PDFLATEXOPTSLAST = -interaction=batchmode --synctex=1
+
+MAKEINDEX = makeindex
+
+
+#
+# Set default PREFIX. This can be overridden with 'make install PREFIX=/installation/directory'
+#
+DEFAULT_PREFIX := $(shell kpsewhich -var-value TEXMFHOME)
+PREFIX ?= $(DEFAULT_PREFIX)
+
+
+#
+# package should be set in variable PKG
+#
+PKGREADME = README.md
+
+#
+# packages may specify additional files in the distribution with this variable
+# (by default empty)
+#
+DIST_ADDITIONAL_FILES ?= 
+
+
+PKGDTX = $(PKG).dtx
+PKGINS = $(PKG).ins
+PKGSTY = $(PKG).sty
+PKGPDF = $(PKG).pdf
+PKGTDSZIP = $(PKG).tds.zip
+PKGZIP = $(PKG).zip
+
+
+
+.PHONY: help sty pdf install install_sty install_doc tdszip dist clean cleanall cleansty cleanaux cleanpdf cleantdszip cleandist
+
+
+help:
+	@echo "Targets for $(PKG):"
+	@echo "make sty             -- generate LaTeX package file $(PKG).sty"
+	@echo "make pdf             -- generate pdf documentation"
+	@echo "make install         -- install style and documentation files to TEXMF tree"
+	@echo "make install PREFIX=[specify texmf directory]"
+	@echo "make $(PKG).tds.zip  -- create TDS.ZIP to include in CTAN upload"
+	@echo "make dist            -- create distribution ZIP, ready for upload to CTAN"
+	@echo "make clean           -- remove LaTeX auxiliary files"
+	@echo "make cleansty        -- remove generated style file"
+	@echo "make cleanpdf        -- remove generated pdf documentation"
+	@echo "make cleanall        -- remove all generated files, incl. distribution zip"
+
+
+clean: cleanaux
+
+cleanall: cleansty cleanaux cleanpdf cleantdszip cleandist
+
+# ------------------------------------------------
+# make sty
+# ------------------------------------------------
+
+sty: $(PKGSTY)
+
+$(PKGSTY): $(PKGINS) $(PKGDTX)
+	$(LATEX) $<
+
+cleansty:
+	@rm -f $(PKGSTY)
+
+# ------------------------------------------------
+# make pdf
+# ------------------------------------------------
+
+pdf: $(PKG).pdf
+
+#
+# fake index & glossary so they get a TOC entry from the beginning, and so the page
+# numbers in the index are correct.
+#
+$(PKG).aux $(PKG).idx $(PKG).glo: $(PKGDTX) $(PKGSTY)
+	DTX=$< ; echo '\\begin{theindex}\\item index here \\end{theindex}' >$${DTX%.dtx}.ind
+	DTX=$< ; echo '\\begin{theglossary}\\item changes here\\end{theglossary}' >$${DTX%.dtx}.gls
+	$(PDFLATEX) $(PDFLATEXOPTS) $<
+	$(PDFLATEX) $(PDFLATEXOPTS) $<
+	$(PDFLATEX) $(PDFLATEXOPTS) $<
+
+$(PKG).ind: $(PKG).idx
+	$(MAKEINDEX) -s gind.ist -o $@ $<
+
+$(PKG).gls: $(PKG).glo
+	$(MAKEINDEX) -s gglo.ist -o $@ $<
+
+# final steps of making the PKG.pdf doc file.  At the end, touch the ind and gls files so
+# that they don't look out-of-date (because the idx and glo files were overwritten again)
+$(PKGPDF): $(PKGDTX) $(PKG).aux $(PKG).ind $(PKG).gls
+	$(PDFLATEX) $(PDFLATEXOPTS) $<
+	$(PDFLATEX) $(PDFLATEXOPTS) $<
+	$(PDFLATEX) $(PDFLATEXOPTSLAST) $<
+	touch $(PKG).ind $(PKG).gls $(PKG).pdf
+
+
+cleanaux:
+	@rm -f *.aux *.log *.toc *.glo *.gls *.ind *.idx *.ilg *.out *.bbl *.blg *.synctex.gz *.hd
+
+cleanpdf:
+	@rm -f $(PKGPDF)
+
+# ------------------------------------------------
+# 'make install' partial installation targets
+# ------------------------------------------------
+
+#
+# The install target itself is defined per-package, in case packages want to install more
+# files (such as bibtex styles)
+#
+
+install_sty: $(PKGSTY)
+	mkdir -p $(DESTDIR)$(PREFIX)/tex/latex/$(PKG)
+	cp $(PKGSTY)  $(DESTDIR)$(PREFIX)/tex/latex/$(PKG)
+
+install_doc: $(PKGPDF)
+	mkdir -p $(DESTDIR)$(PREFIX)/doc/latex/$(PKG)
+	cp $(PKGPDF) $(PKGREADME)  $(DESTDIR)$(PREFIX)/doc/latex/$(PKG)
+
+
+
+# ------------------------------------------------
+# make tdszip
+# ------------------------------------------------
+
+TDSTMPDIR = $(CURDIR)/_install_tds_zip.make.tmp
+
+tdszip: $(PKGTDSZIP)
+
+$(PKGTDSZIP): $(PKGSTY) $(PKGPDF)
+	mkdir $(TDSTMPDIR)
+	$(MAKE) install PREFIX=$(TDSTMPDIR)
+	cd $(TDSTMPDIR) && zip -r $(CURDIR)/$(PKGTDSZIP) *
+	rm -rf $(TDSTMPDIR)
+
+cleantdszip:
+	@rm -f $(PKGTDSZIP)
+
+
+# ------------------------------------------------
+# make dist
+# ------------------------------------------------
+
+DISTTMPDIR = $(CURDIR)/_install_dist_zip.make.tmp
+
+dist: $(PKGZIP)
+
+$(PKGZIP): $(PKGTDSZIP)
+	rm -rf $(DISTTMPDIR)
+	mkdir -p $(DISTTMPDIR)/$(PKG)
+	cp $(PKGTDSZIP) $(DISTTMPDIR)
+	cp $(PKGDTX) $(PKGINS) $(PKGPDF) $(PKGREADME) Makefile pkg.mk $(DIST_ADDITIONAL_FILES) $(DISTTMPDIR)/$(PKG)
+	cd $(DISTTMPDIR) && zip -r $(CURDIR)/$(PKGZIP) $(PKGTDSZIP) $(PKG)
+	rm -rf $(DISTTMPDIR)
+
+cleandist:
+	@rm -f $(PKGZIP)


Property changes on: trunk/Master/texmf-dist/doc/latex/phfnote/pkg.mk
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/phfnote/phfnote.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/phfnote/phfnote.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/phfnote/phfnote.dtx	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,3157 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2016 by Philippe Faist <philippe.faist at 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.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{phfnote.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<package>\ProvidesPackage{phfnote}
+%<*package>
+    [2016/08/15 v1.0 phfnote package]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{xcolor}
+\usepackage{lipsum}
+\usepackage[preset=xpkgdoc]{phfnote}
+
+\usepackage{needspace}
+
+\makeatletter
+\newsavebox\phfnoteDocVirtualPage at contents
+\newenvironment{phfnoteDocVirtualPage}{%
+  \par%
+  \begingroup%
+  \makeatletter%
+  \begin{lrbox}{\phfnoteDocVirtualPage at contents}%
+  \begin{minipage}{12cm}\vspace*{0.5cm}\relax%
+    \def\rmdefault{cmr}\def\sfdefault{cmbr}\normalfont%
+    \def\shortlipsum{Lorem ipsum dolor sit amet, consectetuer
+      adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
+      adipiscing vitae, felis. Curabitur dictum gravida
+      mauris. Nam arcu libero, nonummy eget, consectetuer id,
+      vulputate a, magna.}%
+    \def\@title{Notes on Lambda-Majorization}%
+    \def\@author{Ph. Faist}%
+    \def\@date{23.12.2011}%
+    \def\notetitletopspace{0pt}%
+    \def\notetitlefont{\sffamily\bfseries}%
+    \def\morepagecontents{\par\vspace{1em}\centering\ldots}%
+    \ignorespaces%
+  }%
+  {%
+  \end{minipage}%
+  \end{lrbox}%
+  %%\centering%
+  \begin{tcolorbox}[text width=6cm,sharp corners,%
+    before={\par\vspace{5pt}\centering\nopagebreak\parindent=0pt},after={\par\vspace{5pt}},%
+    leftrule=0.4pt,toprule=0.4pt,rightrule=0.6pt,bottomrule=0.6pt,%
+    colframe=black,colback=white]%
+    \scalebox{0.5}{\usebox{\phfnoteDocVirtualPage at contents}}%
+  \end{tcolorbox}%
+  %%\par%
+  \endgroup%
+}
+\makeatother
+
+\def\RevTeX{{\small R\raise-0.2ex\hbox{\textsc{ev}}}\TeX}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\begin{document}
+  \DocInput{phfnote.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+%
+% \changes{v1.0}{2016/04/20}{Initial version}
+%
+% \GetFileInfo{phfnote.dtx}
+%
+% \iffalse Bypass indexing for following commands: \fi
+% \DoNotIndex{\newcommand,\newenvironment,\renewcommand,\long,\def,\edef,\gdef,\xdef,\if,\else,\fi,\par,\relax,\vspace,\vskip,\hspace,\hskip,\vbox,\hbox}
+% 
+% \title{\phfqitltxPkgTitle{phfnote}}
+% \author{Philippe Faist\quad\email{philippe.faist at bluewin.ch}}
+% \date{\pkgfmtdate\filedate}
+% \maketitle
+%
+% \begin{abstract}
+%   \pkgname{phfnote}---A handy \LaTeX{} class for typesetting short notes and
+%   medium-length reports, full of goodies to make it look just right.
+% \end{abstract}
+%
+% \phantomsection\label{sec:toc}
+% \inlinetoc
+%
+% \section{Introduction}
+%
+% Have you ever thought, ``let me write up these short notes using \LaTeX,'' but
+% then disliked the default style of the |article| class?  Have you ever asked
+% yourself why half the page should be taken up by the title?  Yes?  Then
+% welcome to \pkgname{phfnote}.
+%
+% The package \pkgname{phfnote} provides basic formatting for short
+% documents, such as notes on a specific topic, short documentation, or
+% quick memos.  It aims to cover all basic needs for such purposes: include
+% a standard set of relevant packages, a nice title which doesn't take up
+% too much space, better page margin sizes, and some basic styling to make
+% the note look nicer.  At the same time, it is highly configurable so that
+% nothing is really unchangeable.  And all overridden features can be
+% restored individually to their class-provided defaults.
+%
+% This package has been designed to work optimally along with the |article|
+% document class, but in principle any relatively standard \LaTeX{} class should
+% work.  Notes can be typeset in \index{two-column} two-column mode with the
+% |twocolumn| option of for example the |article| class.  Settings such as the
+% page margins and font goodies are automatically adapted to look best according
+% to the standard document font size (10pt, 11pt, or 12pt).
+%
+% Be aware that this package is not meant as a full-fledged formatting class for
+% complicated articles.  For that, you should use a specialized class such as
+% \RevTeX.\footnote{See \url{https://journals.aps.org/revtex}}
+%
+% In the following, we detail individual features of this class, and explain how
+% to activate, deactivate, and customize them.
+%
+%
+% \section{Basic Usage}
+%
+% \subsection{Loading the Package}
+%
+% You can get started with the minimal template:
+%
+% \begin{verbatim}
+% \documentclass[11pt,a4paper]{article}
+% \usepackage{phfnote}
+%
+% \begin{document}
+% \title{Title of my notes}
+% \author{Me}
+% \date{\today}
+% \maketitle
+%
+% ...
+%
+% \end{document}
+% \end{verbatim}
+%
+% The package \pkgname{phfnote} introduces its default note formatting
+% style, with a more compact title, and some formatting adjustments in the
+% text and section headings.
+%
+% \subsection{Presets}
+% \label{sec:presets}
+%
+% There are a number of package options which can be provided to activate,
+% deactivate or adjust the formatting.  The most straightforward way of changing
+% the formatting is to use \emph{presets}.
+%
+% Presets are processed immediately when given in the package option list,
+% meaning that their position in the list is meaningful.  For example, the
+% option list
+% \begin{verbatim}
+%   \usepackage[title=small,preset=article,par=skip]{phfnote}
+% \end{verbatim}
+% will set |title=small| only if it is not overridden by the |article| preset,
+% but will enforce |par=skip| in any case.  You may in theory load several
+% presets, e.g. |preset=sfnote,preset=article|, but this is essentially useless
+% since presets tend to set a wide range of settings such that in any case the
+% last preset specified is effectively applied.
+%
+% First, there is a set of presets which are different alternative ``note''
+% styles.  All the following define the note to have spacing between paragraphs
+% and no first line indentation, use the default note title style, and use a
+% wider page geometry.
+%
+% \begin{pkgoptions}
+% \item[preset=sfnote] {\fontfamily{cmbr}\selectfont Format the note in \LaTeX'
+%   sans-serif ``Computer Modern Bright'' font.  This is a nice, light, font for
+%   short notes, but I find it more difficult to read at smaller font sizes or
+%   in longer paragraphs.}
+% \item[preset=sfssnote] {\fontfamily{cmss}\selectfont Format the note in
+%   \LaTeX' default sans-serif font.  A very nice sans serif font.  It might
+%   look heavy though, depending on your taste.}
+% \item[preset=opensansnote] {\fontfamily{fosj}\selectfont Format the note
+%   in Open Sans font (using the `\pkgname{opensans}' package with some
+%   default options).  A very beautiful and readable sans serif font.}
+% \item[preset=utopianote] {\fontfamily{futs}\selectfont Format the note in
+%   Utopia font (by using the \pkgname{fourier} package).  Perfect to my
+%   taste for documenting code for example, but I find it a bit heavy for
+%   scientific documents.}
+% \item[preset=mnmynote] Format the note in Minion Pro font, with sans
+%   serif text formatted with the Myriad Pro font (professional fonts by
+%   Adobe which can be used in \LaTeX{} with the \pkgname{MinionPro} and
+%   \pkgname{MyriadPro} packages\footnote{See
+%   \url{https://github.com/sebschub/FontPro}; the fonts themselves ship
+%   with some Adobe products}).  These beautiful fonts can be used for any
+%   purpose.
+% \end{pkgoptions}
+% 
+% Based essentially on |utopianote|, the preset |pkgdoc| sets up the
+% document to look nice for a \LaTeX{} package documentation.  The preset
+% |xpkgdoc| adds additional definitions to aid in documenting \LaTeX{}
+% packages on top of |pkgdoc|.
+% \begin{pkgoptions}
+% \item[preset=pkgdoc] Basic formatting and settings for documenting \LaTeX{}
+%   packages. This preset was used for the current document.
+% \item[preset=xpkgdoc] Same as |preset=pkgdoc|, but in addition a set of
+%   useful commands are also provided, the \pkgname{tcolorbox} package is
+%   loaded along with some default boxes.  Also some commands are patched
+%   to achieve some fixes.  This preset is used for the documentation of
+%   packages in the \pkgname{phfqitltx} package suite.  (For details see
+%   the implementation of |\phfnote at preset@xpkgdoc| below.)
+% \end{pkgoptions}
+%
+%
+% The following preset makes the document look more like an article.  There are
+% some slight minor differences with respect to the default |article| class'
+% title in the choice of formatting the title and text.
+%
+% \begin{pkgoptions}
+% \item[preset=article] Sets a more title style closer to |article|'s default
+%   title style (but slightly more compact) and sets paragraphs to indent with
+%   no skip.
+% \end{pkgoptions}
+%
+% The last preset, |reset|, guarantees that including this package is
+% non-invasive, meaning that only new \LaTeX{} macros are made available without
+% altering any appearance.  This is useful if you want to use a small feature
+% provided by this package, but you already have all the page geometry, title,
+% etc.\@ set up and want to make sure those aren't touched.
+%
+% \begin{pkgoptions}
+% \item[preset=reset] Deactivates all features of this package by default.
+%   Individual settings can still later be switched on via specific package
+%   options.  Use this to activate only a specific set of features:
+%   |[preset=reset,...]| will ensure that only the additional given features are
+%   set.
+%
+%   This is safer than deactivating individually all other features, because in
+%   the future we may add new features which may be on by default.  In this
+%   case, the preset |reset| will guarantee all features to be deactivated.
+% \end{pkgoptions}
+%
+% \section{Features}
+%
+% This package provides a large collection of small features, which, put all
+% together, make the document look nicer (hopefully).  Let's go through these
+% features, one by one.
+%
+% Note also that some features provided in the presets, such changing the
+% document font, are not provided as individual features here.  This is because
+% they may be set and customized directly using few lines of \LaTeX{} code or
+% directly by including an external package.  In those cases, you may have a
+% look at the preset's definition for inspiration (see \autoref{impl:presets}).
+%
+% For a summary of package options, see \autoref{sec:package-options}.
+%
+%
+% \subsection{Title Formatting}
+%
+% \subsubsection{Title Styles}
+% \label{sec:title-styles}
+% \label{sec:main-default-title-style}
+%
+% The \pkgname{phfnote} package allows a set of alternative title styles.
+% By default, the |default| title style is used.  You may change this
+% setting with the |title=...| package option.
+%
+% \begin{pkgoptions}
+% \item[title=default] The default title style displays the title in large bold
+%   sans serif font, left-aligned.  Below the title appears the information
+%   about author and date, indented, followed by a horizontal rule.  It looks
+%   like this:
+%   \begin{phfnoteDocVirtualPage}
+%     \notetitle at style@default\null \shortlipsum \morepagecontents
+%   \end{phfnoteDocVirtualPage}
+%   As you can see, it saves more space on the page compared to the default
+%   article title.
+%
+% \item[title=small] A smaller title style which displays all the relevant
+%   information on a single line.  This is useful for when even the default
+%   title style appears too large.  It looks like this:
+%   \begin{phfnoteDocVirtualPage}
+%     \notetitle at style@small\null \shortlipsum \morepagecontents
+%   \end{phfnoteDocVirtualPage}
+%
+% \item[title=article] Mimics the default title style from the |article| class,
+%   but saves a little more space.  It looks like this:
+%   \begin{phfnoteDocVirtualPage}
+%     \vspace*{3em}\notetitle at style@article\null \shortlipsum \morepagecontents
+%   \end{phfnoteDocVirtualPage}
+%
+% \item[title=] An empty argument to |title| instructs \pkgname{phfnote} not to
+%   override any title definition, thus preserving the default class title
+%   style.
+%
+%   Beware that some other title goodies, such as our more advanced |\thanks|
+%   notes, or spacing adjustments for the abstract, will probably not work.
+% \end{pkgoptions}
+%
+%
+% \subsubsection{Customizing the style of the \phfverb{default} and \phfverb{small} title styles}
+% 
+% You may customize the appearance of the |default| and |small| title styles by
+% overriding some macros.
+%
+% \needspace{3\baselineskip}
+% \DescribeMacro{\notetitlefont}\DescribeMacro{\notetitleauthorfont}
+% \DescribeMacro{\notetitledatefont} The macros
+% |\notetitlefont|, |\notetitleauthorfont|, and |\notetitledatefont| set the
+% default main font title, author text and date text.  You may override these
+% settings with, for instance:
+% \begin{verbatim}
+% \renewcommand{\notetitlefont}{\sffamily\bfseries}
+% \renewcommand{\notetitleauthorfont}{\itshape}
+% \renewcommand{\notetitledatefont}{\footnotesize}
+% \end{verbatim}
+% The spacing of the title may be adjusted with the macros
+% \DescribeMacro{\notetitlebelowspace} |\notetitlebelowspace| and
+% \DescribeMacro{\notetitletopspace} |\notetitletopspace|.  Override these with
+% e.g.:
+% \begin{verbatim}
+% \renewcommand{\notetitlebelowspace}{4mm}
+% \renewcommand{\notetitletopspace}{-1.2cm}
+% \end{verbatim}
+% Finally, you may override the command \DescribeMacro{\notetitlehrule}
+% |\notetitlehrule| which draws the rule below the title:
+% \begin{verbatim}
+% \renewcommand{\notetitlehrule}{\hrule height 0.8pt}
+% \end{verbatim}
+% 
+%
+%
+% \subsubsection{Title notes: \phfverb\thanks{} and \phfverb\thanksmark}
+%
+% \DescribeMacro{\thanks}
+% Notes in the title can be introduced with the |\thanks| macro.  You may use
+% this to specify an e-mail address, an affiliation, or any other more specific
+% information.  |\thanks| may appear in all three title, authors and date.
+%
+% The appearance of this additional information depends on the title style.  In
+% the default note title style, such thanks-notes appear directly below the
+% title.  For example, with
+% {\ttfamily|\|author\{Ph.\@ Faist|\|thanks\{|\|itshape Institute for Theoretical Physics, ETH Zurich\}\}}, you get:
+% \begin{phfnoteDocVirtualPage}
+%   \author{Ph. Faist\thanks{\itshape Institute for Theoretical Physics, ETH Zurich}}\relax
+%   \notetitle at style@default\null \morepagecontents
+% \end{phfnoteDocVirtualPage}
+% whereas with the other styles, this information is typeset as regular footnotes.
+%
+% \leavevmode\marginpar{\raggedleft \phfverb\thanks\phfverb{[N]}}\relax
+% You may specify an optional argument to |\thanks|, forcing the footnote to a
+% specific number (it must be a number).  For example, with
+% {\ttfamily|\|author\{Ph.\@ Faist|\|thanks[9]\{|\|itshape Institute for
+% Theoretical Physics, ETH Zurich\}\}}, you get:
+% \begin{phfnoteDocVirtualPage}
+%   \author{Ph. Faist\thanks[9]{\itshape Institute for Theoretical Physics, ETH Zurich}}\relax
+%   \notetitle at style@default\null \morepagecontents
+% \end{phfnoteDocVirtualPage}
+%
+% \DescribeMacro{\thanksmark} |\thanksmark[N]| works with |\thanks| as
+% |\footnotemark| works with |\footnote|.  It just displays the given number as
+% a footnote mark.  In this way, you can have for example several shared
+% affiliations:
+% \begin{phfnoteDocVirtualPage}
+%   \title{Notes about Stuff}
+%   \date{25.12.2015}
+%   \author{First Author\thanks[1]{\itshape Institute ABC}, Second Author\thanks[2]{\itshape Somewhere else},
+%      and Third Author\thanksmark[1]}\relax
+%   \notetitle at style@default\null \morepagecontents
+% \end{phfnoteDocVirtualPage}
+% the author code was:
+% \begin{verbatim}
+% \author{First Author\thanks[1]{\itshape Institute ABC},
+%     Second Author\thanks[2]{\itshape Somewhere else},
+%     and Third Author\thanksmark[1]}
+% \end{verbatim}
+%
+% Unfortunately, you still have to provide the numbering manually.  On the other
+% hand, this package is not meant to replace \RevTeX, so if you're writing a
+% complicated article with many authors and affiliations, you probably shouldn't
+% be using \pkgname{phfnote} in the first place.
+%
+% \begin{pkgwarning}
+%   The optional argument to |\thanks|, as well as the command |\thanksmark|,
+%   are not made available if you don't use one of |\phfnote|'s title styles.
+%
+%   This behavior is such as to prevent interference with more advanced class
+%   mechanisms, such as \RevTeX's.
+% \end{pkgwarning}
+%
+%
+% \subsection{Abstract}
+% \label{sec:abstract-attributes}
+%
+% \DescribeEnv{abstract} The |abstract| environment renders indented text aimed
+% to provide a short summary of the document.  We might use, for example, the
+% following code:
+% \begin{verbatim}
+% \begin{abstract}
+% Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
+% elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
+% Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,
+% consectetuer id, vulputate a, magna.
+% \end{abstract}
+% \end{verbatim}
+%
+% which would look like this:
+% \begin{phfnoteDocVirtualPage}
+%   \title{Notes about Stuff}\relax
+%   \date{25.12.2015}\relax
+%   \author{Me}\relax
+%   \notetitle at style@default
+%   \def\noteabstract at nameline{{\parskip=0pt\relax\par\centering\noteabstractnamefont\abstractname\par}\vskip 1ex\relax}%
+%   \def\noteabstracttextwidth{0.8\textwidth}%
+%   \begin{abstract}
+% Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
+% elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
+% Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,
+% consectetuer id, vulputate a, magna.
+%   \end{abstract}
+%   \morepagecontents
+% \end{phfnoteDocVirtualPage}
+%
+% The |abstract| environment should be given \emph{after} the |\maketitle|
+% command.  (In contrast to, e.g., \RevTeX.)
+%
+% You may customize the appearance of the abstract via a list of attributes
+% given as argument to a package option.  When you combine arguments, make sure
+% to put them in a braced group: |[abstract={wide,noname,it}]|.
+%
+% \begin{pkgoptions}
+% \item[abstract=\pkgoptattrib{wide}] The abstract should not be indented, and
+%   should instead be aligned to the rest of the text.
+% \item[abstract=\pkgoptattrib{narrow}] The abstract should be indented narrower
+%   then by default.
+% \item[abstract=\pkgoptattrib{noname}] The title ``Abstract.'' above the text
+%   will not be typeset.  The abstract text is typeset directly instead.
+% \item[abstract=\pkgoptattrib{original}] Revert to the class' default
+%   implementation of the |abstract| environment.  The class' implementation is
+%   restored and no longer tampered with.
+% \item[abstract=\pkgoptattrib{small}] Use a smaller font for the abstract text
+%   (|\small| font).
+% \item[abstract=\pkgoptattrib{compact}] Reduce spacing before and after the
+%   abstract.  If the abstract is short, this might look slightly better.
+% \item[abstract=\pkgoptattrib{it}] Typeset the abstract text using an italic
+%   typeface.
+% \end{pkgoptions}
+%
+% 
+% The abstract environment's appearance can be customized more finely
+% by redefining some macros.  (In fact, this is what the package
+% options |abstract=...| actually do.)  The font used for the text of
+% the abstract is set by \DescribeMacro{\noteabstracttextfont}
+% |\noteabstracttextfont|.  This macro should expand to font selection
+% commands, such as |\itshape|, |\bfseries|, |\small|, etc.  The title
+% of the abstract (the word ``Abstract.\@'') is typeset in the font set
+% by \DescribeMacro\noteabstractnamefont |\noteabstractnamefont|.  The
+% width of the whole abstract text is determined by
+% \DescribeMacro{\noteabstracttextwidth} |\noteabstracttextwidth|.
+% Observe that |\noteabstracttextwidth| is a macro, and not a proper
+% length, so that it can determine more dynamically the length.  The
+% spacing below \DescribeMacro{\noteabstractafterspacing}
+% (|\noteabstractafterspacing|) and above
+% \DescribeMacro{\noteabstractbeforespacing}
+% (|\noteabstractbeforespacing|) the abstract can further be
+% specified, also as macros.
+%
+% \subsection{Table of Contents}
+% \label{sec:inline-toc}
+%
+% \DescribeMacro{\inlinetoc} The package \pkgname{phfnote} also provides a
+% table of contents typeset with reduced spacing to be more compact, and
+% with horizontal rules before and after.  You can insert the table of
+% contents with the command |\inlinetoc|.  It looks like this:
+%
+% \begin{phfnoteDocVirtualPage}
+%   \title{Notes about Stuff}\relax
+%   \date{25.12.2015}\relax
+%   \author{Me}\relax
+%   \notetitle at style@default
+%   \def\noteabstract at nameline{{\parskip=0pt\relax\par\centering\noteabstractnamefont\abstractname\par}\vskip 1ex\relax}%
+%   \def\noteabstracttextwidth{0.8\textwidth}%
+%   \begin{abstract}
+% Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
+% elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
+%   \end{abstract}
+%   \def\@starttoc#1{\relax
+%     \contentsline {section}{\numberline {1}Introduction}{2}{section.1}
+%     \contentsline {section}{\numberline {2}Basic Usage}{3}{section.2}
+%     \contentsline {subsection}{\numberline {2.1}Loading the Package}{3}{subsection.2.1}
+%     \contentsline {subsection}{\numberline {2.2}Presets}{3}{subsection.2.2}
+%   }\relax
+%   \inlinetoc
+%   \morepagecontents
+% \end{phfnoteDocVirtualPage}
+%
+%
+% \subsection{Predefined Package Sets}
+% \label{sec:package-sets}
+%
+% The \pkgname{phfnote} package also provides sets of standard \LaTeX{}
+% packages to load.  You may choose between a varying degree of
+% ``richness'' of packages included.
+%
+% \begin{pkgoptions}
+% \item[pkgset=none] Do not include any package set.
+%
+% \item[pkgset=minimal] Include some basic minimal set useful for
+%   scientific notes: the \AmS{} packages \pkgname{amsmath},
+%   \pkgname{amssymb}, \pkgname{amsfonts}, and \pkgname{amsthm}.  The
+%   \pkgname{xcolor} package is also loaded.
+%
+% \item[pkgset=rich] Include a fair amount of packages which may be useful.
+%   On top of the |minimal| package set, this set includes the packages
+%   \pkgname{enumitem}, \pkgname{graphicx}, \pkgname{microtype},
+%   \pkgname{caption}, \pkgname{setspace}, as well as \pkgname{inputenc}
+%   with the |utf8| option and \pkgname{fontenc} with the |T1| option.
+%
+%   This package set is loaded by default.
+%
+% \item[pkgset=extended] Additionally, include packages \pkgname{float},
+%   \pkgname{verbdef}, \pkgname{csquotes}, \pkgname{dsfont}, \pkgname{bbm}
+%   and \pkgname{mathtools}.
+%
+% \end{pkgoptions}
+%
+%
+% \subsection{Page Geometry}
+% \label{sec:pagegeomdefs}
+%
+% Another important aspect of \pkgname{phfnote} is the handling of page
+% margins.  Often the default page margins of the \pkgname{article} class
+% are quite narrow.  While it is a good typographical practice to avoid
+% long lines, on occasion we prefer to have notes typeset with wider text.
+% The general answer is the \pkgname{geometry} package, which allows to set all
+% margins in full detail.
+%
+% The \pkgname{phfnote} package provides some standard choices of options for the
+% \pkgname{geometry} package, which are adjusted according to the document font size,
+% and whether the document is typeset in two columns.
+%
+% If you want anything more complicated than what is provided by a default
+% setting here, just use |pagegeomdefs=false| and invoke the \pkgname{geometry} package
+% directly with your preferred set of options.
+%
+% \begin{pkgoptions}
+% \item[pagegeomdefs=true] Include the \pkgname{geometry} package, using the default
+%   settings or whatever is specified with the |pagegeom| option.
+% \item[pagegeomdefs=false] Do not attempt to change the document margins, and
+%   don't load the \pkgname{geometry} package.
+% \item[nopagegeomdefs] Same as |pagegeomdefs=false|.
+% \end{pkgoptions}
+%
+% The page geometry predefined settings are the following.
+%
+% \begin{pkgoptions}
+% \item[pagegeom=default] Default settings. Not too wide, not too
+%   narrow. Settings vary according to single or double column setting, and
+%   according to default font point size.
+% \item[pagegeom=narrow] Narrower style.  For single-column documents, this is
+%   closer to the typographically-advertised-optimal of 50--80 characters per
+%   line, but it might look narrow to some.
+% \item[pagegeom=wide] Wide, comfortable style.  Wastes less paper.
+% \item[pagegeom=xwide] Extra wide.  Use if you pity trees.
+% \item[pagegeom=bigmargin] Makes the margins asymmetric, so that a wide margin
+%   note can fit.  This style is used in this package documentation, for
+%   example.
+% \end{pkgoptions}
+% 
+%
+% \subsection{Section Headers Styling}
+% \label{sec:secfmt}
+%
+% The \pkgname{phfnote} package provides some limited styling of section headers.  The
+% font, size and ``compactness'' of the headers can be adjusted with title options.
+% But really, these options are quite basic.  You should use \pkgname{titlesec} or
+% \pkgname{sectsty} directly if you want anything serious.
+%
+% The section headings are customized using the \pkgname{sectsty} package.  If this
+% conflicts in your document, then use the |[secfmt={}]| package option to
+% indicate that section headings should NOT be styled by this package.  Then take
+% care of section styling manually.
+%
+% Package options may be used to customize the appearance of the section
+% headings by specifying a list of attributes.  When you combine arguments, make
+% sure to put them in a braced group: |[secfmt={section,compact}]|.  Beware that
+% attributes are not merged between different occurrences of the |secfmt|
+% keyword in the package options; the last occurrence defines all set
+% attributes.  If the |secfmt| package option is not given, then by default only
+% the |section| attribute is set.
+%
+% \begin{pkgnote}
+%   Don't forget to include the attribute `|section|' and/or `|paragraph|'
+%   depending on which type of heading you want your settings to apply to.  For
+%   example, \pkgoptionfmt{secfmt=\pkgoptattribnodots{sffamily}} has no effect,
+%   you need to use e.g.\@
+%   \pkgoptionfmt{secfmt=\pkgoptattribnodots{section,sffamily}}.
+% \end{pkgnote}
+% 
+% Available attributes are the following:
+%
+% \begin{pkgoptions}
+% \item[secfmt=\pkgoptattrib{section}] Use the |section| attribute to activate
+%   the styling of section-level headings, that is, |\section|, |\subsection|
+%   and |\subsubsection|.
+% \item[secfmt=\pkgoptattrib{paragraph}] This attribute indicates that the
+%   styling should apply to paragraph-level headings as well (|\paragraph| and
+%   |\subparagraph|).
+% \item[secfmt=\pkgoptattrib{compact}] Reduce the sizes of the section headings
+%   (if the section-level headings are styled, i.e.\@ you need to specify the
+%   |section| attribute), giving the document a more ``compact'' appearance.
+% \item[secfmt=\pkgoptattrib{larger}] Increase the sizes of the section
+%   headings.  Suitable for longer documents or for small document font sizes.
+% \item[secfmt=\pkgoptattrib{secsquares}] Display black squares on the left side
+%   of |\section|-level commands, making them stand out better.  This is useful
+%   for documents (such as the present one) with several layers of sub-sections.
+% \item[secfmt=\pkgoptattrib{secnummargin}] Display the section, subsection, and
+%   subsubsection numbering in the left margin and have the title occupy the
+%   full width of the text (such as for this document).  If you want both
+%   \pkgoptionfmt{secsquares} and \pkgoptionfmt{secnummargin}, you must specify
+%   them in that order, or the black square may end up overlapping with the
+%   number.
+% \item[secfmt=\pkgoptattrib{rmfamily}] Typeset headings in the regular
+%   roman font of the document, instead of trying to apply the
+%   {\fontfamily{ppl}\fontseries{bx}\selectfont Palatino font}.  This
+%   applies to section-level and/or paragraph-level headings, depending on
+%   which of the attributes |section| and/or |paragraph| have been
+%   specified.
+% \item[secfmt=\pkgoptattrib{sffamily}] Typeset headings in a sans-serif font.
+%   The default document sans serif font is used.  This applies to section-level
+%   and/or paragraph-level headings, depending on which of the attributes
+%   |section| and/or |paragraph| have been specified.
+% \item[secfmt=\pkgoptattrib{itpar}] Typeset paragraph-level headings in italic.
+% \item[secfmt=\pkgoptattrib{blockpar}] Change the paragraph-level headings not
+%   to be in ``run-in'' style, but to be typeset on their own line like section
+%   headings.
+% \item[secfmt=\pkgoptattribempty] Leave the argument empty to keep the original class styling;
+%   nothing will be overridden and the \pkgname{sectsty} package is not loaded.
+% \end{pkgoptions}
+%
+% You can also directly modify the section heading style by redefining some
+% macros.  Note that these macros only affect those sectioning commands which we
+% have decided to style, which is specified by the |section| and |paragraph|
+% attributes to be specified in the |secfmt={...}| package option.
+%
+% \DescribeMacro{\notesectionallfont} The macro |\notesectionallfont| is invoked
+% for every sectioning command (for those which are styled, see the |section|
+% and |paragraph| attributes). The macro |\notesectionallfont| internally
+% invokes \DescribeMacro{\notesectionallfontfamily} |\notesectionallfontfamily|
+% to select which font family to use.  The family should be given as the font
+% code, e.g.: |pbk| = {\fontfamily{pbk}\selectfont Bookman}; |bch| =
+% {\fontfamily{bch}\selectfont Charter}; |ppl| = {\fontfamily{ppl}\selectfont
+% Palatino}; |ptm| = {\fontfamily{ptm}\selectfont Adobe Times}; |phv| =
+% {\fontfamily{phv}\selectfont Adobe Helvetica}; |pcr| =
+% {\fontfamily{pcr}\selectfont Adobe Courier}; |put| =
+% {\fontfamily{put}\selectfont Utopia}; |cmr| = {\fontfamily{cmr}\selectfont
+% Computer Modern Roman}; |cmss| = {\fontfamily{cmss}\selectfont CM Sans Serif};
+% |cmbr| = {\fontfamily{cmbr}\selectfont CM Bright}; google many more or look
+% directly into the source of corresponding \LaTeX{} packages.
+%
+% You may customize these either via attributes or by redefining them directly.
+% Beware that if you redefine |\notesectionallfont| then you are responsible for
+% honoring, or ignoring, the value of |\notesectionallfontfamily|.
+%
+% \DescribeMacro{\notesectionfont} \DescribeMacro{\notesubsectionfont}
+% \DescribeMacro{\notesubsubsectionfont} \DescribeMacro{\noteparagraphfont}
+% \DescribeMacro{\notesubparagraphfont} These macros define the font commands to
+% apply for the section heading corresponding to the given sectioning command.
+% This macro is invoked after |\notesectionallfont|, which means that font
+% definitions in these macros take precedence over those in
+% |\notesectionallfont|.
+%
+% \DescribeMacro{\notesectionsetfonts} The macro |\notesectionsetfonts| is a
+% shorthand to set all section font definitions for the section-level commands
+% |\section|, |\subsection|, and |\subsubsection|.  For example,
+% \begin{verbatim}
+%   \notesectionsetfonts{\Large}{\large}{\normalsize}
+% \end{verbatim}
+% will set the font sizes for |\section|, |\subsection| and |\subsubsection| in
+% this order.
+%
+% \DescribeMacro{\noteparagraphsetfonts} The macro |\noteparagraphsetfonts| is
+% the corresponding shorthand for the paragraph-level commands.  It takes two
+% arguments, the font definitions to apply for headings of level |\paragraph|
+% and |\subparagraph|.
+%
+% \subsection{Appearance of Paragraphs}
+% \label{sec:par-defs}
+%
+% Several presets may be set to define the appearance of paragraphs.  
+%
+% \begin{pkgoptions}
+% \item[par=indent] Paragraphs are indented, bearing some
+%   similarity to the \pkgname{article} class' default paragraph style.
+% \item[par=skip] Paragraphs are separated by additional spacing,
+%   and not indented.
+% \item[par=indentminiskip] Paragraphs are indented, but there is also a small
+%   space between each paragraph.
+% \item[par=original] Do not modify the appearance of paragraphs, and leave the
+%   class default.
+% \end{pkgoptions}
+%
+% \subsection{Adjusting Spacing of Lines and Words}
+% \label{sec:spacingdefs}
+%
+% The \pkgname{phfnote} package also provides definitions to adjust spacing of lines and
+% words.
+%
+% This includes definitions to avoid overflowing words in the margin in case of
+% long words.
+% 
+% \begin{pkgoptions}
+% \item[spacingdefs=true] Apply adjustments to line and word spacing.
+% \item[spacingdefs=false] Do not attempt any adjustments of line or word
+%   spacing.
+% \item[nospacingdefs] Alias for |spacingdefs=false|.
+% \end{pkgoptions}
+%
+%
+% \subsection{Adjustments for Fonts}
+% \label{sec:fontdefs}
+%
+% The \pkgname{phfnote} package provides as well some adjustments for fonts to make some
+% fonts look nicer.
+%
+% Concretely, the {\fontfamily{cmbr}\selectfont Computer Modern Bright} font is
+% used as sans serif font instead of {\fontfamily{cmss}\selectfont \LaTeX's
+% default sans serif font}, and the more universal |T1| font encoding is used
+% instead of the default |OT1|.
+%
+% \begin{pkgoptions}
+% \item[fontdefs=true] Apply adjustments to fonts.
+% \item[fontdefs=false] Do not apply adjustments to fonts.
+% \item[nofontdefs] Same as |fontdefs=false|.
+% \end{pkgoptions}
+%
+% \subsection{Footnote Figure Style}
+% \label{sec:footnotedefs}
+%
+% The footnotes' appearance can also be slightly enhanced.
+%
+% \begin{pkgoptions}
+% \item[footnotedefs=true] Changes the symbol appearance a little bit---the
+%   footnote number is smaller and typeset in boldface.
+% \item[footnotedefs=false] Do not change the footnote appearance.
+% \item[nofootnotedefs] Same as |footnotedefs=false|.
+% \end{pkgoptions}
+% 
+%
+% \subsection{Hyperref Loading}
+% \label{sec:hyperrefdefs}
+%
+% There are many options for setting up the \pkgname{hyperref} package, and often, the
+% defaults (with boxed links) are pretty ugly in my opinion.  Enable the
+% |hyperrefdefs| feature of \pkgname{phfnote} to alter the defaults to something I
+% personally like better (dark blue links as in this document).
+%
+% \begin{pkgoptions}
+% \item[hyperrefdefs=true] Load the \pkgname{hyperref} package, and set some sensible
+%   settings.  Also ensures the |\email| and |\url| commands are made available.
+% \item[hyperrefdefs=false] Do not load the \pkgname{hyperref} package, do not set
+%   sensible settings.
+% \item[nohyperrefdefs] Same as |hyperrefdefs=false|.
+% \end{pkgoptions}
+%
+% \DescribeMacro{\url} In order to typeset URLs, the |\url| command is made
+% available from the package \pkgname{url} (which is then linkified by \pkgname{hyperref}).  For
+% example, you can type |\url{https://github.com/phfaist/}|.
+%
+% \DescribeMacro{\email} A similar command allows to typeset e-mail addresses.
+% The text is displayed as a hyperlink, which when clicked opens a e-mail
+% composer to that address (via a |mailto:XXX| link).  For example, try
+% |\email{pulp_fiction at tarantino.com}|.
+%
+% \DescribeMacro{\phfnotePdfLinkColor} The command |\phfnotePdfLinkColor| may by
+% used to set the color of the links.  It takes one argument, a color
+% specification understood by the \pkgname{xcolor} package.  For example:
+% \begin{verbatim}
+%   \phfnotePdfLinkColor{green!50!black}
+% \end{verbatim}
+%
+% \begin{pkgnote}
+%   The package \pkgname{xcolor} must be loaded for |\phfnotePdfLinkColor|
+%   to work.  (The \pkgname{xcolor} package is automatically loaded as part
+%   of a package set as long as you're not using the option |pkgset=none|;
+%   see \autoref{sec:package-sets}.)
+% \end{pkgnote}
+%
+%
+% \subsection{Bibliography Definitions}
+% \label{sec:bibliographydefs}
+%
+% This package also provides some definitions for the bibliography.
+%
+% It sets the |naturemagdoi| style by default, which is a hacked (by yours
+% truly) version of the |naturemag| style to include the journal name as a
+% hyperlink (as in APS bibliography styles).
+%
+% The bibliography is also typeset in a smaller font.
+%
+% Finally, an entry in the table of contents is generated.
+%
+% \begin{pkgoptions}
+% \item[bibliographydefs=true] Load the \pkgname{hyperref} package, and set some sensible
+%   settings.  Also ensures the |\email| and |\url| commands are made available.
+% \item[bibliographydefs=false] Do not load the \pkgname{hyperref} package, do not set
+%   sensible settings.
+% \item[nobibliographydefs] Same as |bibliographydefs=false|.
+% \end{pkgoptions}
+%
+% \DescribeMacro{\bibliography} \DescribeMacro{\bibliographystyle} The
+% |\bibliographystyle| and |\bibliography| macros can be used as usual, for
+% example:
+% \begin{verbatim}
+%   \bibliographystyle{apsrmp4-1} % optional
+%   \bibliography{mybibfile}
+% \end{verbatim}
+% bearing in mind that if the |\bibliographystyle| command is not present, our
+% custom |naturemagdoi| bibliography style is used.
+%
+%
+% \subsection{URL Styles}
+% \label{sec:url-styles}
+%
+% As a bonus, the \pkgname{phfnote} package provides an alternative set of URL styles to
+% use with the |\url| and |\email| commands (see \autoref{sec:hyperrefdefs}).
+%
+% All the styles described below typeset the URL in a slightly smaller size, so
+% as to avoid a common issue with URLs that they tend to appear too large.
+% Also, the tilde character is fixed so that it appears nicely, as in:\\
+% \url{https://people.phys.ethz.ch/~pfaist/}.
+%
+% The URL style can be set with the command |\urlstyle|\marg{name of style}.
+%
+% \begin{description}[font=\ttfamily,labelwidth=8em]
+% \item[notett] typewriter font
+% \item[notesf] default sans serif font
+% \item[notesfss] Computer Modern Sans Serif font
+% \item[noteitsf] italic using default sans serif font 
+% \item[noterm] normal roman typeface
+% \item[noteit] just italic typeface
+% \item[notesml] just smaller than surrounding text
+% \end{description}
+%
+%
+% \subsection{A \phfverb{\notesmaller} Command}
+%
+% This general-purpose command is handy to typeset text smaller than its
+% surrounding text, for when you don't know what size the surrounding text is
+% typeset at.  In some sense, this is a very very lightweight analogue of what
+% the \pkgname{relsize} package does.  (This is used, for example, in our implementation
+% of URL styles introduced in \autoref{sec:url-styles}.)
+%
+% \DescribeMacro{\notesmaller}\DescribeMacro{\notesmaller[0.8]} Set the font
+% size to a fraction of the surrounding font size.  The fraction may be
+% specified as an optional argument.  A fraction of 0.8 makes the text size 0.8
+% times that of the surrounding text, that is, smaller than the surrounding
+% text.  A value of 1 does not change the font size.  If the fraction is not
+% specified, the value stored in |\notesmallerfrac| is used.
+%
+% \DescribeMacro{\notesmallerfrac} The fraction by which |\notesmaller| typesets
+% smaller text when no optional argument is given.  You may redefine this
+% command to set the default ``smaller'' size fraction.
+%
+% \subsection{Tools Mostly for Hackers}
+%
+% The \pkgname{phfnote} package also provides some small hacks.  They are documented
+% further in \autoref{sec:impl-other-stand-alone-defs}.  These are:
+% \DescribeMacro{\phfnoteHackSectionStarWithTOC} a macro
+% |\phfnoteHackSectionStarWithTOC| to hack into a command which generates a
+% |\section*|, in order for that command to also generate a corresponding entry
+% in the table of contents; and
+% \DescribeMacro{\phfnoteSaveDefs}\DescribeMacro{\phfnoteRestoreDefs} a pair of
+% commands to save and restore \LaTeX{} definitions.
+%
+% 
+%
+%
+% \section{Summary of Package Options}
+% \label{sec:package-options}
+%
+% \begin{pkgoptions}
+% \item[preset=\meta{preset name}] Load a preset specifying a predefined set of
+%   options for the general appearance of the document.  See documentation in
+%   \autoref{sec:presets}
+% \item[title=\meta{title style}] Set the title style.  Documentation in
+%   \autoref{sec:title-styles}
+% \item[abstract=\meta{abstract attributes}] Set the abstract style by
+%   specifying a comma-separated list of attributes.  Don't forget to
+%   put the list of attributes within braces,
+%   |[abstract={wide,noname,it}]|.  Documentation in
+%   \autoref{sec:abstract-attributes}
+% \item[pkgset=\meta{package set}] Specify a standard set of \LaTeX{}
+%   packages to load.  See \autoref{sec:package-sets}.
+% \item[pagegeomdefs=\meta{true or false}] Whether to care about page
+%   margins. |nopagegeomdefs| is synonym for |pagegeomdefs=false|.
+% \item[pagegeom=\meta{geom style}] Set a page margin style.  Only has effect if
+%   |pagegeomdefs=true|.  Options are documented in \autoref{sec:pagegeomdefs}.
+% \item[secfmt=\meta{section formatting attributes}] A list of attributes
+%   defining how section (and possibly paragraph) headings should look like.
+%   See \autoref{sec:secfmt}.
+% \item[par=\meta{par style}] Define how paragraphs should be spaced.  Refer to
+%   \autoref{sec:par-defs}.
+% \item[spacingdefs=\meta{true or false}] Adjust spacing of lines and words
+%   (\autoref{sec:spacingdefs}).
+% \item[fontdefs=\meta{true or false}] Adjust some fonts
+%   (\autoref{sec:fontdefs}).
+% \item[footnotedefs=\meta{true or false}] Adjust slighly the appearance of
+%   footnotes.  See \autoref{sec:footnotedefs}.
+% \item[hyperrefdefs=\meta{true or false}] Load the \pkgname{hyperref} package, and set
+%   some defaults settings.  See \autoref{sec:hyperrefdefs}.
+% \item[bibliographydefs=\meta{true or false}] Adjust the appearance and style
+%   of the bibliography.  See \autoref{sec:bibliographydefs}.
+% \end{pkgoptions}
+%
+% \begin{pkgtip}
+%   To activate only a subset of features, use \pkgoptionfmt{preset=reset} and then
+%   enable only the features required.  In this way, you can ensure that only those
+%   features which are explicitly specified are enabled.
+% \end{pkgtip}
+%
+%
+% \StopEventually{\PrintChangesAndIndex}
+%
+% \section{Implementation}
+%
+% Here comes the gory code.
+%
+% Let's start by loading the \pkgname{kvoptions} package, which we need to
+% parse the package options.  It's better to use \pkgname{xkeyval} as
+% backend, because the |\setkeys| by \pkgname{keyval} is a little fragile:
+% for example, it gets confused if, within a preset, we include a package
+% or run a command which itself parses key-vals.
+%
+%    \begin{macrocode}
+\RequirePackage{xkeyval}
+\RequirePackage{kvoptions}
+%    \end{macrocode}
+%
+% Also load \pkgname{etoolbox}, for various utilities.
+%    \begin{macrocode}
+\RequirePackage{etoolbox}
+%    \end{macrocode}
+%
+% \subsection{Internal Generic Code}
+%
+% \begin{macro}{\phfnote at internal@execattribbs}
+%   An internal general-purpose macro to execute all definitions given in list of
+%   attributes.
+%
+%   Often, a list of attributes are given via a package option (e.g.\@ for the abstract),
+%   and these attributes need to be executed, or implemented, in the order they are given.
+%   This macro takes care of that.  Each possible attribute must be defined as a macro
+%   with a common prefix, to which the attribute is appended.
+%
+%   The arguments are:
+%   \begin{itemize}
+%   \item |#1| = prefix to look for attributes (e.g.\@ |noteabstract at attr@|);
+%   \item |#2| = a human-readable name of what |#1| represents, which is used in an error
+%     message in case the required attribute is not found (e.g.\@ |{abstract attribute}|);
+%   \item |#3| = the list of attributes specified by the user.
+%   \end{itemize}
+% 
+%   For example, |\phfnote at internal@execattribs{noteabstract at attr@}|\hskip0pt\relax
+%   |{abstract attribute}|\hskip0pt\relax |{noname,small}| causes the commands
+%   |\noteabstract at attr@noname| and |\noteabstract at attr@small| to be invoked, in this
+%   order.
+%
+%    \begin{macrocode}
+\def\phfnote at 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
+  }
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \subsection{Title Styling}
+%
+% See \autoref{sec:title-styles} for a description of the styles and which
+% features are available.
+%
+% \subsubsection{First, some common simple definitions for our different styles}
+%
+% \needspace{3\baselineskip}
+% \begin{macro}{\notetitlefont}
+% \begin{macro}{\notetitleauthorfont}
+% \begin{macro}{\notetitledatefont}
+%   These may be redefined to adapt the font of the title, author and date.
+%
+%    \begin{macrocode}
+\newcommand{\notetitlefont}{\sffamily\bfseries}
+\newcommand{\notetitleauthorfont}{}
+\newcommand{\notetitledatefont}{\footnotesize}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\notetitlebelowspace}
+% \begin{macro}{\notetitletopspace}
+%   These macros may be redefined to adjust spacing above and after the title.  They are
+%   macros, not lengths, so they can be adjusted dynamically on the spot.
+%    \begin{macrocode}
+\newcommand{\notetitlebelowspace}{4mm}
+\newcommand{\notetitletopspace}{-1.2cm}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\notetitlehrule}
+%   Allow customization of the horizontal rule below the title.  The macro
+%   |\notetitlehrule| expands to commands which generate the rule, such as
+%   ``|\hrule height 1pt|''.
+%    \begin{macrocode}
+\newcommand{\notetitlehrule}{\hrule}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\notetitle at title}
+%   Provide a ``long'' definition for |\title|, so that the title can have several
+%   paragraphs.  Our style handles this by putting the title on several lines, and it can
+%   be useful depending on how you want to format the title.
+%
+%   This macro will replace |\title| when a title style is actually selected in
+%   |\phfnote at do@notetitle|.
+%    \begin{macrocode}
+\long\def\notetitle at title#1{\long\gdef\@title{#1}}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnote at title@checksetspace}
+%   Some of our title styles require the \pkgname{setspace} package.  This utility checks that
+%   this package is loaded, and generates an error otherwise.
+%
+%   |#1| = the current title style name; this is required only for the error message.
+%    \begin{macrocode}
+\def\phfnote at 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%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Implementation of \phfverb\thanks{} and \phfverb\thanksmark}
+%
+% Here we provide a few fixes for the implementation of |\thanks|, both for our main
+% `default' title style as well as for other simpler styles.  Our implementation supports
+% |\thanks[N]{...}| and |\thanksmark[N]| as for footnotes.
+%
+% These newer implementations are only applied if one of our title styles is set.
+% Otherwise, the class defaults are left (which may be needed, e.g., for \RevTeX).
+%
+% \paragraph{Implementation of \phfverb{\thanks} and friends for our main
+% `default' title style}
+%
+% \begin{macro}{\phfnote at setupthanksmpfootnote}
+%   Internal---called at the beginning of a |minipage| environment, it sets up necessary
+%   stuff to support |\thanks| notes within the minipage, in a single paragraph.
+%
+%   Some of this code was taken or really inspired directly from |latex.ltx|.
+%    \begin{macrocode}
+\def\phfnote at setupthanksmpfootnote{%
+%    \end{macrocode}
+% 
+% The |\thanks| macro is implemented as a |\footnote| in a minipage.  So we hack into the
+% `mpfootnote' mechanism.
+%    \begin{macrocode}
+  \def\thempfootnote{\arabic{mpfootnote}}%
+  \let\footnoterule\relax%
+  \let\thanks\footnote%
+%    \end{macrocode}
+%
+% All footnote material is stored in a macro |\phfnote at mpfootmaterial|, initially
+% empty:\footnote{NOTE: this differs from how footnotes are usually treated (directly
+% typeset into a vbox I think).  Not sure what the side-effects might be.  Because this is
+% just for simple email/institute info/etc. in the title, hopefully this shouldn't have
+% any serious consequences.}
+%    \begin{macrocode}
+  \def\phfnote at mpfootmaterial{}%
+%    \end{macrocode}
+% and locally define |\@mpfootnotetext| to store the footnote content into that buffer,
+%    \begin{macrocode}
+  \long\def\@mpfootnotetext##1{%
+    \protected at edef\@currentlabel%
+         {\csname p at mpfootnote\endcsname\@thefnmark}%
+    \protected at edef\@tmpa{\protect\phfnote at mympfootnotemark{\@thefnmark}{##1}%
+      \protect\phfnote at mpfootnoteglue}%
+    \expandafter\g at addto@macro\expandafter\phfnote at mpfootmaterial%
+      \expandafter{\@tmpa}%
+  }%
+%    \end{macrocode}
+% 
+% Also provide |\thanksmark|, so that we can refer to other thanks/footnote-marks.
+%    \begin{macrocode}
+  \def\thanksmark[##1]{\phfnote at mympfootnotemark{##1}}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\phfnote at finalizempfootnotes}
+%   Macro to call at the end of a |minipage| environment, to ensure that all |\footnote|'s
+%   (and thus |\thanks|'s) are properly formatted.
+%
+%   This simply takes all the tokens collected in |\phfnote at mpfootmaterial| (see just
+%   above), and typesets it in the |\@mpfootins| box.  The latter is automatically typeset
+%   by the minipage in |\end{minipage}|.
+%  \begin{macrocode}
+\def\phfnote at finalizempfootnotes{%
+  \global\setbox\@mpfootins=\vbox{%
+    \parskip=0pt\parindent=0pt\parshape 1 0.04\textwidth 0.96\textwidth\relax%
+    \noindent\leavevmode%
+    \reset at font\footnotesize%
+    \phfnote at fmt@titlefootnotes%
+    \phfnote at mpfootmaterial}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \needspace{3\baselineskip}
+% \begin{macro}{\phfnote at fmt@titlefootnotes}
+% \begin{macro}{\phfnote at mympfootnotemark}
+% \begin{macro}{\phfnote at mpfootnoteglue}
+%   Some formatting utilities which can be overridden if you know what you're doing.
+%   |\phfnote at fmt@titlefootnotes| allows you to override the font in which the
+%   title-footnotes/thanks are typeset.  |\phfnote at mympfootnotemark| is responsible for
+%   formatting its argument as a footnote mark, usually in superscript.
+%   |\phfnote at mpfootnoteglue| is the glue which is used between two footnote texts (as
+%   they are typeset in a single paragraph).
+%    \begin{macrocode}
+\def\phfnote at fmt@titlefootnotes{}
+\def\phfnote at mympfootnotemark#1{\@textsuperscript{\normalfont#1}}
+\def\phfnote at mpfootnoteglue{\hskip 1.2em plus 2em minus 0.5em\relax}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+%
+% \paragraph{For those not using the main `default' title style}
+%
+% We use \LaTeX's own |\thanks| mechanism, however we patch on the possibility for using
+% |\thanks[N]{text}| and |\thanksmark[N]| for overriding the number which is used.
+%
+% \begin{macro}{\notetitle at thanksmark}
+%   The |\thanksmark| is trivially implemented by |\footnotemark|.  Very handy indeed.
+%
+%   Again, this macro is only made available as |\thanksmark| when a title style is set in
+%   |\phfnote at do@notetitle|.
+%    \begin{macrocode}
+\def\notetitle at thanksmark{\footnotemark}
+%    \end{macrocode}
+% \end{macro}
+% 
+% Start by saving the old |\thanks| macro, just in case.
+%    \begin{macrocode}
+\let\phfnote at old@thanks\thanks
+%    \end{macrocode}
+%
+% \begin{macro}{\notetitle at thanks}
+%   Now, we need to extend \LaTeX's |\thanks| to allow an optional argument as for
+%   footnotes.  This macro will be renamed |\thanks| in |\phfnote at do@notetitle|.
+%
+%   Check whether there is an optional argument; if there is none we execute \LaTeX's
+%   original thanks code (replicated here), otherwise, we specify the optional argument
+%   explicitly at the relevant location in \LaTeX's implementation:
+%    \begin{macrocode}
+\def\notetitle at thanks{\@ifnextchar[\phfnote at thanks{\phfnote at thanks[]}}%]
+\long\def\phfnote at thanks[#1]#2{%
+  \if\relax\detokenize{#1}\relax%
+%    \end{macrocode}
+% 
+% The optional argument is empty---just execute \LaTeX's original |\thanks| code,
+% replicated here:
+%    \begin{macrocode}
+    \footnotemark%
+    \protected at xdef\@thanks{\@thanks\protect\footnotetext[\the\c at footnote]{#2}}%
+%    \end{macrocode}
+% 
+% Otherwise, execute \LaTeX's original |\thanks| code, but with the optional argument
+% inserted wherever needed:
+%    \begin{macrocode}
+  \else% argument, pass on to sub-commands:
+    \footnotemark[#1]%
+    \protected at xdef\@thanks{\@thanks\protect\footnotetext[#1]{#2}}%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \subsubsection{Title Styles Definition}
+%
+% The title styles are documented in \autoref{sec:title-styles}.
+%
+% \paragraph{Title style: `default'}
+%
+% Implementation our main `default' title style.  See \autoref{sec:main-default-title-style}.
+%
+% \begin{macro}{\notetitle at style@default}
+%    The default title style.  Nothing mysterious, hopefully.
+%    \begin{macrocode}
+\newcommand{\notetitle at style@default}{%
+  \begingroup\par\raggedright%
+    \phfnote at setupthanksmpfootnote%
+    \vspace*{\notetitletopspace}%
+    \phfnote at title@checksetspace{default}%
+    \begin{minipage}{\textwidth}%
+      \begin{singlespace}%
+        \parskip=0pt\parindent=0pt\relax%
+        {\let\phfnote at old@par\par%
+          \def\par{\phfnote at 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 at finalizempfootnotes%
+      \end{singlespace}%
+    \end{minipage}\par%
+    \vspace*{2mm}%
+    \notetitlehrule\relax%
+    \par%
+  \endgroup%
+  \vskip\notetitlebelowspace\relax% don't change this, abstract needs to \removelastskip
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \paragraph{Title style: `small'}
+%
+% Implementation an alternate `small' title style.
+%
+% \begin{macro}{\notetitle at style@small}
+%    The default title style.  Nothing mysterious, hopefully.
+%    \begin{macrocode}
+\newcommand{\notetitle at 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
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% 
+% \paragraph{Title style: `article'}
+%
+% Implementation the `article' title style.
+%
+% \begin{macro}{\notetitle at style@article}
+%    The title style definition.  Nothing mysterious, hopefully.
+%    \begin{macrocode}
+\newcommand{\notetitle at 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%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \subsubsection{Plugging into \phfverb{\maketitle}}
+%
+% Actually perform the definitions to make |\maketitle| produce the
+% title with the given style.  Specifically, we override
+% |\@maketitle|. The latter is called internally by |\maketitle|, and
+% the advantage of overriding |\@maketitle| only is that we inherit
+% the mechanism provided by the style class to deal with two-column
+% layouts.
+%
+% \begin{macro}{\phfnote at do@notetitle}
+%   This macro takes care of installing the correct title into the
+%   document, by overriding |\@maketitle|.
+%
+%   This macro is called later after processing the package options.
+%   Its argument |#1| is the style name, e.g., |default|.
+%
+%    \begin{macrocode}
+\def\phfnote at do@notetitle#1{
+%    \end{macrocode}
+% If we have an empty title style, then we leave default title provided by the class. 
+%    \begin{macrocode}
+  \if\relax\detokenize\expandafter{#1}\relax
+  \else
+%    \end{macrocode}
+% Otherwise, we have a title style to set.  Do some checks that the given style is indeed
+% defined.
+%    \begin{macrocode}
+    \ifcsname notetitle at style@#1\endcsname
+      \def\phfnote at tmp@titsty{#1}%
+    \else
+      \PackageError{phfnote}{Unknown title style: '#1'.}{Unknown title
+        style: '#1'. Please consult the package documentation for available
+        styles.}
+      \def\phfnote at tmp@titsty{default}%
+    \fi
+%    \end{macrocode}
+% Apply new (default) definitions of |\thanks|, |\thanksmark| and |\title|.  Do this here
+% only, because this can clash with more complicated versions from, e.g., \RevTeX.
+%    \begin{macrocode}
+    \let\title\notetitle at title
+    \let\thanks\notetitle at thanks
+    \let\thanksmark\notetitle at thanksmark
+%    \end{macrocode}
+% Now, actually overload the title style by redefining |\@maketitle|.
+%    \begin{macrocode}
+    \def\@maketitle{\csname notetitle at style@\phfnote at tmp@titsty\endcsname}
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Abstract}
+%
+% Now we can take care of the abstract.  Unlike the title styles, the abstract has a base
+% implementation.  Then, we may have attributes which change some parameters.
+%
+% 
+% \begin{environment}{notedefaultabstract}
+%   First, save the old environment |\begin{abstract}...\end{abstract}| provided by the
+%   class (if any).
+%    \begin{macrocode}
+\let\notedefaultabstract\abstract
+\let\endnotedefaultabstract\endabstract
+%    \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\noteabstracttextfont}
+% \begin{macro}{\noteabstractnamefont}
+% \begin{macro}{\noteabstracttextwidth}
+% \begin{macro}{\noteabstractafterspacing}
+% \begin{macro}{\noteabstractbeforepacing}
+%   Macros which can be overridden to customize the abstract.  See
+%   \autoref{sec:abstract-attributes}.
+%    \begin{macrocode}
+\newcommand{\noteabstracttextfont}{}
+\newcommand{\noteabstractnamefont}{\bfseries\small}
+\if at twocolumn
+  \newcommand\noteabstracttextwidth{\hsize}
+\else
+  \newcommand{\noteabstracttextwidth}{0.9\hsize}
+\fi
+\newcommand\noteabstractafterspacing{1.5em}
+\newcommand\noteabstractbeforespacing{1.5em}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\noteabstract at nameline}
+%   Create the line which contains the title of the abstract, that is, the word
+%   ``Abstract.''  This can be overloaded, of course, for customization.
+%    \begin{macrocode}
+\def\noteabstract at nameline{
+  {\parskip=0pt\relax\par\centering\noteabstractnamefont%
+    \abstractname%
+    \par}\vskip 1ex\relax%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{environment}{noteabstract}
+%   The proper |noteabstract| environment.
+%
+%    \begin{macrocode}
+\newenvironment{noteabstract}{%
+  \removelastskip%
+  \vspace{\noteabstractbeforespacing}%
+  \begingroup%
+    \par\noindent\centering%
+    \begin{minipage}{\noteabstracttextwidth}%
+      \noteabstract at nameline%
+      \noteabstracttextfont%
+    }%
+    {%
+    \end{minipage}%
+    \par%
+  \endgroup%
+  \vspace{\noteabstractafterspacing}%
+}
+%    \end{macrocode}
+% \end{environment}
+% 
+% The abstract can be customized by the attributes.  Here we define them:
+%    \begin{macrocode}
+\def\noteabstract at attr@wide{%
+  \def\noteabstracttextwidth{\textwidth}%
+}
+\def\noteabstract at attr@narrow{%
+  \if at twocolumn
+  \else
+    \def\noteabstracttextwidth{0.8\textwidth}%
+  \fi
+}
+\def\noteabstract at attr@noname{%
+  \def\noteabstract at nameline{}%\vspace*{1ex}}%
+}
+\def\noteabstract at attr@original{%
+  \let\abstract\notedefaultabstract
+  \let\endabstract\endnotedefaultabstract
+}
+\def\noteabstract at attr@small{%
+  \g at addto@macro\noteabstracttextfont{\small}%
+}
+\def\noteabstract at attr@compact{%
+  \renewcommand\noteabstractafterspacing{1ex}%
+  \renewcommand\noteabstractbeforespacing{1ex}%
+}
+\def\noteabstract at attr@it{%
+  \g at addto@macro\noteabstracttextfont{\itshape}%
+}
+%    \end{macrocode}
+% 
+% \begin{macro}{\phfnote at do@noteabstract}
+%   This helper both defines the |abstract| environment, and also sets the abstract
+%   attributes.  This macro will be called according to the package options.
+%
+%  |#1| = a comma-separated list of attributes.
+%    \begin{macrocode}
+\def\phfnote at do@noteabstract#1{
+  \let\abstract\noteabstract
+  \let\endabstract\endnoteabstract
+  \phfnote at internal@execattribs{noteabstract at attr@}{abstract attribute}{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+%
+% \subsection{Page Geometry Settings}
+%
+% For the page geometry settings, we just have a bunch of styles which we define as
+% macros.  The macros just set up |\PassOptionsToPackage| for the \pkgname{geometry} package.
+% Then the correct macro will be selected according to the current \pkgname{phfnote} package
+% options.
+%
+% The description of these settings are given in \autoref{sec:pagegeomdefs}.
+%
+% \begin{macro}{\phfnote at pagegeomstyle@default}
+%   Default setting.
+%    \begin{macrocode}
+\def\phfnote at pagegeomstyle@default{
+  \if at 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
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnote at pagegeomstyle@narrow}
+%   Narrow style.
+%    \begin{macrocode}
+\def\phfnote at pagegeomstyle@narrow{
+  \if at 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
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\phfnote at pagegeomstyle@wide}
+%   Wide style.
+%    \begin{macrocode}
+\def\phfnote at pagegeomstyle@wide{
+  \if at 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
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnote at pagegeomstyle@xwide}
+%   Extra wide.
+%    \begin{macrocode}
+\def\phfnote at pagegeomstyle@xwide{
+  \if at 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
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\phfnote at pagegeomstyle@bigmargin}
+%   |bigmargin| style.
+%    \begin{macrocode}
+\def\phfnote at pagegeomstyle@bigmargin{%
+  \if at 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
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% 
+% \begin{macro}{\phfnote at do@pagegeomdefs}
+%   Finally, provide a helper to set the page geometry.  Just call the right macro.
+%    \begin{macrocode}
+\newcommand{\phfnote at do@pagegeomdefs}[1]{
+  \ifcsname phfnote at pagegeomstyle@#1\endcsname
+    \csname phfnote at pagegeomstyle@#1\endcsname
+  \else
+    \PackageWarning{phfnote}{Unknown page geometry style: `#1'!}
+  \fi
+
+  \RequirePackage{geometry}%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Text, Paragraph and Line Spacing}
+%
+% \paragraph{Text \& Line Spacing}
+%
+% \begin{macro}{\phfnote at do@spacing}
+%   Some cosmetic definitions to adjust line spacing.  The line spacing is slightly
+%   adjusted according to font size to make the document more readable.  Depending on
+%   whether the \pkgname{setspace} package is loaded, we use it or go low-level with a
+%   redefinition of \LaTeX{}' |\baselinestretch|.  If the \pkgname{captions} package is loaded,
+%   the figure captions' line spacing is also adjusted.
+%   
+%   Also set an |\emergencystretch| so that lines get spaced out for underfull boxes,
+%   rather than overflowing far into the margin.
+%    \begin{macrocode}
+\def\phfnote at do@spacing{
+  \@ifpackageloaded{setspace}{
+    \def\phfnote at dostretch##1{%
+      \setstretch{##1}\phfnote at docaptionstretch{##1}}
+  }{
+    \def\phfnote at dostretch##1{%
+      \renewcommand\baselinestretch{##1}\phfnote at docaptionstretch{##1}}
+  }
+  \@ifpackageloaded{caption}{
+    \def\phfnote at docaptionstretch##1{\captionsetup{font={stretch=##1}}}
+  }{
+    \def\phfnote at 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 at twocolumn
+    \phfnote at dostretch{1.0} % leave default
+    \emergencystretch=3em\relax
+  \else
+    \ifcase\@ptsize% 10pt
+      \phfnote at dostretch{1.1}
+    \or% 11pt
+      \phfnote at dostretch{1.0} % 1.05? better 1.0...
+    \or% 12pt
+      \phfnote at dostretch{1.0} % 1.03? not really noticeable...
+    \fi
+    \emergencystretch=6em\relax
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \paragraph{Paragraph Spacing Presets}
+%
+% Here again, we define several possibilities for paragraph settings as
+% individual macros (see \autoref{sec:par-defs}).  Depending on the package
+% option, we execute the corresponding macro.
+%
+%    \begin{macrocode}
+\def\phfnote at par@original{%
+}
+\def\phfnote at par@indent{%
+  \parindent=1.5em\relax
+  \parskip=0pt\relax
+}
+\def\phfnote at par@indentminiskip{%
+  \parindent=1.5em\relax
+  \parskip=0.3em plus 0.1em\relax
+}
+\def\phfnote at par@skip{%
+  \parindent=0pt\relax
+  \parskip=0.8em plus 0.2em minus 0.1em\relax
+}
+%    \end{macrocode}
+% 
+% \begin{macro}{\phfnote at do@par}
+%   Execute the given paragraph setting.  The argument |#1| is the setting, for example,
+%   |skip|.
+%    \begin{macrocode}
+\def\phfnote at do@par#1{%
+  \ifcsname phfnote at par@#1\endcsname
+    \csname phfnote at par@#1\endcsname
+  \else
+    \PackageWarning{phfnote}{Bad paragraph setting: #1. Leaving original}
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+%
+%
+% \subsection{Section Styling}
+%
+% Very limited support for styling section and paragraph headers
+% (\autoref{sec:secfmt}).  If you want anything serious, use \pkgname{sectsty} or
+% \pkgname{titlesec} directly.
+%
+% \begin{macro}{\notesectionallfont}
+% \begin{macro}{\notesectionallfontfamily}
+%   Define the |\notesectionallfont| and |\notesectionallfontfamily|, which
+%   control the general font used in section headings.
+%    \begin{macrocode}
+\newcommand{\notesectionallfont}{%
+  \fontfamily{\notesectionallfontfamily}\fontseries{bx}\selectfont}
+\newcommand{\notesectionallfontfamily}{ppl}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+%
+% \begin{macro}{\notesectionfont}
+% \begin{macro}{\notesubsectionfont}
+% \begin{macro}{\notesubsubsectionfont}
+% \begin{macro}{\noteparagraphfont}
+% \begin{macro}{\notesubparagraphfont}
+%   These macros are called for their respective sectioning command,
+%   after |\notesectionallfont| has been invoked. (Again, only for
+%   those sectioning commands which are styled by us.)
+%
+%    \begin{macrocode}
+\newcommand{\notesectionfont}{\large}
+\newcommand{\notesubsectionfont}{\normalsize}
+\newcommand{\notesubsubsectionfont}{\small}
+\newcommand{\noteparagraphfont}{\normalsize}
+\newcommand{\notesubparagraphfont}{\normalsize}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+%
+% \begin{macro}{\notesectionsetfonts}
+% \begin{macro}{\noteparagraphsetfonts}
+%   Helpers to directly set the font commands for |\section|,
+%   |\subsection| and |\subsubsection| (with |\notesectionsetfonts|),
+%   and for |\paragraph| and |\subparagraph| (with |\noteparagraphsetfonts|).
+%    \begin{macrocode}
+\newcommand{\notesectionsetfonts}[3]{%
+  \renewcommand{\notesectionfont}{#1}%
+  \renewcommand{\notesubsectionfont}{#2}%
+  \renewcommand{\notesubsubsectionfont}{#3}%
+}
+\newcommand{\noteparagraphsetfonts}[2]{%
+  \renewcommand{\noteparagraphfont}{#1}%
+  \renewcommand{\notesubparagraphfont}{#2}%
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+%
+% Define the attributes which the user can set.  See
+% \autoref{sec:secfmt}.
+%
+%    \begin{macrocode}
+\def\phfnote at do@secfmt at section{
+  \RequirePackage{sectsty}
+  \sectionfont{\notesectionallfont\notesectionfont}
+  \subsectionfont{\notesectionallfont\notesubsectionfont}
+  \subsubsectionfont{\notesectionallfont\notesubsubsectionfont}
+}
+\def\phfnote at do@secfmt at paragraph{
+  \RequirePackage{sectsty}
+  \paragraphfont{\notesectionallfont\noteparagraphfont}
+  \subparagraphfont{\notesectionallfont\notesubparagraphfont}
+}
+\def\phfnote at do@secfmt at compact{
+  \notesectionsetfonts{\normalsize}{\small}{\small}
+}
+\def\phfnote at do@secfmt at larger{
+  \notesectionsetfonts{\Large}{\large}{\normalsize}
+}
+
+\def\phfnote at do@secfmt at secsquares{
+  \RequirePackage{amssymb}
+  \let\phfnote at secsquares@old at 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 at secsquares@old at seccntformat{##1}}
+}
+\def\phfnote at do@secfmt at secnummargin{
+  \let\phfnote at secnummargin@old at seccntformat\@seccntformat
+  \def\@seccntformat##1{%
+    \protect\makebox[0pt][r]{\phfnote at secnummargin@old at seccntformat{##1}}}
+}
+
+\def\phfnote at do@secfmt at rmfamily{
+  \renewcommand\notesectionallfontfamily{\rmdefault}
+}
+\def\phfnote at do@secfmt at sffamily{
+  \renewcommand\notesectionallfontfamily{\sfdefault}
+}
+\def\phfnote at do@secfmt at itpar{
+  \def\noteparagraphfont{\normalfont\normalsize\itshape}
+  \def\notesubparagraphfont{\normalfont\normalsize\itshape}
+}
+\def\phfnote at do@secfmt at blockpar{
+  \let\phfnote at old@paragraph\paragraph
+  \def\paragraph##1{%
+    \phfnote at old@paragraph{##1}%
+    \hspace*{0pt}\par\nopagebreak% ugly hack!!
+  }
+}
+%    \end{macrocode}
+% 
+%
+% \begin{macro}{\phfnote at do@secfmt}
+%   Actually perform the required styling, according to the package
+%   options given as argument.  The argument is a comma-separated list
+%   of attributes specified by the user.
+%    \begin{macrocode}
+\def\phfnote at do@secfmt#1{%
+  \phfnote at internal@execattribs{phfnote at do@secfmt@}{section formatting preset}{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+%
+% \subsection{\LaTeX{} Package Sets}
+%
+% Define the package sets as macros.  Depending on the user-specified
+% options we load the corresponding one(s) (several may be specified).
+%
+% See \autoref{sec:package-sets} for a description of what these
+% package sets do.
+%
+% \begin{macro}{\phfnote at do@pkgset at none}
+% \begin{macro}{\phfnote at do@pkgset at minimal}
+% \begin{macro}{\phfnote at do@pkgset at rich}
+% \begin{macro}{\phfnote at do@pkgset at extended}
+%   Macros which implement the package sets.  Each macro invokes |\RequirePackage|
+%   for the appropriate packages.
+%    \begin{macrocode}
+\def\phfnote at do@pkgset at none{
+}
+
+\def\phfnote at do@pkgset at minimal{
+
+  \RequirePackage{amsmath}
+  \RequirePackage{amsfonts}
+  \RequirePackage{amssymb}
+  \RequirePackage{amsthm}
+  
+  \RequirePackage{xcolor}
+
+}
+
+\def\phfnote at do@pkgset at rich{
+
+  \phfnote at do@pkgset at 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 at do@pkgset at extended{
+
+  \phfnote at do@pkgset at rich
+
+  \RequirePackage{float}
+
+  \RequirePackage{verbdef}
+
+  \PassOptionsToPackage{autostyle,autopunct=true}{csquotes}
+  \RequirePackage{csquotes}
+
+  \RequirePackage{dsfont}
+  \RequirePackage{bbm}
+  \RequirePackage{mathtools}
+
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\phfnote at do@pkgset}
+%   Finally, define the helper which will load the required package sets.
+%    \begin{macrocode}
+\def\phfnote at do@pkgset#1{
+  \phfnote at internal@execattribs{phfnote at do@pkgset@}{package set}{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \subsection{Hyperref Support and Hyperlinks}
+%
+% \begin{pkgnote}
+%   The name `|docnotelinkcolor|' is historical and hard-coded in many
+%   other files I've used, so I'm DEFINITELY NOT changing it.
+% \end{pkgnote}
+% 
+% \needspace{3\baselineskip}
+% \begin{macro}{\phfnote at do@pdfhyperrefdefs}
+% \begin{macro}{\email}
+% \begin{macro}{\url}
+%   Load the \pkgname{hyperref} package and provide sensible defaults.
+%    \begin{macrocode}
+\newcommand{\phfnote at do@pdfhyperrefdefs}{%
+%    \end{macrocode}
+% Make sure a color-managing package is loaded, {color} or {xcolor}, and define our default color:
+%    \begin{macrocode}
+  \phfnote at requirecolorpackage%
+  \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}%
+%    \end{macrocode}
+% 
+% Load URL package, and save a version of |\url| which is not patched
+% by \pkgname{hyperref}:
+%    \begin{macrocode}
+  \RequirePackage{url}%
+  \DeclareUrlCommand\phfnote at format@url{}%
+%    \end{macrocode}
+% 
+% Set up \pkgname{hyperref} options:
+%    \begin{macrocode}
+  \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}%
+%    \end{macrocode}
+% 
+% Provide an |\email| command for specifying e-mails.  Note that the |\url| command is
+% already provided by the packages \pkgname{url} and \pkgname{hyperref}.
+%    \begin{macrocode}
+  \let\email\phfnote at email%
+%    \end{macrocode}
+% 
+% And finally set a nicer default |\url|/|\email| style:
+%    \begin{macrocode}
+  \urlstyle{notesf}%
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\phfnotePdfLinkColor}
+%   Set links color.  Use as |\phfnotePdfLinkColor|\marg{color}.
+%   Color may be any color name or specification recognized by the
+%   \pkgname{xcolor} package.
+%
+%    \begin{macrocode}
+\newcommand{\phfnotePdfLinkColor}[1]{%
+  \@ifpackageloaded{xcolor}{%
+    \colorlet{docnotelinkcolor}{#1}%
+  }{% else:
+    \PackageWarning{phfnote}{\protect\phfnotePdfLinkColor may only be
+      used if the package xcolor is loaded.}%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \needspace{3\baselineskip}
+% \begin{macro}{\phfnote at sanitize@url}
+% \begin{macro}{\phfnote at format@url}
+% \begin{macro}{\phfnote at email}
+%   Provide base macros to be able to build up |\email| command for emails and other
+%   URL-like commands which should sanitize their arguments.
+%
+%   Also prepare the command |\phfnote at email| which will be renamed |\email| in our
+%   \pkgname{hyperref} package setup (see above).
+% 
+%    \begin{macrocode}
+\def\phfnote at 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 at format@url{\texttt}
+\def\phfnote at email{\begingroup\phfnote at sanitize@url\phfnote at impl@email@}%
+\def\phfnote at impl@email@#1{\endgroup\href{mailto:#1}{\phfnote at format@url{#1}}}%
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% 
+% \begin{macro}{\phfnote at requirecolorpackage}
+%   And finally define an internal utility to make sure that a color package (either
+%   \pkgname{color} or \pkgname{xcolor}) is loaded.  If none are loaded, the \pkgname{xcolor} package is loaded.
+%    \begin{macrocode}
+\def\phfnote at requirecolorpackage{%
+  \@ifpackageloaded{color}{%
+  }{%
+    \@ifpackageloaded{xcolor}{%
+    }{%
+      \RequirePackage{xcolor}%
+    }%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \subsection{Cosmetic Font Definitions}
+%
+% \begin{macro}{\phfnote at do@fontdefs}
+%   Minimalist cosmetic definition for fonts: load the |T1| font
+%   encoding which is better.  Also, use Computer Modern Bright as
+%   sans-serif font by default instead of Computer Modern Sans Serif.
+%
+%    \begin{macrocode}
+\def\phfnote at do@fontdefs{
+ 
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+
+  \renewcommand\sfdefault{cmbr}
+  
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \subsection{Bibliography Stuff}
+%
+%   Provide some fixes for the bibliography.
+%
+% \begin{macro}{\phfnote at bibstyle}
+% \begin{macro}{\phfnote at bibfont}
+%   Our default bibliography style is stored in |\phfnote at bibstyle|.
+%   By default, it's our own hacked version of the |naturemag| style.
+%   The font in which to typeset the bibliography is stored in
+%   |\phfnote at bibfont|.  By default, it's a little smaller than the
+%   main text.
+%    \begin{macrocode}
+\newcommand{\phfnote at bibstyle}{naturemagdoi}
+\newcommand{\phfnote at bibfont}{\fontsize{9}{11}\selectfont}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+%
+% \begin{macro}{\phfnote at bibliography}
+%   These are a tentative implementation for |\bibliography|.  The latter will be set to
+%   this implementation according to the user's package options.
+%    \begin{macrocode}
+\let\phfnote at old@bibliography\bibliography
+\let\phfnote at old@bibliographystyle\bibliographystyle
+\newcommand{\phfnote at bibliography}[1]{%
+  \begingroup%
+    \phfnote at bibfont%
+    \phfnote at old@bibliographystyle{\phfnote at bibstyle}%
+%    \end{macrocode}
+% 
+% Our hack: make sure that the next instance of |\section*| will generate a TOC
+% entry. (See |\phfnoteHackSectionStarWithTOC|.)
+%    \begin{macrocode}
+    \phfnoteHackSectionStarWithTOC%
+%    \end{macrocode}
+% 
+% Some special chars may appear in output of some ill-advised bibliography
+% managers. Mostly the |&| symbol, such as in |Taylor & Francis|.  We won't be needing a
+% \LaTeX{} alignment operator here, so just make |&| a normal printable character
+% (``other'' catcode).
+%    \begin{macrocode}
+    \catcode`\&=12\relax% normal char
+%    \end{macrocode}
+%
+% Adjust the appearance of e-prints. We assume e-prints refer to the arXiv; here we
+% generate a hyperlink and format them better.
+%
+%    \begin{macrocode}
+    \providecommand\eprint[2][]{\href{http://arxiv.org/abs/##2}{arXiv:##2}}
+%    \end{macrocode}
+% 
+% Relay the call to the ``old'' |\bibliography| command to actually implement the
+% bibliography.
+%    \begin{macrocode}
+    \phfnote at old@bibliography{#1}%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\phfnote at bibliographystyle}
+%   Tentative implementation of |\bibliographystyle|.  Just register the new style in an
+%   internal variable, so that the style is actually loaded in |\phfnote at bibliography|.
+%
+%   This will be renamed to replace |\bibliographystyle| later, according to package
+%   options.
+%    \begin{macrocode}
+\newcommand{\phfnote at bibliographystyle}[1]{%
+  \renewcommand{\phfnote at bibstyle}{#1}%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \begin{macro}{\phfnote at do@bibliographydefs}
+%   Make our changes live.  Will be called later according to package options.
+%    \begin{macrocode}
+\def\phfnote at do@bibliographydefs{%
+  \let\bibliographystyle\phfnote at bibliographystyle%
+  \let\bibliography\phfnote at bibliography%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+%
+% \subsection{Better Footnote Style}
+%
+% \begin{macro}{\phfnote at do@footnotedefs}
+%   Adjust the formatting of footnotes so they look better.  Again,
+%   this is called later according to the package options.
+%    \begin{macrocode}
+\def\phfnote at do@footnotedefs{
+  \let\phfnote at 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
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% 
+%
+%
+% \subsection{Other Stand-Alone Definitions and Helpers}
+% \label{sec:impl-other-stand-alone-defs}
+%
+% \subsubsection{A \phfverb{\notesmaller} command}
+%
+%
+% \begin{macro}{\notesmaller}
+%   Relative font size command.  Makes the text a fraction smaller
+%   than its surroundings.  The fraction is either given explicitly as
+%   optional argument (1.0=same size) or is by default set by
+%   |\notesmallerfrac|.
+%
+%   To impalement this, we exploit the fact that \LaTeX{} saves the
+%   current font size in the macro |\f at size|.
+%    \begin{macrocode}
+\newcommand\notesmaller[1][\notesmallerfrac]{%
+  \fontsize{#1\dimexpr\f at size pt\relax}{#1\dimexpr\f at baselineskip pt\relax}%
+  \selectfont\ignorespaces%
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\notesmallerfrac}
+%   Default fraction by which |\notesmaller| acts.  Redefine to change defaults.
+%    \begin{macrocode}
+\def\notesmallerfrac{0.9}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Customized, ``Inline,'' Table of Contents}
+%
+% \begin{macro}{\inlinetoc}
+%   Just a customized table of contents.  Horizontal rules before and
+%   after, and spacing is adjusted, and no ``Contents'' title.  The
+%   table of contents looks just like at the \hyperref[sec:toc]{top of
+%   this document}.  The command is described in
+%   \autoref{sec:inline-toc}.
+%
+%   We call |\@starttoc| directly, bypassing the |\section*| included by
+%   |\tableofcontents| (see definition |\tableofcontents| in latex sources).
+%    \begin{macrocode}
+\newcommand{\inlinetoc}{%
+  \begingroup%
+    \vspace*{2mm}%
+    \hrule%
+    \vspace*{2mm}%
+    \parskip=1pt\relax%
+    \@starttoc{toc}%
+    \vspace*{4mm}%
+    \hrule%
+    \vspace*{6mm}%
+  \endgroup%
+}
+%    \end{macrocode}
+% 
+% \end{macro}
+%
+% \subsubsection{URL Styles}
+%
+% \needspace{7\baselineskip}
+% \begin{macro}{\url at notettstyle}
+% \begin{macro}{\url at notesfstyle}
+% \begin{macro}{\url at notesfssstyle}
+% \begin{macro}{\url at noteitsfstyle}
+% \begin{macro}{\url at notermstyle}
+% \begin{macro}{\url at noteitstyle}
+% \begin{macro}{\url at notesmlstyle}
+%   We also provide some URL styles.  These can directly set with
+%   |\urlstyle|\marg{style-name}.
+%
+%    \begin{macrocode}
+\def\url at notettstyle{%
+  \def\UrlFont{\ttfamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesfstyle{%
+  \def\UrlFont{\sffamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesfssstyle{%
+  \def\UrlFont{\fontfamily{cmss}\selectfont\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at noteitsfstyle{%
+  \def\UrlFont{\sffamily\itshape\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notermstyle{%
+  \def\UrlFont{\rmfamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at noteitstyle{%
+  \def\UrlFont{\itshape\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesmlstyle{%
+  \def\UrlFont{\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\phfnote at urlstyle@common}
+% The following code is common to all our styles. We do an ugly hack
+% in which the tilde character (`\textasciitilde') is fixed to the
+% tilde char in the Adobe Times font (|ptm| code), so that it looks
+% nicer and its alignment is correct.
+%    \begin{macrocode}
+\def\phfnote at url@tilde{\hbox{\fontfamily{ptm}\selectfont\textasciitilde}}
+%%\def\phfnote at url@tilde{\raise-0.8ex\hbox{%
+%%    \kern-0.2ex\fontfamily{cmbr}\selectfont\textasciitilde}}
+\def\phfnote at urlstyle@common{%
+  \def\UrlTildeSpecial{\do\~{\phfnote at url@tilde}}%
+  \let\Url at force@Tilde\UrlTildeSpecial%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \subsubsection{Utility to Add TOC Entry For Starred Section }
+%
+% Here we provide an ugly hack which introduces an entry in the table
+% of contents for |\section*| commands.
+%
+% [Note: An existing way of adding the toc entry in these cases is to issue
+% a |\addcontentsline| command before the relevant command
+% (say |\bibliography|).  However this is unreliable, because on page
+% boundaries the |\addcontentsline| will pick up the previous page.  This
+% is why |\addcontentsline| should be issued right \emph{after} the
+% |\section*| command.]
+%
+% \begin{pkgwarning}
+%   This command is truly a hack, don't apply it globally!  It forces
+%   (locally) the |\section| command to be followed by a `|*|' !  Do this
+%   within a group, just before a command which you are sure is
+%   invoking |\section*| (such as |\bibliography| in the \pkgname{article}
+%   class).
+% \end{pkgwarning}
+%
+% \begin{macro}{\phfnoteHackSectionStarWithTOC}
+%   Locally force |\section| to be followed by |*| and introduce an
+%   entry in the table of contents.
+%    \begin{macrocode}
+\def\phfnoteHackSectionStarWithTOC{%
+    \let\phfnote at old@section\section%
+    \def\section*##1{\phfnote at old@section*{##1}\addcontentsline{toc}{section}{##1}}%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnoteHackSectionStarWithTOCInCommand}
+%   Patches the given command (|#1|), which is known to invoke
+%   |\section*|, to locally first invoke
+%   |\phfnoteHackSectionStarWithTOC| and thus generate a TOC entry.
+%
+%    \begin{macrocode}
+\def\phfnoteHackSectionStarWithTOCInCommand#1{%
+  \expandafter\let\csname phfnote at old@\string#1\endcsname#1%
+  \gdef#1{%
+    \begingroup%
+    \phfnoteHackSectionStarWithTOC%
+    \csname phfnote at old@\string#1\endcsname%
+    \endgroup%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Hack to save \& restore a set of commands}
+%
+% Exactly what it sounds like.  You can store a set of commands, specified by
+% their name, by specifying an identifier.  The commands corresponding to a
+% given identifier can then later be restored.
+%
+% \begin{macro}{\phfnoteSaveDefs}
+%   The command |\phfnoteSaveDefs|\marg{identifier}\marg{list of macro names}
+%   saves the current definitions of the given list of macro and associates them
+%   to the given identifier.
+%   The list of macros is specified as a comma-separated list of macro names.
+%    \begin{macrocode}
+\def\phfnoteSaveDefs#1#2{%
+%    \end{macrocode}
+% 
+% The macro |\phfnote at restoredefs@<identifier>| will store the code necessary to
+% restore the macros.
+%    \begin{macrocode}
+  \csgdef{phfnote at restoredefs@#1}{}%
+%    \end{macrocode}
+% 
+% Iterate over the macros we are supposed to store.
+%    \begin{macrocode}
+  \def\@tmpa{#2}%
+  \@for\next:=\@tmpa\do{%
+%    \end{macrocode}
+% 
+% For each macro we are supposed to store (whose name is given in |\next|), we
+% |\let| |\phfnote at restoredefs@<identifier>@<macro-name>| store the current value
+% of the macro.
+%    \begin{macrocode}
+    \global\csletcs{phfnote at restoredefs@#1@\next}{\next}%
+%    \end{macrocode}
+% 
+% Then, we append to |\phfnote at restoredefs@<identifier>| the code necessary to
+% restore this macro.  That code is simply a |\cslet| instruction.
+%
+% Recall that |\xappto| expands its second argument (as |\xdef| does), allowing
+% us to expand the value of |\next|.
+%    \begin{macrocode}
+    \expandafter\xappto\csname phfnote at restoredefs@#1\endcsname{%
+      \noexpand\csletcs{\next}{phfnote at restoredefs@#1@\next}%
+    }%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnoteRestoreDefs}
+%   Restores the macro saved by |\phfnoteSaveDefs|.  We simply execute the macro
+%   |\phfnote at restoredefs@<identifier>|, in which we duly stored the code
+%   necessary to restore all the saved macros.
+%    \begin{macrocode}
+\def\phfnoteRestoreDefs#1{%
+  \ifcsname phfnote at restoredefs@#1\endcsname%
+    \csname phfnote at restoredefs@#1\endcsname%
+  \else%
+    \PackageError{phfnote}{\string\phfnoteRestoreDefs: no such
+      definitions stored (#1)}
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{A utility for verbatim stuff in arguments of other macros}
+%
+% FIXME: DOCUMENT ME!
+%
+% A utility for using verbatim stuff in arguments of other macros---exploit
+% |\detokenize|
+%
+%    \begin{macrocode}
+\def\phfverb#1{%
+  \ifx\protect\relax%
+    \phfverbfmt{\detokenize{#1}\unskip}%
+  \else%
+    \noexpand\phfverb{\unexpanded{#1}}%
+  \fi%
+}
+\def\phfverbfmt#1{{\normalfont\texttt{#1}}}
+%    \end{macrocode}
+%
+% \subsection{Handle Package Options}
+%
+% \subsubsection{Define and Parse Package Options}
+%
+% Initialization code for \pkgname{kvoptions} for our package options.  See \autoref{sec:package-options}.
+%
+%    \begin{macrocode}
+\SetupKeyvalOptions{
+  family=phfnote,
+  prefix=phfnote at opt@
+}
+%    \end{macrocode}
+%
+%
+% The title style to use. \marginpar{\raggedleft \phfverb{[title=...]}}
+% See \autoref{sec:title-styles}.
+%    \begin{macrocode}
+\DeclareStringOption[default]{title}
+%    \end{macrocode}
+% 
+%
+% Option for abstract attributes \marginpar{\raggedleft
+% \phfverb{[abstract=...]}}  (\autoref{sec:abstract-attributes}).
+%    \begin{macrocode}
+\DeclareStringOption[]{abstract}
+%    \end{macrocode}
+%
+% Option for Package sets \marginpar{\raggedleft \phfverb{[pkgset=...]}}
+% (\autoref{sec:package-sets})
+%    \begin{macrocode}
+\DeclareStringOption[rich]{pkgset}
+%    \end{macrocode}
+%
+% Define the page geometry.  \marginpar{\raggedleft
+% \phfverb{[pagegeomdefs=...]}} \marginpar{\raggedleft \phfverb{[pagegeom=...]}}
+% See \autoref{sec:pagegeomdefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{pagegeomdefs}
+\DeclareComplementaryOption{nopagegeomdefs}{pagegeomdefs}
+\DeclareStringOption[default]{pagegeom}
+%    \end{macrocode}
+% 
+%
+%
+% Styling of section headings.  \marginpar{\raggedleft \phfverb{[secfmt=...]}}
+% See \autoref{sec:secfmt}.
+%    \begin{macrocode}
+\DeclareStringOption[section]{secfmt}
+%    \end{macrocode}
+%
+% How to treat paragraphs.  \marginpar{\raggedleft \phfverb{[par=...]}} See
+% \autoref{sec:par-defs}.
+%    \begin{macrocode}
+\DeclareStringOption[skip]{par}
+%    \end{macrocode} 
+% 
+% Add definitions to adjust spacing of lines and words. \marginpar{\raggedleft
+% \phfverb{[spacingdefs=...]}}  See \autoref{sec:spacingdefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{spacingdefs}
+\DeclareComplementaryOption{nospacingdefs}{spacingdefs}
+%    \end{macrocode}
+%
+% Do some adjustments to the fonts. \marginpar{\raggedleft
+% \phfverb{[fontdefs=...]}} See \autoref{sec:fontdefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{fontdefs}
+\DeclareComplementaryOption{nofontdefs}{fontdefs}
+%    \end{macrocode}
+%
+% Adjustments for footnotes. \marginpar{\raggedleft
+% \phfverb{[footnotedefs=...]}}  See \autoref{sec:footnotedefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{footnotedefs}
+\DeclareComplementaryOption{nofootnotedefs}{footnotedefs}
+%    \end{macrocode}
+%
+% Load hyperref and corresponding definitions. \marginpar{\raggedleft
+% \phfverb{[hyperrefdefs=...]}} See \autoref{sec:hyperrefdefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{hyperrefdefs}
+\DeclareComplementaryOption{nohyperrefdefs}{hyperrefdefs}
+%    \end{macrocode}
+%
+% Adjustments for bibliography, including default style. \marginpar{\raggedleft
+% \phfverb{[bibliographydefs=...]}} See \autoref{sec:bibliographydefs}.
+%    \begin{macrocode}
+\DeclareBoolOption[true]{bibliographydefs}
+\DeclareComplementaryOption{nobibliographydefs}{bibliographydefs}
+%    \end{macrocode}
+% 
+% 
+% Preset option.  \marginpar{\raggedleft \phfverb{[preset=...]}} See
+% \autoref{sec:presets}.
+%    \begin{macrocode}
+\define at key{phfnote}{preset}{%
+  \ifcsname phfnote at preset@#1\endcsname%
+    \csname phfnote at 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%
+}
+%    \end{macrocode}
+% 
+%
+% Provide the standard error message for unknown options.
+%    \begin{macrocode}
+\DeclareDefaultOption{%
+  \@unknownoptionerror
+}
+%    \end{macrocode}
+%
+% \subsubsection{Define Global Presets}
+% \label{impl:presets}
+%
+% Define the global presets here.  See \autoref{sec:presets} for a description
+% of what these presets do.
+%
+% \begin{macro}{\phfnote at hook@atendload}
+%   A hook for presets to do stuff at the end of package load.
+%    \begin{macrocode}
+\def\phfnote at hook@atendload{}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\phfnote at preset@article}
+%   Article preset.
+%    \begin{macrocode}
+\def\phfnote at preset@article{
+  \def\phfnote at opt@title{article}
+  \def\phfnote at opt@par{indent}
+  \def\phfnote at opt@pagegeom{default}
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\phfnote at presetcommon@xnote}
+%   Specify some common definitions for all our |*note| preset styles.  The
+%   optional argument is the URL style to set.
+%    \begin{macrocode}
+\newcommand\phfnote at presetcommon@xnote[1][noteitsf]{
+  \def\phfnote at opt@title{default}
+  \def\phfnote at opt@par{skip}
+  \phfnote at opt@pagegeomdefstrue
+  \def\phfnote at opt@pagegeom{wide}
+  \setlength{\footnotesep}{5pt}
+  \g at addto@macro\phfnote at hook@atendload{
+    \ifdefined\urlstyle
+      \urlstyle{#1}
+    \fi
+  }
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \needspace{5\baselineskip}
+% \begin{macro}{\phfnote at preset@sfnote}
+% \begin{macro}{\phfnote at preset@sfssnote}
+% \begin{macro}{\phfnote at preset@opensansnote}
+% \begin{macro}{\phfnote at preset@utopianote}
+% \begin{macro}{\phfnote at preset@mnmynote}
+%   Define the different |*note| styles.
+%    \begin{macrocode}
+\def\phfnote at preset@sfnote{
+  \phfnote at presetcommon@xnote
+  \phfnote at opt@footnotedefstrue
+  \phfnote at opt@fontdefstrue
+  \renewcommand\familydefault{\sfdefault}
+  \renewcommand{\notesectionallfontfamily}{\sfdefault}
+}
+\def\phfnote at preset@sfssnote{
+%    \end{macrocode}
+% set up all the settings as for |sfnote| \ldots
+%    \begin{macrocode}
+  \phfnote at preset@sfnote
+%    \end{macrocode}
+% \ldots but override:
+%    \begin{macrocode}
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \renewcommand\sfdefault{cmss}
+}
+\def\phfnote at preset@opensansnote{
+%    \end{macrocode}
+% set up all the settings as for |sfnote| \ldots
+%    \begin{macrocode}
+  \phfnote at preset@sfnote
+%    \end{macrocode}
+% \ldots but override:
+%    \begin{macrocode}
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \PassOptionsToPackage{default,osfigures,scale=0.9}{opensans}
+  \RequirePackage{opensans}
+}
+\def\phfnote at preset@utopianote{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \RequirePackage{fourier}
+  \renewcommand{\notesectionallfontfamily}{put}
+  \renewcommand{\notetitlefont}{\bfseries}
+  \renewcommand{\sfdefault}{phv}
+}
+\def\phfnote at preset@mnmynote{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@footnotedefsfalse
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \renewcommand{\notesectionallfontfamily}{\sfdefault}
+%    \end{macrocode}
+%
+% Require these packages AFTER the default package set, because some symbols may
+% be defined in package sets, and I've had problems with re-definitions
+% etc\ldots anyway this seems to work this way:
+%    \begin{macrocode}
+  \g at addto@macro\phfnote at hook@atendload{
+    \RequirePackage{MnSymbol}
+    \PassOptionsToPackage{medfamily,textosf,mathlf,minionint,footnotefigures}{MinionPro}
+    \RequirePackage{MinionPro}
+    \PassOptionsToPackage{medfamily}{MyriadPro}
+    \RequirePackage{MyriadPro}
+  }
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\phfnote at preset@pkgdoc}
+%   Preset for a package documentation.
+%
+%   Start by setting the same settings as for other |Xnote| presets.
+%    \begin{macrocode}
+\def\phfnote at preset@pkgdoc{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@fontdefsfalse
+%    \end{macrocode}
+% 
+% Then set up the font, which is done in a separate macro
+% |\phfnote at pkgdoc@setupfont| in case individual documents would like more
+% specific settings.  (For example, some packages may want a different math
+% font.)
+%    \begin{macrocode}
+  \phfnote at pkgdoc@setupfont
+%    \end{macrocode}
+% 
+% Finally, set up general appearance.
+%    \begin{macrocode}
+  \def\phfnote at opt@secfmt{section,paragraph,itpar,blockpar,larger,secsquares,secnummargin}
+  \def\phfnote at opt@pagegeom{bigmargin}
+  \def\phfnote at opt@abstract{noname}
+}
+%    \end{macrocode}
+%
+% Also provide a helper macro which is to load the font packages we
+% want.  By default, we use Utopia fonts via the \pkgname{fourier}
+% package, but some package documentations may want a different math
+% font.  Override |\phfnote at pkgdoc@setupfont| to adjust the whole font
+% set-up, or |\phfnote at pkgdoc@setupmainfont| to adjust only the main
+% document font.
+%    \begin{macrocode}
+\providecommand\phfnote at pkgdoc@setupfont{
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \phfnote at 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 at scale{s*[0.85]}
+  \renewcommand{\sfdefault}{fosj}
+}
+\providecommand\phfnote at pkgdoc@setupmainfont{\RequirePackage{fourier}}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\phfnote at preset@xpkgdoc}
+%   Same as |preset=pkgdoc|, but also provide some handy hacks and
+%   commands.
+%
+%    \begin{macrocode}
+\def\phfnote at preset@xpkgdoc{
+  \phfnote at preset@pkgdoc
+%    \end{macrocode}
+% 
+% Include the \pkgname{verbdef} package, because it's always useful.
+%    \begin{macrocode}
+  \RequirePackage{verbdef}
+%    \end{macrocode}
+%
+% \textbf{Some patching first:}
+% Patch up |\PrintChanges| and |\PrintIndex|, if they are defined (for if we are
+% using the \pkgname{ltxdoc} package for latex package documentation).  We want
+% these to generate an entry in the table of contents.  Also provide the utility
+% |\PrintChangesAndIndex|, which calls both |\PrintChanges| and |\PrintIndex| with
+% some additional spacing.
+%    \begin{macrocode}
+  \ifdefined\PrintChanges
+    \phfnoteHackSectionStarWithTOCInCommand\PrintChanges
+  \fi
+  \ifdefined\PrintIndex
+    \phfnoteHackSectionStarWithTOCInCommand\PrintIndex
+  \fi
+  \def\PrintChangesAndIndexSpacing{\vspace{3cm plus 2cm minus 2cm}}
+  \def\PrintChangesAndIndex{\PrintChangesAndIndexSpacing\PrintChanges
+    \PrintChangesAndIndexSpacing\PrintIndex}
+%    \end{macrocode}
+%
+% Set the index to TWO columns only (three is too tight).
+%    \begin{macrocode}
+  \ifdefined\c at IndexColumns
+    \setcounter{IndexColumns}{2}
+  \fi
+%    \end{macrocode}
+% 
+% And set the glossary, that is, the list of changes history to single-column.  For this,
+% renew the environment completely to remove the |multicols| environment.
+%    \begin{macrocode}
+  \let\phfnote at xpkgdoc@old at theglossary\theglossary
+  \let\phfnote at xpkgdoc@old at endtheglossary\endtheglossary
+  \renewenvironment{theglossary}{%
+    \glossary at prologue%
+    \GlossaryParms \let\item\@idxitem \ignorespaces}
+  {}
+%    \end{macrocode}
+%
+%
+% \textbf{Hyperref:} No ``default'' \pkgname{hyperref} definitions, we'll use
+% \pkgname{hyperdoc} instead.
+%    \begin{macrocode}
+  \phfnote at opt@hyperrefdefsfalse
+  \g at addto@macro\phfnote at hook@atendload{
+    \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}%
+    \RequirePackage{url}%
+    \DeclareUrlCommand\phfnote at 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 at email%
+    \urlstyle{noteit}
+  }
+%    \end{macrocode}
+%
+% \textbf{Provide Macro:} |\pkgname|\marg{package name} to format a package
+% name.  Also place it in the general index.  This command is robust and
+% can be used in section titles etc.
+%    \begin{macrocode}
+  \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
+%    \end{macrocode}
+% 
+%
+% \textbf{Provide Macros:} |\changed| and |\changedreftext|, with more
+% advanced support for displaying changes in package functionality or API.
+% 
+% First, we need a counter for the x-ref system.
+%    \begin{macrocode}
+  \newcounter{phfnotechanged}
+%    \end{macrocode}
+% 
+% Mark changes in the implementation section of the package documentation
+% with the command |\changed|\oarg{label
+% name}\marg{v1.0}\marg{2016/05/22}\marg{description}.  This command
+% automatically adds the change to the package's change history list, and
+% allows you to refer to this change anywhere else in the package doc with
+% |\changedreftext|.
+%    \begin{macrocode}
+  \newcommand*\changed[4][]{%
+%    \end{macrocode}
+% 
+% First, if no label is given as optional argument, then just display the
+% change and add it to the package changes list.
+%    \begin{macrocode}
+    \if\relax\detokenize{##1}\relax%
+      \changedtextfmt{##2}{##3}{##4}%
+      \changes{##2}{##3}{##4}%
+    \else%
+%    \end{macrocode}
+% 
+% If a label name is provided as optional argument, then we need to write
+% some stuff to the \texttt{.aux} file to make the change visible in the
+% whole document.
+%    \begin{macrocode}
+      \protected at edef\phfnotechanged at tmpa{{##2}{##3}{##4}}%
+      \immediate\write\@auxout{\string\phfnote at changed@set%
+        {##1}{\expandonce\phfnotechanged at tmpa}}%
+      \par\hspace*{0pt}\refstepcounter{phfnotechanged}\label{phfnotechanged:##1}%
+      \begingroup\let\phfnote at changedreftext@par\relax
+        \changedreftext{##1}%
+      \endgroup
+      \changes{##2}{##3}{\hyperref[phfnotechanged:##1]{##4}}%
+    \fi
+  }
+  \def\phfnote at changed@set##1{%
+    \expandafter\gdef\csname phfnote at changed@lbl@##1\endcsname%
+  }
+%    \end{macrocode}
+% 
+% When you document changes with the help of |\changed|, you may refer to
+% any specific change from anywhere else in the package doc with the help
+% of |\changedreftext|\marg{label name}.
+%    \begin{macrocode}
+  \def\phfnote at changedreftext@par{\par}
+  \newcommand*\changedreftext[1]{%
+    \phfnote at changedreftext@par%
+    \ifcsname phfnote at changed@lbl@##1\endcsname
+      \hyperref[phfnotechanged:##1]{%
+        \expandafter\expandafter\expandafter\changedtextfmt%
+            \csname phfnote at changed@lbl@##1\endcsname
+      }
+    \else
+      \hyperref[phfnotechanged:##1]{%
+        \changedtextfmt{???}{???}{[\textbf{missing ref}]}%
+      }%
+    \fi
+    \par
+  }
+%    \end{macrocode}
+% 
+% The macro |\changedtextfmt|\marg{v1.0}\marg{2016/05/22}\marg{description}
+% takes care of formatting the change on the spot.
+%    \begin{macrocode}
+  \newcommand*\changedtextfmt[3]{%
+    \textit{Changed in {##1\kern 0.3ex\relax[##2]}:} ##3.
+  }
+%    \end{macrocode}
+% 
+% \textbf{Provide environment \phfverb{pkgoptions}:} Set up an elaborate
+% environment (based on a |description| environment) to describe package
+% options.
+%    \begin{macrocode}
+  \RequirePackage{enumitem}
+  \newlist{pkgoptions}{description}{1}
+  \setlist[pkgoptions]{font=\pkgoptionfmt[{\vspace*{5pt}}],style=nextline}
+%    \end{macrocode}
+% 
+% But patch the |pkgoptions|' |\item| command, so that it puts an additional
+% pair of braces around its argument.  In this way, the |font=| attribute for
+% the list sees the full label as its next token, and can be used as a macro
+% argument.  (This is not needed for newer versions of \pkgname{enumitem}.)
+%    \begin{macrocode}
+  \apptocmd\pkgoptions{\let\pkgoptions at old@item\item%
+    \def\item{\@ifnextchar[\pkgoptions at item@\pkgoptions at item@@}%]
+    \def\pkgoptions at item@[##1]{\pkgoptions at old@item[{{##1}}]}%
+    \def\pkgoptions at item@@{\PackageWarning{phfnote}{{pkgoptions}: you must
+        specify label to \string\item as \string\item[label].}%
+      \pkgoptions at old@item}%
+  }{}{\PackageWarning{phfnote}{preset xpkgdoc: Failed to patch command
+      \string\pkgoptions}}
+  \def\pkgoptionscombineitem{\leavevmode\vspace{\dimexpr-\baselineskip-\parskip-\itemsep\relax}}
+%    \end{macrocode}
+% 
+% For convenience, also provide a |\meta|-like command for boolean arguments
+% (|true| or |false|). `|\metatruefalsearg|' typesets as `\metatruefalsearg'.
+%    \begin{macrocode}
+  \def\metatruefalsearg{\meta{\phfverb{true} $\mid$ \phfverb{false}}}
+%    \end{macrocode}
+% 
+% Include also a command to format a package option.  Puts the option in a box
+% in typewriter text style, and indexes it.  The optional argument is meant to
+% be internal---it adds commands after the displayed text (use it to add, e.g.\@
+% spacing).
+%
+% When indexing the packages, make sure to remove the protective braces if any.
+%    \begin{macrocode}
+  \newcommand\pkgoptionfmt[2][]{%
+    \begingroup\let\meta\pkgoptfmt at meta\fbox{\normalfont\ttfamily ##2}\endgroup%
+    \expandafter\phfnote at pkgdoc@index\expandafter{\@firstofone ##2}%
+    ##1}
+  \let\pkgopt at save@meta\meta
+  \def\pkgoptfmt at meta##1{\begingroup\normalfont\itshape\pkgopt at save@meta{##1}\endgroup}
+%    \end{macrocode}
+% 
+% Whenever a package option is formatted with |\pkgoptionfmt|, it is placed in
+% the index.  Because package options may be of the form |key=val|, we want to
+% split keys from values and put them independently in the index.  This is done
+% by entering a \TeX{} group, and using an |\lccode| trick: the code is prepared
+% to iterate over a list of comma-separated stuff, but then the ``lowercase''
+% version of that code is executed instead, where the |=|'s have been replaced
+% by |,|'s.
+%    \begin{macrocode}
+  \def\phfnote at 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}
+%    \end{macrocode}
+%
+% \textbf{Provide environment \phfverb{cmdoptions}:} hijack the |pkgoptions|
+% environment to do the same thing, except we place the items in the index under
+% ``command options'' instead of ``package options.''
+%    \begin{macrocode}
+  \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}}}}}
+%    \end{macrocode}
+% 
+% Provide the |\pkgoptattrib| command, which typesets its argument as
+% |\{arg, ...\}|---useful to typeset attributes such as in
+% \autoref{sec:abstract-attributes}.  The variant |\pkgoptattribondots{arg}|
+% typesets |\{arg\}| while |\pkgoptattribempty| expands to |{}|.
+%    \begin{macrocode}
+  \def\pkgoptattrib##1{\{##1,...\}}
+  \def\pkgoptattribnodots##1{\{##1\}}
+  \def\pkgoptattribempty{\{\}}
+%    \end{macrocode}
+% 
+% \textbf{Colorful boxes: environments \phfverb{pkgnote},
+%   \phfverb{pkgwarning}, and \phfverb{pkgtip}.}  Now, load the
+% \pkgname{tcolorbox} package to provide visual ``Note,'' ``Warning,'' and
+% ``Tip'' boxes.  Because \pkgname{tcolorbox} includes the
+% \pkgname{verbatim} package which messes up the |verbatim| environment in
+% latex dtx files (for which source lines all start with a |%| which needs
+% to be stripped), we save the |verbatim|-related commands, and restore
+% them after the interfering packages have been loaded.
+%    \begin{macrocode}
+  \phfnoteSaveDefs{verbatimstuff}{%
+    verbatim, at verbatim, at xverbatim, at 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}
+%    \end{macrocode}
+% 
+% Common title stuff:
+%    \begin{macrocode}
+  \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}.}}
+%    \end{macrocode}
+% 
+% Utility to parse package file date into ``|\today|''-style date: invoke as
+% |\date{\pkgfmtdate\filedate}|.
+%    \begin{macrocode}
+  \def\pkgfmtdate##1{%
+    \edef\pkgfmtdate at thedate{##1}%
+    \expandafter\pkgfmtdate at next\pkgfmtdate at thedate\@nil%
+  }
+  \def\pkgfmtdate at 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 at next
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \begin{macro}{\phfnote at preset@reset}
+%   Finally, the |reset| preset:
+%    \begin{macrocode}
+\def\phfnote at preset@reset{
+  \def\phfnote at opt@pkgset{none}
+  \def\phfnote at opt@title{}
+  \phfnote at opt@pagegeomdefsfalse
+  \phfnote at opt@spacingdefsfalse
+  \def\phfnote at opt@par{original}
+  \def\phfnote at opt@abstract{original}
+  \phfnote at opt@hyperrefdefsfalse
+  \phfnote at opt@fontdefsfalse
+  \def\phfnote at opt@secfmt{}
+  \phfnote at opt@bibliographydefsfalse
+  \phfnote at opt@footnotedefsfalse
+%    \end{macrocode}
+% 
+% \begin{pkgwarning}
+%   SELF-NOTE: DO NOT FORGET TO ADD HERE RESET COMMANDS FOR ANY NEW OPTION THAT
+%   WE PROVIDE IN THE FUTURE.
+% \end{pkgwarning}
+% 
+%    \begin{macrocode}
+}
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+%
+%
+% \subsubsection{Finally, Process and Execute the Package Options}
+%
+%
+%
+% Process the options:
+%
+%    \begin{macrocode}
+\ProcessKeyvalOptions*
+%    \end{macrocode}
+%
+%
+% Take action according to the user options.
+%
+%    \begin{macrocode}
+\phfnote at do@pkgset{\phfnote at opt@pkgset}
+
+\phfnote at do@notetitle{\phfnote at opt@title}
+
+\phfnote at do@noteabstract{\phfnote at opt@abstract}
+
+\phfnote at do@secfmt{\phfnote at opt@secfmt}
+
+\ifphfnote at opt@pagegeomdefs
+  \phfnote at do@pagegeomdefs{\phfnote at opt@pagegeom}
+\fi
+
+\ifphfnote at opt@spacingdefs
+  \phfnote at do@spacing
+\fi
+
+\phfnote at do@par{\phfnote at opt@par}
+
+\ifphfnote at opt@hyperrefdefs
+  \phfnote at do@pdfhyperrefdefs
+\fi
+
+\ifphfnote at opt@fontdefs
+  \phfnote at do@fontdefs
+\fi
+
+\ifphfnote at opt@bibliographydefs
+  \phfnote at do@bibliographydefs
+\fi
+
+\ifphfnote at opt@footnotedefs
+  \phfnote at do@footnotedefs
+\fi
+%    \end{macrocode}
+% 
+% Finally, execute the hook we set up for definitions at the end of the package
+% loading:
+%    \begin{macrocode}
+\phfnote at hook@atendload
+%    \end{macrocode}
+%
+%\Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/phfnote/phfnote.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/phfnote/phfnote.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/phfnote/phfnote.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/phfnote/phfnote.ins	2016-08-15 20:38:10 UTC (rev 41858)
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2016 by Philippe Faist <philippe.faist at 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.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/phfqitltx}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2016 by Philippe Faist <philippe.faist at 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.
+
+\endpreamble
+
+\generate{\file{phfnote.sty}{\from{phfnote.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{*                                                           *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX:                    *}
+\Msg{*                                                           *}
+\Msg{*     phfnote.sty                                           *}
+\Msg{*     naturemagdoi.bst                                      *}
+\Msg{*                                                           *}
+\Msg{* To produce the documentation run the .dtx file through    *}
+\Msg{* (PdF-)LaTeX.                                              *}
+\Msg{*                                                           *}
+\Msg{* Happy TeXing!                                             *}
+\Msg{*                                                           *}
+\Msg{*************************************************************}
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/phfnote/phfnote.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phfnote/phfnote.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/phfnote/phfnote.sty	2016-08-15 20:38:10 UTC (rev 41858)
@@ -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 at 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 at 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 at title#1{\long\gdef\@title{#1}}
+\def\phfnote at 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 at setupthanksmpfootnote{%
+  \def\thempfootnote{\arabic{mpfootnote}}%
+  \let\footnoterule\relax%
+  \let\thanks\footnote%
+  \def\phfnote at mpfootmaterial{}%
+  \long\def\@mpfootnotetext##1{%
+    \protected at edef\@currentlabel%
+         {\csname p at mpfootnote\endcsname\@thefnmark}%
+    \protected at edef\@tmpa{\protect\phfnote at mympfootnotemark{\@thefnmark}{##1}%
+      \protect\phfnote at mpfootnoteglue}%
+    \expandafter\g at addto@macro\expandafter\phfnote at mpfootmaterial%
+      \expandafter{\@tmpa}%
+  }%
+  \def\thanksmark[##1]{\phfnote at mympfootnotemark{##1}}%
+}
+\def\phfnote at finalizempfootnotes{%
+  \global\setbox\@mpfootins=\vbox{%
+    \parskip=0pt\parindent=0pt\parshape 1 0.04\textwidth 0.96\textwidth\relax%
+    \noindent\leavevmode%
+    \reset at font\footnotesize%
+    \phfnote at fmt@titlefootnotes%
+    \phfnote at mpfootmaterial}%
+}
+\def\phfnote at fmt@titlefootnotes{}
+\def\phfnote at mympfootnotemark#1{\@textsuperscript{\normalfont#1}}
+\def\phfnote at mpfootnoteglue{\hskip 1.2em plus 2em minus 0.5em\relax}
+\def\notetitle at thanksmark{\footnotemark}
+\let\phfnote at old@thanks\thanks
+\def\notetitle at thanks{\@ifnextchar[\phfnote at thanks{\phfnote at thanks[]}}%]
+\long\def\phfnote at thanks[#1]#2{%
+  \if\relax\detokenize{#1}\relax%
+    \footnotemark%
+    \protected at xdef\@thanks{\@thanks\protect\footnotetext[\the\c at footnote]{#2}}%
+  \else% argument, pass on to sub-commands:
+    \footnotemark[#1]%
+    \protected at xdef\@thanks{\@thanks\protect\footnotetext[#1]{#2}}%
+  \fi%
+}
+\newcommand{\notetitle at style@default}{%
+  \begingroup\par\raggedright%
+    \phfnote at setupthanksmpfootnote%
+    \vspace*{\notetitletopspace}%
+    \phfnote at title@checksetspace{default}%
+    \begin{minipage}{\textwidth}%
+      \begin{singlespace}%
+        \parskip=0pt\parindent=0pt\relax%
+        {\let\phfnote at old@par\par%
+          \def\par{\phfnote at 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 at 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 at 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 at 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 at do@notetitle#1{
+  \if\relax\detokenize\expandafter{#1}\relax
+  \else
+    \ifcsname notetitle at style@#1\endcsname
+      \def\phfnote at tmp@titsty{#1}%
+    \else
+      \PackageError{phfnote}{Unknown title style: '#1'.}{Unknown title
+        style: '#1'. Please consult the package documentation for available
+        styles.}
+      \def\phfnote at tmp@titsty{default}%
+    \fi
+    \let\title\notetitle at title
+    \let\thanks\notetitle at thanks
+    \let\thanksmark\notetitle at thanksmark
+    \def\@maketitle{\csname notetitle at style@\phfnote at tmp@titsty\endcsname}
+  \fi
+}
+\let\notedefaultabstract\abstract
+\let\endnotedefaultabstract\endabstract
+\newcommand{\noteabstracttextfont}{}
+\newcommand{\noteabstractnamefont}{\bfseries\small}
+\if at twocolumn
+  \newcommand\noteabstracttextwidth{\hsize}
+\else
+  \newcommand{\noteabstracttextwidth}{0.9\hsize}
+\fi
+\newcommand\noteabstractafterspacing{1.5em}
+\newcommand\noteabstractbeforespacing{1.5em}
+\def\noteabstract at 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 at nameline%
+      \noteabstracttextfont%
+    }%
+    {%
+    \end{minipage}%
+    \par%
+  \endgroup%
+  \vspace{\noteabstractafterspacing}%
+}
+\def\noteabstract at attr@wide{%
+  \def\noteabstracttextwidth{\textwidth}%
+}
+\def\noteabstract at attr@narrow{%
+  \if at twocolumn
+  \else
+    \def\noteabstracttextwidth{0.8\textwidth}%
+  \fi
+}
+\def\noteabstract at attr@noname{%
+  \def\noteabstract at nameline{}%\vspace*{1ex}}%
+}
+\def\noteabstract at attr@original{%
+  \let\abstract\notedefaultabstract
+  \let\endabstract\endnotedefaultabstract
+}
+\def\noteabstract at attr@small{%
+  \g at addto@macro\noteabstracttextfont{\small}%
+}
+\def\noteabstract at attr@compact{%
+  \renewcommand\noteabstractafterspacing{1ex}%
+  \renewcommand\noteabstractbeforespacing{1ex}%
+}
+\def\noteabstract at attr@it{%
+  \g at addto@macro\noteabstracttextfont{\itshape}%
+}
+\def\phfnote at do@noteabstract#1{
+  \let\abstract\noteabstract
+  \let\endabstract\endnoteabstract
+  \phfnote at internal@execattribs{noteabstract at attr@}{abstract attribute}{#1}
+}
+\def\phfnote at pagegeomstyle@default{
+  \if at 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 at pagegeomstyle@narrow{
+  \if at 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 at pagegeomstyle@wide{
+  \if at 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 at pagegeomstyle@xwide{
+  \if at 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 at pagegeomstyle@bigmargin{%
+  \if at 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 at do@pagegeomdefs}[1]{
+  \ifcsname phfnote at pagegeomstyle@#1\endcsname
+    \csname phfnote at pagegeomstyle@#1\endcsname
+  \else
+    \PackageWarning{phfnote}{Unknown page geometry style: `#1'!}
+  \fi
+
+  \RequirePackage{geometry}%
+}
+\def\phfnote at do@spacing{
+  \@ifpackageloaded{setspace}{
+    \def\phfnote at dostretch##1{%
+      \setstretch{##1}\phfnote at docaptionstretch{##1}}
+  }{
+    \def\phfnote at dostretch##1{%
+      \renewcommand\baselinestretch{##1}\phfnote at docaptionstretch{##1}}
+  }
+  \@ifpackageloaded{caption}{
+    \def\phfnote at docaptionstretch##1{\captionsetup{font={stretch=##1}}}
+  }{
+    \def\phfnote at 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 at twocolumn
+    \phfnote at dostretch{1.0} % leave default
+    \emergencystretch=3em\relax
+  \else
+    \ifcase\@ptsize% 10pt
+      \phfnote at dostretch{1.1}
+    \or% 11pt
+      \phfnote at dostretch{1.0} % 1.05? better 1.0...
+    \or% 12pt
+      \phfnote at dostretch{1.0} % 1.03? not really noticeable...
+    \fi
+    \emergencystretch=6em\relax
+  \fi
+}
+\def\phfnote at par@original{%
+}
+\def\phfnote at par@indent{%
+  \parindent=1.5em\relax
+  \parskip=0pt\relax
+}
+\def\phfnote at par@indentminiskip{%
+  \parindent=1.5em\relax
+  \parskip=0.3em plus 0.1em\relax
+}
+\def\phfnote at par@skip{%
+  \parindent=0pt\relax
+  \parskip=0.8em plus 0.2em minus 0.1em\relax
+}
+\def\phfnote at do@par#1{%
+  \ifcsname phfnote at par@#1\endcsname
+    \csname phfnote at 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 at do@secfmt at section{
+  \RequirePackage{sectsty}
+  \sectionfont{\notesectionallfont\notesectionfont}
+  \subsectionfont{\notesectionallfont\notesubsectionfont}
+  \subsubsectionfont{\notesectionallfont\notesubsubsectionfont}
+}
+\def\phfnote at do@secfmt at paragraph{
+  \RequirePackage{sectsty}
+  \paragraphfont{\notesectionallfont\noteparagraphfont}
+  \subparagraphfont{\notesectionallfont\notesubparagraphfont}
+}
+\def\phfnote at do@secfmt at compact{
+  \notesectionsetfonts{\normalsize}{\small}{\small}
+}
+\def\phfnote at do@secfmt at larger{
+  \notesectionsetfonts{\Large}{\large}{\normalsize}
+}
+
+\def\phfnote at do@secfmt at secsquares{
+  \RequirePackage{amssymb}
+  \let\phfnote at secsquares@old at 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 at secsquares@old at seccntformat{##1}}
+}
+\def\phfnote at do@secfmt at secnummargin{
+  \let\phfnote at secnummargin@old at seccntformat\@seccntformat
+  \def\@seccntformat##1{%
+    \protect\makebox[0pt][r]{\phfnote at secnummargin@old at seccntformat{##1}}}
+}
+
+\def\phfnote at do@secfmt at rmfamily{
+  \renewcommand\notesectionallfontfamily{\rmdefault}
+}
+\def\phfnote at do@secfmt at sffamily{
+  \renewcommand\notesectionallfontfamily{\sfdefault}
+}
+\def\phfnote at do@secfmt at itpar{
+  \def\noteparagraphfont{\normalfont\normalsize\itshape}
+  \def\notesubparagraphfont{\normalfont\normalsize\itshape}
+}
+\def\phfnote at do@secfmt at blockpar{
+  \let\phfnote at old@paragraph\paragraph
+  \def\paragraph##1{%
+    \phfnote at old@paragraph{##1}%
+    \hspace*{0pt}\par\nopagebreak% ugly hack!!
+  }
+}
+\def\phfnote at do@secfmt#1{%
+  \phfnote at internal@execattribs{phfnote at do@secfmt@}{section formatting preset}{#1}
+}
+\def\phfnote at do@pkgset at none{
+}
+
+\def\phfnote at do@pkgset at minimal{
+
+  \RequirePackage{amsmath}
+  \RequirePackage{amsfonts}
+  \RequirePackage{amssymb}
+  \RequirePackage{amsthm}
+
+  \RequirePackage{xcolor}
+
+}
+
+\def\phfnote at do@pkgset at rich{
+
+  \phfnote at do@pkgset at 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 at do@pkgset at extended{
+
+  \phfnote at do@pkgset at rich
+
+  \RequirePackage{float}
+
+  \RequirePackage{verbdef}
+
+  \PassOptionsToPackage{autostyle,autopunct=true}{csquotes}
+  \RequirePackage{csquotes}
+
+  \RequirePackage{dsfont}
+  \RequirePackage{bbm}
+  \RequirePackage{mathtools}
+
+}
+\def\phfnote at do@pkgset#1{
+  \phfnote at internal@execattribs{phfnote at do@pkgset@}{package set}{#1}
+}
+\newcommand{\phfnote at do@pdfhyperrefdefs}{%
+  \phfnote at requirecolorpackage%
+  \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}%
+  \RequirePackage{url}%
+  \DeclareUrlCommand\phfnote at 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 at 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 at 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 at format@url{\texttt}
+\def\phfnote at email{\begingroup\phfnote at sanitize@url\phfnote at impl@email@}%
+\def\phfnote at impl@email@#1{\endgroup\href{mailto:#1}{\phfnote at format@url{#1}}}%
+\def\phfnote at requirecolorpackage{%
+  \@ifpackageloaded{color}{%
+  }{%
+    \@ifpackageloaded{xcolor}{%
+    }{%
+      \RequirePackage{xcolor}%
+    }%
+  }%
+}
+\def\phfnote at do@fontdefs{
+
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+
+  \renewcommand\sfdefault{cmbr}
+
+}
+\newcommand{\phfnote at bibstyle}{naturemagdoi}
+\newcommand{\phfnote at bibfont}{\fontsize{9}{11}\selectfont}
+\let\phfnote at old@bibliography\bibliography
+\let\phfnote at old@bibliographystyle\bibliographystyle
+\newcommand{\phfnote at bibliography}[1]{%
+  \begingroup%
+    \phfnote at bibfont%
+    \phfnote at old@bibliographystyle{\phfnote at bibstyle}%
+    \phfnoteHackSectionStarWithTOC%
+    \catcode`\&=12\relax% normal char
+    \providecommand\eprint[2][]{\href{http://arxiv.org/abs/##2}{arXiv:##2}}
+    \phfnote at old@bibliography{#1}%
+  \endgroup%
+}
+\newcommand{\phfnote at bibliographystyle}[1]{%
+  \renewcommand{\phfnote at bibstyle}{#1}%
+}
+\def\phfnote at do@bibliographydefs{%
+  \let\bibliographystyle\phfnote at bibliographystyle%
+  \let\bibliography\phfnote at bibliography%
+}
+\def\phfnote at do@footnotedefs{
+  \let\phfnote at 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 at size pt\relax}{#1\dimexpr\f at 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 at notettstyle{%
+  \def\UrlFont{\ttfamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesfstyle{%
+  \def\UrlFont{\sffamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesfssstyle{%
+  \def\UrlFont{\fontfamily{cmss}\selectfont\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at noteitsfstyle{%
+  \def\UrlFont{\sffamily\itshape\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notermstyle{%
+  \def\UrlFont{\rmfamily\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at noteitstyle{%
+  \def\UrlFont{\itshape\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\url at notesmlstyle{%
+  \def\UrlFont{\notesmaller}%
+  \phfnote at urlstyle@common%
+}
+\def\phfnote at url@tilde{\hbox{\fontfamily{ptm}\selectfont\textasciitilde}}
+%%\def\phfnote at url@tilde{\raise-0.8ex\hbox{%
+%%    \kern-0.2ex\fontfamily{cmbr}\selectfont\textasciitilde}}
+\def\phfnote at urlstyle@common{%
+  \def\UrlTildeSpecial{\do\~{\phfnote at url@tilde}}%
+  \let\Url at force@Tilde\UrlTildeSpecial%
+}
+\def\phfnoteHackSectionStarWithTOC{%
+    \let\phfnote at old@section\section%
+    \def\section*##1{\phfnote at old@section*{##1}\addcontentsline{toc}{section}{##1}}%
+}
+\def\phfnoteHackSectionStarWithTOCInCommand#1{%
+  \expandafter\let\csname phfnote at old@\string#1\endcsname#1%
+  \gdef#1{%
+    \begingroup%
+    \phfnoteHackSectionStarWithTOC%
+    \csname phfnote at old@\string#1\endcsname%
+    \endgroup%
+  }%
+}
+\def\phfnoteSaveDefs#1#2{%
+  \csgdef{phfnote at restoredefs@#1}{}%
+  \def\@tmpa{#2}%
+  \@for\next:=\@tmpa\do{%
+    \global\csletcs{phfnote at restoredefs@#1@\next}{\next}%
+    \expandafter\xappto\csname phfnote at restoredefs@#1\endcsname{%
+      \noexpand\csletcs{\next}{phfnote at restoredefs@#1@\next}%
+    }%
+  }%
+}
+\def\phfnoteRestoreDefs#1{%
+  \ifcsname phfnote at restoredefs@#1\endcsname%
+    \csname phfnote at 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 at 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 at key{phfnote}{preset}{%
+  \ifcsname phfnote at preset@#1\endcsname%
+    \csname phfnote at 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 at hook@atendload{}
+\def\phfnote at preset@article{
+  \def\phfnote at opt@title{article}
+  \def\phfnote at opt@par{indent}
+  \def\phfnote at opt@pagegeom{default}
+}
+\newcommand\phfnote at presetcommon@xnote[1][noteitsf]{
+  \def\phfnote at opt@title{default}
+  \def\phfnote at opt@par{skip}
+  \phfnote at opt@pagegeomdefstrue
+  \def\phfnote at opt@pagegeom{wide}
+  \setlength{\footnotesep}{5pt}
+  \g at addto@macro\phfnote at hook@atendload{
+    \ifdefined\urlstyle
+      \urlstyle{#1}
+    \fi
+  }
+}
+\def\phfnote at preset@sfnote{
+  \phfnote at presetcommon@xnote
+  \phfnote at opt@footnotedefstrue
+  \phfnote at opt@fontdefstrue
+  \renewcommand\familydefault{\sfdefault}
+  \renewcommand{\notesectionallfontfamily}{\sfdefault}
+}
+\def\phfnote at preset@sfssnote{
+  \phfnote at preset@sfnote
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \renewcommand\sfdefault{cmss}
+}
+\def\phfnote at preset@opensansnote{
+  \phfnote at preset@sfnote
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \PassOptionsToPackage{default,osfigures,scale=0.9}{opensans}
+  \RequirePackage{opensans}
+}
+\def\phfnote at preset@utopianote{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \RequirePackage{fourier}
+  \renewcommand{\notesectionallfontfamily}{put}
+  \renewcommand{\notetitlefont}{\bfseries}
+  \renewcommand{\sfdefault}{phv}
+}
+\def\phfnote at preset@mnmynote{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@footnotedefsfalse
+  \phfnote at opt@fontdefsfalse
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \renewcommand{\notesectionallfontfamily}{\sfdefault}
+  \g at addto@macro\phfnote at hook@atendload{
+    \RequirePackage{MnSymbol}
+    \PassOptionsToPackage{medfamily,textosf,mathlf,minionint,footnotefigures}{MinionPro}
+    \RequirePackage{MinionPro}
+    \PassOptionsToPackage{medfamily}{MyriadPro}
+    \RequirePackage{MyriadPro}
+  }
+}
+\def\phfnote at preset@pkgdoc{
+  \phfnote at presetcommon@xnote[noteit]
+  \phfnote at opt@fontdefsfalse
+  \phfnote at pkgdoc@setupfont
+  \def\phfnote at opt@secfmt{section,paragraph,itpar,blockpar,larger,secsquares,secnummargin}
+  \def\phfnote at opt@pagegeom{bigmargin}
+  \def\phfnote at opt@abstract{noname}
+}
+\providecommand\phfnote at pkgdoc@setupfont{
+  \PassOptionsToPackage{T1}{fontenc}
+  \RequirePackage{fontenc}
+  \phfnote at 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 at scale{s*[0.85]}
+  \renewcommand{\sfdefault}{fosj}
+}
+\providecommand\phfnote at pkgdoc@setupmainfont{\RequirePackage{fourier}}
+\def\phfnote at preset@xpkgdoc{
+  \phfnote at 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 at IndexColumns
+    \setcounter{IndexColumns}{2}
+  \fi
+  \let\phfnote at xpkgdoc@old at theglossary\theglossary
+  \let\phfnote at xpkgdoc@old at endtheglossary\endtheglossary
+  \renewenvironment{theglossary}{%
+    \glossary at prologue%
+    \GlossaryParms \let\item\@idxitem \ignorespaces}
+  {}
+  \phfnote at opt@hyperrefdefsfalse
+  \g at addto@macro\phfnote at hook@atendload{
+    \definecolor{docnotelinkcolor}{rgb}{0,0,0.4}%
+    \RequirePackage{url}%
+    \DeclareUrlCommand\phfnote at 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 at 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 at edef\phfnotechanged at tmpa{{##2}{##3}{##4}}%
+      \immediate\write\@auxout{\string\phfnote at changed@set%
+        {##1}{\expandonce\phfnotechanged at tmpa}}%
+      \par\hspace*{0pt}\refstepcounter{phfnotechanged}\label{phfnotechanged:##1}%
+      \begingroup\let\phfnote at changedreftext@par\relax
+        \changedreftext{##1}%
+      \endgroup
+      \changes{##2}{##3}{\hyperref[phfnotechanged:##1]{##4}}%
+    \fi
+  }
+  \def\phfnote at changed@set##1{%
+    \expandafter\gdef\csname phfnote at changed@lbl@##1\endcsname%
+  }
+  \def\phfnote at changedreftext@par{\par}
+  \newcommand*\changedreftext[1]{%
+    \phfnote at changedreftext@par%
+    \ifcsname phfnote at changed@lbl@##1\endcsname
+      \hyperref[phfnotechanged:##1]{%
+        \expandafter\expandafter\expandafter\changedtextfmt%
+            \csname phfnote at 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 at old@item\item%
+    \def\item{\@ifnextchar[\pkgoptions at item@\pkgoptions at item@@}%]
+    \def\pkgoptions at item@[##1]{\pkgoptions at old@item[{{##1}}]}%
+    \def\pkgoptions at item@@{\PackageWarning{phfnote}{{pkgoptions}: you must
+        specify label to \string\item as \string\item[label].}%
+      \pkgoptions at 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 at meta\fbox{\normalfont\ttfamily ##2}\endgroup%
+    \expandafter\phfnote at pkgdoc@index\expandafter{\@firstofone ##2}%
+    ##1}
+  \let\pkgopt at save@meta\meta
+  \def\pkgoptfmt at meta##1{\begingroup\normalfont\itshape\pkgopt at save@meta{##1}\endgroup}
+  \def\phfnote at 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, at verbatim, at xverbatim, at 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 at thedate{##1}%
+    \expandafter\pkgfmtdate at next\pkgfmtdate at thedate\@nil%
+  }
+  \def\pkgfmtdate at 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 at next
+}
+\def\phfnote at preset@reset{
+  \def\phfnote at opt@pkgset{none}
+  \def\phfnote at opt@title{}
+  \phfnote at opt@pagegeomdefsfalse
+  \phfnote at opt@spacingdefsfalse
+  \def\phfnote at opt@par{original}
+  \def\phfnote at opt@abstract{original}
+  \phfnote at opt@hyperrefdefsfalse
+  \phfnote at opt@fontdefsfalse
+  \def\phfnote at opt@secfmt{}
+  \phfnote at opt@bibliographydefsfalse
+  \phfnote at opt@footnotedefsfalse
+}
+\ProcessKeyvalOptions*
+\phfnote at do@pkgset{\phfnote at opt@pkgset}
+
+\phfnote at do@notetitle{\phfnote at opt@title}
+
+\phfnote at do@noteabstract{\phfnote at opt@abstract}
+
+\phfnote at do@secfmt{\phfnote at opt@secfmt}
+
+\ifphfnote at opt@pagegeomdefs
+  \phfnote at do@pagegeomdefs{\phfnote at opt@pagegeom}
+\fi
+
+\ifphfnote at opt@spacingdefs
+  \phfnote at do@spacing
+\fi
+
+\phfnote at do@par{\phfnote at opt@par}
+
+\ifphfnote at opt@hyperrefdefs
+  \phfnote at do@pdfhyperrefdefs
+\fi
+
+\ifphfnote at opt@fontdefs
+  \phfnote at do@fontdefs
+\fi
+
+\ifphfnote at opt@bibliographydefs
+  \phfnote at do@bibliographydefs
+\fi
+
+\ifphfnote at opt@footnotedefs
+  \phfnote at do@footnotedefs
+\fi
+\phfnote at hook@atendload
+\endinput
+%%
+%% End of file `phfnote.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/phfnote/phfnote.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2016-08-15 20:37:30 UTC (rev 41857)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2016-08-15 20:38:10 UTC (rev 41858)
@@ -450,7 +450,7 @@
     pgf pgf-blur pgf-soroban pgf-spectra pgf-umlcd pgf-umlsd
     pgfgantt pgfkeyx pgfmolbio
     pgfopts pgfornament pgfplots
-    phaistos phffullpagefigure philex philokalia philosophersimprint
+    phaistos phffullpagefigure phfnote philex philokalia philosophersimprint
     phonetic phonrule photo physics piano picinpar pict2e
     pictex pictex2 pictexsum piechartmp piff pigpen
     pinlabel pitex pittetd pkfix pkfix-helper pkgloader pkuthss

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2016-08-15 20:37:30 UTC (rev 41857)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2016-08-15 20:38:10 UTC (rev 41858)
@@ -769,6 +769,7 @@
 depend permute
 depend petiteannonce
 depend phffullpagefigure
+depend phfnote
 depend philex
 depend photo
 depend piff

Added: trunk/Master/tlpkg/tlpsrc/phfnote.tlpsrc
===================================================================


More information about the tex-live-commits mailing list