From 787b1d312f205766480ce986a9f98548cc396dae Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 19 Jun 2017 21:07:40 +0000 Subject: spectralsequences (19jun17) git-svn-id: svn://tug.org/texlive/trunk@44639 c570f23f-e606-0410-a88d-b1316a301751 --- .../manual/spectralsequencesmanualpreamble.tex | 505 +++++++++++++++++++++ 1 file changed, 505 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex (limited to 'Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex') diff --git a/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex b/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex new file mode 100644 index 00000000000..f2897deb03a --- /dev/null +++ b/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex @@ -0,0 +1,505 @@ +%% +%% Package: spectralsequences.sty version 1.0 +%% Author: Hood Chatham +%% Email: hood@mit.edu +%% Date: 2017-06-18 +%% License: Latex Project Public License +%% +%% File: spectralsequencesmanualpreamble.tex +%% +%% Manual preamble +%% + +% TODO: someday I should comment this -- it's a bit of a mess + +\documentclass{ltxdoc} +\usepackage[a4paper,left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry} +\usepackage{spectralsequences} +\usetikzlibrary{shapes.geometric} +\usepackage{amssymb} +\usepackage[notmath]{sansmathfonts} +\usepackage{verbatim} +\usepackage{needspace} +\usepackage[documentation]{tcolorbox} +\usepackage[T1]{fontenc} +\usepackage{hyperref} + +\hypersetup{% + colorlinks=true, + linkcolor=blue, + filecolor=blue, + urlcolor=thered, + citecolor=blue, + pdfborder=0 0 0, +} +\usepackage{hyperxmp} +\makeatletter +\def\displaycommand#1{\displaycommand@#1\@nil} +\def\displaycommand@#1#2\@nil{\texttt{\string#1}#2} + +% From Christian Feuersänger https://tex.stackexchange.com/a/73103 +\makeatletter % !!!! +\input{pgfmanual.code} % This must be exectuted when catcode of @ is letter +\makeatother % !!!! + +\usepackage{calc} % +\include{pgfmanual-en-macros} % This must be executed when catcode of @ is other + +\makeatletter + +\parskip=10pt +\parindent=0pt +\MakeShortVerb{\|} + +\def\sectionstring{\textbackslash\@xp\@gobble\string} + +\def\@gobbletocln#1:{} +\def\eatclnifpresent#1{% + \eatclnifpresent@#1:\nil +} +\def\eatclnifpresent@#1:#2\nil{% + \ifx$#2$% + #1% + \else + \removecln#2\nil + \fi +} +\def\removecln#1:\nil{#1} + +\def\removenil#1\nil{#1} + +\def\pgfmanual@pretty@singlequote{'} + + + +\def\pulloffstartspaces{\@xp\pulloffstartspaces@\thekey\@nil} +\def\pulloffstartspaces@#1{% + \def\test{#1}% + \ifx\test\pgfmanual@pretty@activespace + \@xp\def\@xp\leadingtoks\@xp{\leadingtoks\pgfmanual@pretty@space}% + \@xp\pulloffstartspaces@ + \else + \ifx#1\@nil + \def\thekey{}% + \else + \@xp\@xp\@xp\pulloffstartspaces@@\@xp\@xp\@xp#1% + \fi + \fi +} +\def\pulloffstartspaces@@#1\@nil{\def\thekey{#1}} + +\def\pulloffstartbrace{\@xp\pullofflbrace\thekey\nil\@nil} +\def\pullofflbrace#1#2\@nil{% + \ifx\test\pgfmanual@pretty@lbrace + \@xp\def\@xp\leadingtoks\@xp{\leadingtoks\pgfmanual@pretty@lbrace}% + \@xp\def\@xp\thekey\@xp{\removenil#2}% + \else + \@xp\def\@xp\thekey\@xp{\removenil#1#2}% + \fi +} + + +\def\pulloffsinglequote{\@xp\pulloffsinglequote@\thekey\nil\@nil} +\def\pulloffsinglequote@#1#2\@nil{% + \def\test{#1}% + \ifx\test\pgfmanual@pretty@singlequote + \@xp\def\@xp\leadingtoks\@xp{\leadingtoks\pgfmanual@pretty@singlequote}% + \@xp\def\@xp\thekey\@xp{\removenil#2}% + \else + \def\possiblesinglequote{}% + \@xp\def\@xp\thekey\@xp{\removenil#1#2}% + \fi +} + + + + +% deletes everything except trailing spaces. For making link underline not include trailing spaces (have to reinsert spaces) +\def\onlytrailingspaces#1{% + \pgfkeys@spdef\temp{#1}% + \@xp\def\@xp\temp\@xp##\@xp1\temp{}% + \temp#1% +} + +% remove trailing spaces, for making link underline not include trailing spaces +\def\removetrailingspaces{\@xp\removetrailingspaces@\@xp{\thekey}} +\def\removetrailingspaces@#1{% + \removetrailingspace{#1}% + \ifx\possibletrailingspace\empty\else + \edef\trailingtoks{\unexpanded\@xp{\possibletrailingspace}\unexpanded\@xp{\trailingtoks}}% + \@xp\removetrailingspaces@\@xp{\thekey}% + \fi +} + +\bgroup +\catcode`\Q=3\lccode`\)=`\}\lccode`\~=`\ \lowercase{ + \gdef\removetrailingspace#1{\removetrailingspace@#1QQ~Q} + \gdef\removetrailingspace@#1~Q{\removetrailingspace@@#1} + \gdef\removetrailingspace@@#1Q#2Q{\def\thekey{#1}\def\possibletrailingspace{#2}} + + % Remove trailing brace -- so close brace can be colored / styled differently + \gdef\removetrailingbrace{\@xp\removetrailingbrace@\thekey QQ)Q} + \gdef\removetrailingbrace@#1)Q{\removetrailingbrace@@#1} + \gdef\removetrailingbrace@@#1Q#2Q{\def\thekey{#1}\edef\trailingtoks{\unexpanded{#2}\unexpanded\@xp{\trailingtoks}}} +} + +\catcode`\^^M=\active + % remove trailing new line -- so we can properly test whether the last nonwhitespace character is a brace + \gdef\removetrailingnewline{\@xp\removetrailingnewline@\thekey \nil\nil^^M\nil}% + \gdef\removetrailingnewline@#1^^M\nil{\removetrailingnewline@@#1}% + \gdef\removetrailingnewline@@#1\nil#2\nil{\def\thekey{#1}\edef\trailingtoks{\unexpanded{#2}\unexpanded\@xp{\trailingtoks}}}% +\egroup + + + +% Redefine decompose not to do all that fancy crap -- just print as is. Maybe we should get rid of surrounding spaces here and where we do the ref? +\def\decompose#1/\nil{% + \index{#1@\protect\texttt{#1} key}% + \index{\mypath#1@\protect\texttt{#1}}% + \pgfmanualpdflabel{#1}{}% +} +\let\olddeclare\declare +\ExplSyntaxOn +% Get rid of colon so that we can have context based linking -- "page" links to global page, "class:page" prints page and links to the page key in the class section, etc. +\def\declare#1{% + \exp_args:Nf\olddeclare{% + \eatclnifpresent{#1}% + }% +} +\ExplSyntaxOff + +%\patchcmd\pgfmanualpdfref{#2}{#2} % If I want it to behave differently for things that aren't links +\patchcmd\pgfmanualpdfref{\expandafter\pgfmanualpdfref@\expandafter{\pgfmanualpdflabel@@}{#2}} % Fix it so that being a link doesn't change the color + {\colorlet{temp}{.}\expandafter\pgfmanualpdfref@\expandafter{\pgfmanualpdflabel@@}{\textcolor{temp}{#2}}}{}{}% + +\newenvironment{manualentry}[1]{% + \begin{pgfmanualentry}% + \pgfmanualentryheadline{#1}% + \pgfmanualbody +}{% + \end{pgfmanualentry}% +} + + + +\def\removespace#1\space\nil{#1} +\newenvironment{stylekeylist}[2][]{% + \begin{pgfmanualentry} + \def\extrakeytext{}% + \foreach \xx in {#2} {% + \expandafter\extractkey\xx\space= \marg{keys}\@nil% + \declareasstyle{\@xp\removespace\mykey\nil}% tells latex not to italicize body + }% + \pgfmanualbody +}{% + \end{pgfmanualentry} +}% + +% Custom handler for value of key -- instead of italicizing, do what? +\def\ifcustomhandler#1{% + \@xp\pgfkeys@spdef\@xp\test\@xp{#1}% + \expandafter\ifx\csname\test @ custom handler\endcsname\relax\@xp\@secondoftwo\else\@xp\@firstoftwo\fi +} +\def\customhandler#1{% + \@xp\pgfkeys@spdef\@xp\test\@xp{#1}% + \csname\test @ custom handler\endcsname{#1}% +} + +\def\declarecustomhandler#1#2{% + \immediate\write\@auxout{\@nx\expandafter\gdef\@nx\csname#1@ custom handler\endcsname{\@nx#2}}% + \@xp\gdef\csname#1@ custom handler\endcsname{#2}% +} + +\def\declareasstyle#1{\declarecustomhandler{#1}\stylehandler} +\def\stylehandler#1#2{% + \bgroup + \let\pgfmanualwordstartup\relax + \def\thekey{#2}% + \let\leadingtoks\empty + \pulloffstartspaces\pulloffstartbrace + \textcolor{keycolor}{\leadingtoks}% + \@xp\pgfmanualprettyprintpgfkeys\@xp{\thekey}% + \egroup +} +\def\codehandler#1#2{% + \bgroup + \def\thekey{#2}% + \let\leadingtoks\empty + \let\trailingtoks\empty + \pulloffstartspaces\pulloffstartbrace + \removetrailingspaces\removetrailingnewline + \removetrailingspaces\removetrailingbrace + \textcolor{keycolor}{\leadingtoks}% + \@xp\pgfmanualprettyprintcode\@xp{\thekey}% + \textcolor{keycolor}{\trailingtoks}% + \egroup +} + +\declarecustomhandler{font}{\codehandler} +\declarecustomhandler{page constraint}{\codehandler} +\declarecustomhandler{page constraint}{\codehandler} + +\let\pgfmanualpdflabel@opt@old\pgfmanualpdflabel@opt +\def\pgfmanualpdflabel@opt[#1]#2#3{% + \pgfkeys@spdef\temp{#2}% + \sseq@eval{\unexpanded{\pgfmanualpdflabel@opt@old[#1]}\unexpanded\@xp{\@xp{\temp}{#3}}}% +} + +\patchcmd\extractkey{\hfill(\extrakeytext no value)}{}{}{\error} +\patchcmd\extractkey{\def\mykey}{\gdef\mykey}{}{\error} +\patchcmd\extractkeyequal{\hfill(\extrakeytext no default)}{}{}{\error} +\patchcmd\extractkeyequal{\def\mykey}{\gdef\mykey}{}{\error} +\patchcmd\extractinitial{no default, }{}{}{\error} +\patchcmd\extractinitial{\def\mykey}{\gdef\mykey}{}{\error} +\patchcmd\extractdefault{\def\mykey}{\gdef\mykey}{}{\error} +\patchcmd\extractdefault{#2}{{\hskip2pt}#2}{}{\error} +\patchcmd\extractequalinitial{\def\mykey}{\gdef\mykey}{}{\error} +\let\extractkey@\extractkey +\apptocmd\extractkey@{\egroup}{}{\error} +\def\extractkey{\bgroup\@ifnextchar*{\def\decompose####1\nil{}\relax\extractkey@\@gobble}{\extractkey@}} + +\def\pgfmanual@pretty@quote{"} +\let\pgfmanual@pretty@pgfkeys@loop@\pgfmanual@pretty@pgfkeys@loop +\def\pgfmanual@pretty@pgfkeys@loop#1{% + \def\pgfmanual@loc@TMPa{#1}% + \def\pgfmanual@pretty@pgfkeys@loop@NEXT{\pgfmanual@pretty@pgfkeys@loop@{#1}}% + \ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@quote% + \let\pgfmanual@pretty@pgfkeys@loop@NEXT\pgfmanual@pretty@collectquote + \fi + \pgfmanual@pretty@pgfkeys@loop@NEXT +} +\def\pgfmanual@pretty@collectquote{% + \let\pgfmanualprettyprinterhandlecollectedargs=\pgfmanual@pretty@collectargs@finish@collectquote + \pgfmanualprettyprintercollectupto" + {\pgfmanual@pretty@collectquote@b}% +} +\def\pgfmanual@pretty@collectquote@b{% + \let\pgfmanualprettyprinterhandlecollectedargs=\pgfmanual@pretty@collectargs@finish@collectquote@b + \pgfmanualprettyprintercollectupto,{% + \@xp\afterpgfmanual@pretty@collectquote\temp + }% +} + +\def\afterpgfmanual@pretty@collectquotenocomma,{\pgfmanual@pretty@pgfkeys@loop} +\def\afterpgfmanual@pretty@collectquote{\pgfmanual@pretty@pgfkeys@loop} +\def\pgfmanual@pretty@collectargs@finish@collectquote#1{\textcolor{keycolor}{\pgfmanualpdfref{""quotes}{"#1"}}} +\def\pgfmanual@pretty@collectargs@finish@collectquote@b#1{% + \edef\temp{\ifpgfmanualprettyprinterfoundterminator,\fi}% + \pgfkeys{/codeexample/prettyprint/key name/.code={\textcolor{keycolor}{##1}}}% + \def\thekey{#1}% + \def\leadingtoks{}\def\trailingtoks{}% + \pulloffstartspaces\pulloffsinglequote\pulloffstartspaces\pulloffstartbrace + \removetrailingspaces\removetrailingbrace + \textcolor{keycolor}{{}\leadingtoks}% {} here to prevent \textcolor from eating initial space + \@xp\pgfmanual@pretty@pgfkeys@loop\thekey\pgfmanual@EOI + \textcolor{keycolor}{{}\trailingtoks}% +} + +% Don't allow braces in key names +\patchcmd\pgfmanual@pretty@pgfkeys@collectkey{% + \def\pgfmanual@pretty@pgfkeys@collectkey@next{% + \pgfmanualprettyprintercollectargcount{1}{\pgfmanual@pretty@pgfkeys@collectkey}% + #1% + }% +}{% + \expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }% + #1% + \def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@loop}% +}{}{\error} + +% Redefine point collection to correctly balance the parens +% Has unfortunate side effect that it now throws an error if parens don't balance. +\let\pgfmanual@pretty@collectpoint@old\pgfmanual@pretty@collectpoint +\def\pgfmanual@pretty@collectpoint{\pgfmanual@pretty@collectpoint@(} %) +\DeclareDocumentCommand\pgfmanual@pretty@collectpoint@{r()}{% + \pgfmanualprettyprinterfoundterminatortrue + \pgfmanual@pretty@collectargs@finish@collectpoint{#1}% + \afterpgfmanual@pretty@collectpoint +} + + +\pgfqkeys{/codeexample/prettyprint}{ + cs arguments/meta/.initial=1, % Make \meta work correctly in codeexample + cs/meta/.code={\textcolor{black}{\meta{\@gobble#1}}}, +% + cs arguments/opt/.initial=1, + cs/opt/.code={\opt{\@gobble#1}}, + % + cs arguments/oarg/.initial=1, + cs/oarg/.code={\oarg{\@gobble#1}}, +% + cs arguments/marg/.initial=1, + cs/marg/.code={\marg{\@gobble#1}}, +% + cs arguments/pars/.initial=1, + cs/pars/.code={\@xp\pars\@xp{\@xp\pgfmanualprettyprintpgfkeys\@xp{\@gobble#1}}}, + cs arguments/pararg/.initial=1, + cs/pararg/.code={\pararg{\@gobble#1}}, + cs arguments/parargtwo/.initial=2, + cs/parargtwo/.code 2 args={\parargtwo{\@gobble#1}{\@gobble#2}}, +% + cs arguments/cscolor/.initial=1, + cs/cscolor/.code={\textcolor{cscolor}{\@gobble#1}}, + cs arguments/pointcolor/.initial=1, + cs/pointcolor/.code={\textcolor{pointcolor}{\@gobble#1}}, + %point/.code={\def\temp{#1}\show\temp}, +% + cs arguments/sseqset/.initial=1, + cs/sseqset/.code 2 args={\textcolor{cscolor}{\string\sseqset}\{\pgfmanualprettyprintpgfkeys{#2}\}}, +% + cs arguments/DeclareDocumentCommand/.initial=2, + cs/DeclareDocumentCommand/.code={\handlexparsestylecmd#1}, + cs arguments/NewSseqCommand/.initial=2, + cs/NewSseqCommand/.code={\handlexparsestylecmd#1}, +% + /pdflinks/internal link prefix=pgf, + key value with style detection/.code 2 args={\pgfkeysalso{/codeexample/prettyprint/key value display only={#2}}}, % get rid of bothersome special style handling + % handle spaces and colons + key name/.code={% + \pgfkeys@spdef\temp{#1}% + \let\pgfmanual@pretty@pgfkeys@collectkey@keyname\temp + \textcolor{keycolor}{% + \pgfmanualpdfref{\temp}{% + \noligs{\@xp\eatclnifpresent\@xp{\temp}}% + }% + }% + \onlytrailingspaces{#1}% + }, + key value display only/.code={% + \sseq@eval{\@nx\pgfutil@in@{/.style}{\pgfmanual@pretty@pgfkeys@collectkey@keyname}}% + \ifpgfutil@in@\else + \sseq@eval{\@nx\pgfutil@in@{/.sseq style}{\pgfmanual@pretty@pgfkeys@collectkey@keyname}}% + \fi + \ifpgfutil@in@ + \def\thekey{#1}% + \def\trailingtoks{}% + \removetrailingspaces\removetrailingbrace + \@xp\stylehandler\@xp{\@xp}\@xp{\thekey}% + \textcolor{keycolor}{% + \trailingtoks + }% + \else + \ifcustomhandler{\pgfmanual@pretty@pgfkeys@collectkey@keyname}{% + \def\thekey{#1}% + \def\trailingtoks{}% + \removetrailingspaces\removetrailingbrace + \@xp\customhandler\@xp{\@xp\pgfmanual@pretty@pgfkeys@collectkey@keyname\@xp}\@xp{\thekey}% + \textcolor{keycolor}{% + \trailingtoks + }% + }{% + \textcolor{keycolor}{{\itshape{\let\pgfmanualwordstartup\relax\pgfmanualprettyprintpgfkeys{#1}}}}% + }% + \fi + }, + point/.code={\pgfutil@in@){#1}\ifpgfutil@in@\prettyprintprocesspoint#1\else \textcolor{pointcolor}{\noligs{#1}}\fi}, + %/cs/.code={\pgfmanualpdfref{#1}{\textcolor{blue}{#1}}}, +% /cs with args/.code 2 args={\pgfmanualpdfref{#1}{\textcolor{blue}{#1}}\{\pgfmanualprettyprintcode{#2}\pgfmanualclosebrace}, + %/colored +} + +\def\handlexparsestylecmd#1#2#3{\pgfkeysvalueof{/codeexample/prettyprint/cs/.@cmd}#1\pgfeov\textcolor{cscolor}{#2}\typesetargspec{#3}} +\def\typesetargspec#1{\{\textcolor{purple}{#1}\}} + +\let\oldtextcolor\textcolor +\def\textcolorpoint#1{\oldtextcolor{pointcolor}} + + +% Normally the verbatim processes stuff using +\let\pgfmanual@verb@collect@code\pgfmanual@verb@collect +\patchcmd\pgfmanual@verb@collect@code{\pgfmanualprettyprintpgfkeys}{\pgfmanualprettyprintcode}{}{\error} +\let\pgfmanual@verb@code\pgfmanual@verb +\patchcmd\pgfmanual@verb@code{\begingroup}{\begingroup\let\pgfmanual@verb@collect\pgfmanual@verb@collect@code}{}{\error} +\def\codeverb|{\pgfmanual@verb@code} + +% balance the braces +\NewDocumentCommand\prettyprintprocesspoint { r() } {% + \textcolor{pointcolor}{% + \bgroup + \let\pgfmanual@pretty@collectpoint\pgfmanual@pretty@collectpoint@old + \let\textcolor\textcolorpoint + \noligs{(\pgfmanualprettyprintcode{#1})}% + \egroup + }% +} +%\pgfqkeys{/codeexample}{every codeexample/.style={width=6cm}} + + +\pgfqkeys{/sseqpages}{ + class/class:name/.forward to=/sseqpages/class/name, + class/class:page/.forward to=/sseqpages/class/page, + struct line/structline:page/.forward to=/sseqpages/struct line/page, + fit/cc:differential style/.forward to=/sseqpages/fit/differential style, + tikz primitives/cc:differential style/.forward to=/sseqpages/tikz primitives/differential style +} + + +\def\ooptions{\oarg{options}} +\def\moptions{|[|\meta{options}|]|} +\def\sourcecoord{\meta{source coordinate}} +\def\targetcoord{\meta{target coordinate}} +\def\sourcen{\meta{source n}} +\def\targetn{\meta{target n}} +\def\sourcename{\meta{source name}} + +\def\version{version 1.0} +\def\today{\the\year/\the\month/\the\day} +\def\pgfmanualurl{http://math.mit.edu/~hood/pgfmanual_v3.0.1a.pdf} +\def\xparseurl{http://mirror.ctan.org/macros/latex2e/contrib/l3packages/xparse.pdf} +\def\colormanualurl{http://mirror.ctan.org/macros/latex/required/graphics/color.pdf} + +\def\pkg#1{\textsf{\textmd{#1}}} +\def\sseqpages{\textsc{\pkg{spectralsequences}}} +\def\sseqpkg{\pkg{sseq}} +\let\tikzpkg\tikzname +\def\pgfpkg{\pkg{\textmd{PGF}}} +\def\tikzcdpkg{\pkg{tikzcd}} +\def\pgfplotspkg{\textsc{\pkg{pgfplots}}} +\def\xparsepkg{\pkg{xparse}} +\def\colorpkg{\pkg{color}} + +\bgroup\lccode`\(=`\{\lccode`\)=`\}\lowercase{\egroup + \def\sseqpageenv{\pgfmanualpdfref{sseqpage}{\texttt{(sseqpage)}}} + \def\sseqdataenv{\pgfmanualpdfref{sseqdata}{\texttt{(sseqdata)}}} + \def\tikzpictureenv{\texttt{(tikzpicture)}} + \def\scopeenv{\texttt{(scope)}} +} + + +\hypersetup{ + pdftitle={The Sseqpages Package}, + pdfauthor={Hood Chatham}, + pdfsubject={A spectral sequence drawing package build on tikz}, + pdfkeywords={spectral sequences,algebraic topology,homotopy theory,math,tikz,sseq}, + pdflicenseurl={http://www.latex-project.org/lppl/} +} + +\def\pars#1{|(|#1|)|} +\def\pararg#1{\pars{\meta{#1}}} +\def\parargtwo#1#2{|(\meta{#1},\meta{#2})|} +\def\parargthree#1#2#3{|(\meta{#1},\meta{#2},\meta{#3})|} +\def\parargthreeopt#1#2#3{|(\meta{#1},\meta{#2}|\opt{|,\meta{#3}|}|)|} +\def\parargthreevar#1#2#3{|(\meta{#1},\meta{#2}#3)|} + + +\def\example#1{\path{example_#1.tex}} + + +% xparse modifications: +\ExplSyntaxOn +\cs_set_eq:NN \__xparse_grab_U:w \sseq__xparse_grab_U:w +\cs_set_eq:NN \__xparse_add_type_U:w \sseq__xparse_add_type_U:w +\ExplSyntaxOff + +\def\@maketitle{% + \null\vskip 2em + \begin{center}\let\footnote\thanks\sffamily + {\huge \@title\par}\vskip 1.5em + {\large \parbox{.33\textwidth}{\centering\@author}% + \parbox{.33\textwidth}{\centering\@date}}% + \vskip2.5em\rule{\textwidth}{.4pt}% + \end{center}\par\vskip1.5em} +\def\abstractname{} +\def\mailtoHC{\href % some PDF viewers don't like spaces: + {mailto:\%20Hood\%20Chatham?subject=[sseqpages]} + {\texttt{hood@mit.edu}}} \ No newline at end of file -- cgit v1.2.3