summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/phfqit
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-08-20 22:13:28 +0000
committerKarl Berry <karl@freefriends.org>2017-08-20 22:13:28 +0000
commitdb59a59aaaa697ab9e342dd19f098f8ce33294a0 (patch)
tree4ab25cb85b56437f43e37d8c0701d18e991eec51 /Master/texmf-dist/tex/latex/phfqit
parent30c193b890874a6cd3065cb3f16b5845c4614e60 (diff)
phfqit (20aug17)
git-svn-id: svn://tug.org/texlive/trunk@45084 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/phfqit')
-rw-r--r--Master/texmf-dist/tex/latex/phfqit/phfqit.sty479
1 files changed, 280 insertions, 199 deletions
diff --git a/Master/texmf-dist/tex/latex/phfqit/phfqit.sty b/Master/texmf-dist/tex/latex/phfqit/phfqit.sty
index 9a5da7371ba..23b8a5b1778 100644
--- a/Master/texmf-dist/tex/latex/phfqit/phfqit.sty
+++ b/Master/texmf-dist/tex/latex/phfqit/phfqit.sty
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2016 by Philippe Faist <philippe.faist@bluewin.ch>
+%% Copyright (C) 2016 by Philippe Faist, philippe.faist@bluewin.ch
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -22,13 +22,16 @@
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{phfqit}
- [2016/08/15 v1.0 phfqit package]
+ [2017/08/16 v2.0 phfqit package]
\RequirePackage{calc}
\RequirePackage{etoolbox}
\RequirePackage{amsmath}
\RequirePackage{dsfont}
\RequirePackage{mathrsfs}
\RequirePackage{mathtools}
+\RequirePackage{xparse}
+\RequirePackage{xkeyval}
+\RequirePackage{kvoptions}
\newcommand{\Hs}{\mathscr{H}}
\newcommand{\Ident}{\mathds{1}}
\def\IdentProc{%
@@ -53,7 +56,7 @@
}
\def\phfqit@IdentProc@do#1#2#3{%
\operatorname{id}_{#1\notblank{#2}{\to #2}{}}%
- \notblank{#3}{\expandafter\phfqit@inner@parens\phfqit@val@sizearg{#3}}{}%
+ \notblank{#3}{\expandafter\phfqitParens\phfqit@val@sizearg{#3}}{}%
}
\def\ee^#1{e^{#1}} % we could imagine that in inlines, we replace this by exp()...
\DeclareMathOperator{\tr}{tr}
@@ -64,10 +67,8 @@
\DeclareMathOperator{\diag}{diag}
\let\phfqit@Re\Re
\DeclareMathOperator{\phfqit@Realpart}{Re}%
-\renewcommand{\Re}{\phfqit@Realpart}
\let\phfqit@Im\Im
\DeclareMathOperator{\phfqit@Imagpart}{Im}%
-\renewcommand{\Im}{\phfqit@Imagpart}
\DeclareMathOperator{\poly}{poly}
\newcommand\bit[1]{\texttt{#1}}
\newcommand\bitstring[1]{\phfqit@bitstring{#1}}
@@ -138,211 +139,291 @@
\begingroup%
\mathcode`\`="0060\relax%
\gdef\phfqit@val@sizearg{}%
- \@ifnextchar`{\phfqit@parsesizearg@withsize{#1}}{\endgroup#1}%
+ \def\phfqit@tmp@contwithsize{\phfqit@parsesizearg@withsize{#1}}%
+ \@ifnextchar`{\phfqit@tmp@contwithsize}{\endgroup#1}%
}
\def\phfqit@parsesizearg@withsize#1`#2{%
- \def\@tmp@arg{#2}%
- \def\@tmp@star{*}%
- \def\@tmp@endgroupandcontinue{\endgroup#1}%
- \ifx\@tmp@arg\@tmp@star\relax%
+ \def\phfqit@tmp@x{#2}%
+ \def\phfqit@tmp@star{*}%
+ \ifx\phfqit@tmp@x\phfqit@tmp@star%
\gdef\phfqit@val@sizearg{*}%
- \expandafter\@tmp@endgroupandcontinue%
+ \def\phfqit@tmp@cont{\endgroup#1}%
+ \expandafter\phfqit@tmp@cont%
\else%
\gdef\phfqit@val@sizearg{[#2]}%
- \expandafter\@tmp@endgroupandcontinue%
+ \def\phfqit@tmp@cont{\endgroup#1}%
+ \expandafter\phfqit@tmp@cont%
\fi%
}
-\DeclarePairedDelimiterX\phfqit@inner@parens[1]{(}{)}{#1}
-\newcommand\HHSym{H}
-\def\@HHbase#1#2{%
- #1_{#2}%
- \@HHbase@parsesize%
-}
-\robustify\@HHbase
-\def\@HHbase@parsesize{%
- \begingroup\mathcode`\`="0060\relax%
- \gdef\HH@tmp@sizearg{}%
- \@ifnextchar`\@HHbase@withsize\@HHbase@endgroupandparseinner%
-}
-\def\@HHbase@withsize`#1{%
- \def\@tmp@arg{#1}%
- \def\@tmp@star{*}%
- \ifx\@tmp@arg\@tmp@star\relax%
- \gdef\HH@tmp@sizearg{*}%
- \expandafter\@HHbase@endgroupandparseinner%
- \else%
- \gdef\HH@tmp@sizearg{[#1]}%
- \expandafter\@HHbase@endgroupandparseinner%
- \fi%
-}
-\def\@HHbase@endgroupandparseinner{\endgroup\@HHbase@parseinner}
-\newcommand\@HHbase@parseinner[1][]{% arg: state
- \def\HH@tmpstore@state{#1}%
- \@HHbase@parseinner@%
-}
-\newcommand\@HHbase@parseinner@[2][]{% arg: epsilon and target system
- \def\HH@tmpstore@epsilon{#1}%
- \def\HH@tmpstore@system{#2}%
- \@HHbase@parseinner@@%
-}
-\newcommand\@HHbase@parseinner@@[1][]{% arg: conditioning system
- \def\HH@tmpstore@condsys{#1}%
- \@HHbase@do@inner%
-}
-\newtoks\HH@tmp@toks
-\def\HH@addtoks#1\@HH@END@ADD@TOKS{\HH@tmp@toks=\expandafter{\the\HH@tmp@toks#1}}%
-\def\@HHbase@do@inner{%
- ^{\HH@tmpstore@epsilon}%
- \expandafter\notblank\expandafter{\HH@tmpstore@system}{%
- \HH@tmp@toks={}%
- \expandafter\HH@addtoks\HH@tmpstore@system\@HH@END@ADD@TOKS%
- \expandafter\notblank\expandafter{\HH@tmpstore@condsys}{%
- \HH@addtoks\mathclose{}\,\delimsize\vert\,\mathopen{}\@HH@END@ADD@TOKS%
- \expandafter\HH@addtoks\HH@tmpstore@condsys\@HH@END@ADD@TOKS%
+\DeclarePairedDelimiterX\phfqitParens[1]{(}{)}{#1}
+\DeclarePairedDelimiterX\phfqitSquareBrackets[1]{[}{]}{#1}
+\DeclarePairedDelimiterX\phfqitCurlyBrackets[1]{\{}{\}}{#1}
+\newcommand\QitObject[1]{%
+ \begingroup%
+ \preto\QitObjectDone{\endgroup}%
+ \QitObjectInit%
+ \csname QitObj@reg@#1@initdefs\endcsname%
+%%\message{DEBUG: \detokenize{\QitObject{#1}}}%
+ \def\QitObj@args{}%
+ \def\qitobjParseDone{\QitObj@proceedToRender{#1}}%
+ \def\qitobjDone{\QitObjectDone}%
+ \csname QitObj@reg@#1@parse\endcsname%
+}
+\def\DefineQitObject#1#2#3{%
+ \DefineTunedQitObject{#1}{#2}{#3}{}{}%
+}%
+\def\DefineTunedQitObject#1#2#3#4#5{%
+ \csdef{#1}{\QitObject{#1}#4}%
+ \expandafter\robustify\csname #1\endcsname%
+ \cslet{QitObj@reg@#1@parse}#2%
+ \cslet{QitObj@reg@#1@render}#3%
+ \csdef{QitObj@reg@#1@initdefs}{#5}%
+}
+\def\qitobjAddArg#1{%
+ \appto\QitObj@args{{#1}}%
+}
+\def\qitobjAddArgx#1{%
+ \expandafter\qitobjAddArg\expandafter{#1}%
+}
+\def\qitobjParseDone{}
+\def\qitobjDone{}
+\def\QitObjectDone{}
+\def\QitObjectInit{}
+\def\QitObj@proceedToRender#1{%
+%%\message{DEBUG: Rendering #1|\detokenize\expandafter{\QitObj@args}|}%
+ \expandafter\def\expandafter\x\expandafter{%
+ \csname QitObj@reg@#1@render\endcsname}%
+ \expandafter\x\QitObj@args%
+}
+\def\HbaseParse#1#2{%
+ \qitobjAddArg{#1}%
+ \qitobjAddArg{#2}%
+ \phfqit@parsesizearg\HbaseParse@%
+}
+\newcommand\HbaseParse@[1][]{%
+ \qitobjAddArgx{\phfqit@val@sizearg}%
+ \qitobjAddArg{#1}%
+ \HbaseParse@@%
+}
+\newcommand\HbaseParse@@[2][]{%
+ \qitobjAddArg{#1}%
+ \qitobjAddArg{#2}%
+ \HbaseParse@@@%
+}
+\newcommand\HbaseParse@@@[1][]{%
+ \qitobjAddArg{#1}%
+ \qitobjParseDone%
+}
+\def\HbaseRender#1#2#3#4#5#6#7{%
+%%\message{DEBUG: HbaseRender\detokenize{{#1}{#2}{#3}{#4}{#5}{#6}{#7}}}%
+ \HbaseRenderSym{#1}_{\HbaseRenderSub{#2}}^{\HbaseRenderSup{#5}}
+ \notblank{#4#6#7}{%
+ \HbaseRenderContents{#3}{#6}{#7}%
+ \HbaseRenderTail{#4}%
+ }{}%
+ \qitobjDone%
+}
+\def\HbaseRenderSym#1{#1}%
+\def\HbaseRenderSub#1{#1}%
+\def\HbaseRenderSup#1{#1}%
+\def\HbaseRenderTail#1{_{#1}}%
+\newtoks\Hbase@tmp@toks
+\def\Hbase@addtoks#1\@Hbase@END@ADD@TOKS{%
+ \Hbase@tmp@toks=\expandafter{\the\Hbase@tmp@toks#1}}%
+\def\HbaseRenderContents#1#2#3{%
+ \Hbase@tmp@toks={#2}%
+ \notblank{#3}{%
+ \Hbase@addtoks\mathclose{}\,\delimsize\vert\,\mathopen{}%
+ #3%
+ \@Hbase@END@ADD@TOKS%
}{}%
- \edef\tmp@args{\expandonce{\HH@tmp@sizearg}{\the\HH@tmp@toks}}%
- \expandafter\phfqit@inner@parens\tmp@args%
- _{\HH@tmpstore@state}%
- %
+ \edef\tmp@args{\unexpanded{#1}{\the\Hbase@tmp@toks}}%
+ \expandafter\HbaseRenderContentsInnerParens\tmp@args%
+}
+\def\HbaseRenderContentsInnerParens{\phfqitParens}
+\DefineQitObject{Hbase}{\HbaseParse}{\HbaseRender}
+\def\HfnbaseParse#1#2#3{%
+ \qitobjAddArg{#1}% H-sym
+ \qitobjAddArg{#2}% sub
+ \phfqit@parsesizearg{\HfnbaseParse@{#3}}%
+}
+\NewDocumentCommand{\HfnbaseParse@}{mr()}{%
+ \qitobjAddArgx{\phfqit@val@sizearg}% size-arg
+ \qitobjAddArg{}% state
+ \qitobjAddArg{#1}% epsilon
+ \qitobjAddArg{#2}% system--main arg
+ \qitobjAddArg{}% cond system
+%%\message{DEBUG: Hfnbase args are |\detokenize\expandafter{\QitObj@args}|}%
+ \qitobjParseDone%
+}
+\DefineQitObject{Hfnbase}{\HfnbaseParse}{\HbaseRender}
+\def\DbaseParse#1{%
+ \qitobjAddArg{#1}% D-sym
+ \def\DbaseParse@val@sub{}%
+ \def\DbaseParse@val@sup{}%
+ \DbaseParse@%
+}
+\def\DbaseParse@{%
+ \@ifnextchar_{\DbaseParse@parsesub}{\DbaseParse@@}%
+}
+\def\DbaseParse@@{%
+ \@ifnextchar^{\DbaseParse@parsesup}{\DbaseParse@@@}%
+}
+\def\DbaseParse@parsesub_#1{%
+ \appto\DbaseParse@val@sub{#1}%
+ \DbaseParse@% return to maybe parsing other sub/superscripts
+}
+\def\DbaseParse@parsesup^#1{%
+ \appto\DbaseParse@val@sup{#1}%
+ \DbaseParse@% return to maybe parsing other sub/superscripts
+}
+\def\DbaseParse@@@{%
+ \qitobjAddArgx\DbaseParse@val@sub%
+ \qitobjAddArgx\DbaseParse@val@sup%
+ \phfqit@parsesizearg\DbaseParse@rest%
+}
+\def\DbaseParse@rest#1#2{%
+ \qitobjAddArgx\phfqit@val@sizearg%
+ \qitobjAddArg{#1}% rho
+ \qitobjAddArg{#2}% Gamma
+ \qitobjParseDone%
+}
+\def\DbaseRender#1#2#3#4#5#6{%
+%%\message{DEBUG: DbaseRender\detokenize{{#1}{#2}{#3}{#4}{#5}{#6}}}%
+ \DbaseRenderSym{#1}_{\DbaseRenderSub{#2}}^{\DbaseRenderSup{#3}}
+ \notblank{#5#6}{%
+ \DbaseRenderContents{#4}{#5}{#6}%
}{}%
+ \qitobjDone%
+}
+\def\DbaseRenderSym#1{#1}%
+\def\DbaseRenderSub#1{#1}%
+\def\DbaseRenderSup#1{#1}%
+\newtoks\Dbase@tmp@toks
+\def\Dbase@addtoks#1\@Dbase@END@ADD@TOKS{%
+ \Dbase@tmp@toks=\expandafter{\the\Dbase@tmp@toks#1}}%
+\def\DbaseRenderContents#1#2#3{%
+ \Dbase@tmp@toks={#2}%
+ \notblank{#3}{%
+ \Dbase@addtoks\mathclose{}\,\delimsize\Vert\,\mathopen{}%
+ #3%
+ \@Dbase@END@ADD@TOKS%
+ }{}%
+ \edef\tmp@args{\unexpanded{#1}{\the\Dbase@tmp@toks}}%
+ \expandafter\DbaseRenderContentsInnerParens\tmp@args%
+}
+\def\DbaseRenderContentsInnerParens{\phfqitParens}
+\DefineQitObject{Dbase}{\DbaseParse}{\DbaseRender}
+\def\DCohbaseParse#1{%
+ \qitobjAddArg{#1}% D-sym
+ \DCohbaseParse@%
+}
+\newcommand\DCohbaseParse@[1][]{%
+ \qitobjAddArg{#1}% epsilon
+ \phfqit@parsesizearg\DCohbaseParse@rest%
+}
+\def\DCohbaseParse@rest#1#2#3#4#5{%
+ % rho, X, X', \Gamma_X, \Gamma_{X'}
+ \qitobjAddArgx\phfqit@val@sizearg%
+ \DCohbaseParse@parserhosub#1\DCohbaseParse@ENDSTATE{#2}{#3}%
+ \qitobjAddArg{#2}%
+ \qitobjAddArg{#3}%
+ \qitobjAddArg{#4}%
+ \qitobjAddArg{#5}%
+ \qitobjParseDone%
+}
+\def\DCohbaseParse@parserhosub{%
+ \@ifnextchar*\DCohbaseParse@parserhosub@nosub%
+ \DCohbaseParse@parserhosub@wsub%
+}
+\def\DCohbaseParse@parserhosub@nosub*#1\DCohbaseParse@ENDSTATE#2#3{%
+ \qitobjAddArg{#1}% rho
+}
+\def\DCohbaseParse@parserhosub@wsub#1\DCohbaseParse@ENDSTATE#2#3{%
+ \qitobjAddArg{#1_{\begingroup\let\emptysystem\relax%
+ \DCohbaseStateSubscripts{#2}{#3}\endgroup}}% all this for "rho" arg
+}
+\def\DCohbaseStateSubscripts#1#2{%
+ #2#1%
+}
+\def\DCohbaseRender#1#2#3#4#5#6#7#8{%
%
-}
-\newcommand\HH{\@HHbase{\HHSym}{}}
-\newcommand\Hzero{\@HHbase{\HHSym}{\mathrm{max},0}}
-\newcommand\Hmin{\@HHbase{\HHSym}{\mathrm{min}}}
-\newcommand\Hmaxf{\@HHbase{\HHSym}{\mathrm{max}}}
-\DeclareRobustCommand\Hfunc{%
- \begingroup\mathcode`\`="0060\relax%
- \gdef\Hfunc@tmp@sizearg{}%
- \@ifnextchar`\Hfunc@withsize\Hfunc@next%
-}
-\def\Hfunc@withsize`#1{%
- \def\@tmp@arg{#1}%
- \def\@tmp@star{*}%
- \ifx\@tmp@arg\@tmp@star\relax%
- \gdef\Hfunc@tmp@sizearg{*}%
- \endgroup%
- \expandafter\Hfunc@inner%
- \else%
- \gdef\Hfunc@tmp@sizearg{[#1]}%
- \endgroup%
- \expandafter\Hfunc@inner%
- \fi%
-}
-\def\Hfunc@next{\endgroup\Hfunc@inner}
-\def\Hfunc@inner(#1){%
- \HHSym% ({#1})%
- \expandafter\phfqit@inner@parens\Hfunc@tmp@sizearg{#1}%
-}
-\newcommand\DDSym{D}
-\DeclarePairedDelimiterX\@DDbase@inner[2]{(}{)}{%
- #1\mathclose{}\,\delimsize\Vert\,\mathopen{}#2%
-}
-\def\@DDbase#1#2#3{%
- #1_{#2}^{#3}%
- \@DDbase@parsesize%
-}
-\robustify\@DDbase
-\def\@DDbase@parsesize{%
- \@ifnextchar`\@DDbase@withsize\@DDbase@inner%
-}
-\def\@DDbase@withsize`#1{%
- \def\@tmp@arg{#1}%
- \def\@tmp@star{*}%
- \ifx\@tmp@arg\@tmp@star\relax%
- \def\tmp@cmd{\@DDbase@inner*}%
- \expandafter\tmp@cmd%
- \else%
- \def\tmp@cmd{\@DDbase@inner[#1]}%
- \expandafter\tmp@cmd%
- \fi%
-}
-\DeclareRobustCommand\DD{%
- \def\DD@tmp@sub{}%
- \def\DD@tmp@sup{}%
- \DD@%
-}
-\def\DD@{%
- \@ifnextchar_\DD@parsesub\DD@@%
-}
-\def\DD@@{%
- \@ifnextchar^\DD@parsesup\DD@@@%
-}
-\def\DD@@@{% sub/super-scripts have been parsed, move on to rest of command
- \@DDbase{\DDSym}{\DD@tmp@sub}{\DD@tmp@sup}%
-}
-\def\DD@parsesub_#1{%
- \def\DD@tmp@sub{#1}%
- \DD@% continue parsing maybe another sub or superscript
-}
-\def\DD@parsesup^#1{%
- \def\DD@tmp@sup{#1}%
- \DD@% continue parsing maybe another sub or superscript
-}
-\DeclareRobustCommand\Dminz[1][]{%
- \@DDbase{\DDSym}{\mathrm{min,0}}{#1}%
-}
-
-\DeclareRobustCommand\Dminf[1][]{%
- \@DDbase{\DDSym}{\mathrm{min}}{#1}%
-}
-\DeclareRobustCommand\Dmax[1][]{%
- \@DDbase{\DDSym}{\mathrm{max}}{#1}%
-}
-\DeclareRobustCommand\Dr[1][]{%
- \@DDbase{\DDSym}{\mathrm{r}}{#1}%
-}
-\DeclareRobustCommand\DHyp[1][\eta]{%
- \@DDbase{\DDSym}{\mathrm{H}}{#1}%
-}
-\DeclarePairedDelimiterX\DC@inner[3]{(}{)}{%
- #1\mathclose{}\,\delimsize\Vert\,\mathopen{}#2\mathclose{},\mathopen{}#3%
-}
-\newcommand\DCSym{\bar\DDSym}
+%%\message{DEBUG: DCohbaseRender here, args are |\detokenize{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}|.}}
+ %
+ \DCohbaseRenderSym{#1}%
+ _{\DCohbaseRenderSystems{#5}{#6}}%
+ ^{\DCohbaseRenderSup{#2}}%
+ \notblank{#4#7#8}{%
+ \DCohbaseRenderContents{#3}{#4}{#7}{#8}%
+ }{}%
+ \qitobjDone%
+}
+\def\DCohbaseRenderSym#1{#1}%
+\def\DCohbaseRenderSystems#1#2{#1\to #2}%
+\def\DCohbaseRenderSup#1{#1}%
+\newtoks\DCohbase@tmp@toks
+\def\DCohbase@addtoks#1\@DCohbase@END@ADD@TOKS{%
+ \DCohbase@tmp@toks=\expandafter{\the\DCohbase@tmp@toks#1}}%
+\def\DCohbaseRenderContents#1#2#3#4{%
+ \DCohbase@tmp@toks={#2}%
+ \notblank{#3#4}{%
+ \DCohbase@addtoks\mathclose{}\,\delimsize\Vert\,\mathopen{}%
+ #3\mathclose{},\mathopen{}#4\@DCohbase@END@ADD@TOKS%
+ }{}%
+ \edef\tmp@args{\unexpanded{#1}{\the\DCohbase@tmp@toks}}%
+ \expandafter\DCohbaseRenderContentsInnerParens\tmp@args%
+}
+\def\DCohbaseRenderContentsInnerParens{\phfqitParens}
+\DefineQitObject{DCohbase}{\DCohbaseParse}{\DCohbaseRender}
+\def\HSym{H}
+\newcommand\DSym{D}
+\newcommand\DCSym{\bar\DSym}
\def\emptysystem{\ensuremath{\emptyset}}
-\newcommand\DCoh[1][]{%
- \def\DC@tmp@sup{#1}%
- %\message{*********|\detokenize{#1}|*********}%
- \begingroup\mathcode`\`="0060\relax
- \DC@parsesize%
-}
-\def\DC@parsesize#1{%
- \gdef\DC@tmp@sizeargs{}%
- \ifstrequal{#1}{`}\DC@withsize{\endgroup\DC@rest{#1}}%
-}
-\def\DC@withsize#1{%
- %\message{*********\detokenize{#1}********}%
- \def\@tmp@arg{#1}%
- \def\@tmp@star{*}%
- \ifx\@tmp@arg\@tmp@star\relax%
- \gdef\DC@tmp@sizeargs{*}%
- \endgroup%
- \expandafter\DC@rest%
- \else%
- \gdef\DC@tmp@sizeargs{[#1]}%
- \endgroup%
- \expandafter\DC@rest%
- \fi%
-}
-\def\DC@rest#1#2#3#4#5{%
- %\message{*********\detokenize{#1}|\detokenize{#2}|\detokenize{#3}%
- % |\detokenize{#4}|\detokenize{#5}|********}%
- \def\DC@tmp@rho{\DC@fmtrhosub#1\DC@ENDSTATE{#2}{#3}}%
- \DCSym_{#2\to #3}^{\DC@tmp@sup}%
- \expandafter\DC@inner\DC@tmp@sizeargs{\DC@tmp@rho}{#4}{#5}%
-}
-\def\DC@fmtrhosub{%
- \@ifnextchar*\DC@fmtrhosub@nosub\DC@fmtrhosub@wsub%
-}
-\def\DC@fmtrhosub@nosub*#1\DC@ENDSTATE#2#3{%
- #1%
-}
-\def\DC@fmtrhosub@wsub#1\DC@ENDSTATE#2#3{%
- \begingroup%
- \let\emptysystem\relax%
- #1_{#3#2}%
- \endgroup%
-}
+\def\DCohxRefSystemName#1{R_{#1}}
+\def\DCohxStateSubscripts#1#2{#2\DCohxRefSystemName{#1}}
+\let\@HHbase\Hbase
+\let\@DDbase\Dbase
+\let\HHSym\HSym
+\let\DDSym\DSym
+\SetupKeyvalOptions{
+ family=phfqit,
+ prefix=phfqit@opt@
+}
+\DeclareStringOption[stdset]{qitobjdef}
+\DeclareBoolOption[true]{newReIm}
+\ProcessKeyvalOptions*
+\ifphfqit@opt@newReIm
+ \renewcommand{\Re}{\phfqit@Realpart}
+ \renewcommand{\Im}{\phfqit@Imagpart}
+\fi
+\def\phfqit@tmp@str@none{none}
+\def\phfqit@tmp@str@stdset{stdset}
+\ifx\phfqit@opt@qitobjdef\phfqit@tmp@str@none%
+\else\ifx\phfqit@opt@qitobjdef\phfqit@tmp@str@stdset%
+\def\HH{\Hbase{\HSym}{}}
+\def\Hzero{\Hbase{\HSym}{\mathrm{max},0}}
+\def\Hmin{\Hbase{\HSym}{\mathrm{min}}}
+\def\Hmaxf{\Hbase{\HSym}{\mathrm{max}}}
+\def\Hfn{\Hfnbase{\HSym}{}{}}
+\let\Hfunc\Hfn% backwards compatibility
+\def\DD{\Dbase{\DSym}}
+\newcommand\Dminz[1][]{\Dbase{\DSym}_{\mathrm{min,0}}^{#1}}
+\newcommand\Dminf[1][]{\Dbase{\DSym}_{\mathrm{min}}^{#1}}
+\newcommand\Dmax[1][]{\Dbase{\DSym}_{\mathrm{max}}^{#1}}
+\newcommand\Dr[1][]{\Dbase{\DSym}_{\mathrm{r}}^{#1}}
+\newcommand\DHyp[1][\eta]{\Dbase{\DSym}_{\mathrm{H}}^{#1}}
+\DefineTunedQitObject{DCoh}{\DCohbaseParse}{\DCohbaseRender}{{\DCSym}}{}
+\DefineTunedQitObject{DCohx}{\DCohbaseParse}{\DCohbaseRender}%
+{{\DCSym}}{%
+ \let\DCohbaseStateSubscripts\DCohxStateSubscripts%
+}
+\else
+\PackageError{phfqit}{Invalid value `\phfqit@opt@qitobjdef' specified for
+ package option `qitobjdef'. Please specify one of `stdset' (the default) or
+ `none'}{You specified an invalid value to the `qitobjdef' package option of
+ the `phfqit' package.}
+\fi
+\fi
\endinput
%%
%% End of file `phfqit.sty'.