%% %% \iffalse ^^A we skip the debug setting \IfFileExists{\string~/bin/gen_and_xela}{\errorcontextlines=1000 }{} %% \fi %% ^^A $Id: TheUltimateMaster.gmd,v 0.352 2011/10/12 15:19:42 natror Exp natror $ %% This is file “gmtypos.sty” generated with the DocStrip utility. %% %% %% The original source files were: %% %% gmutils/gmutils.gmd (with options: `typos') %% %% %% Copyright © %% by Grzegorz ‘Natror’ Murzynowski %% natror (at) gmail (dot) com %% %% This program is subject to the LaTeX Project Public License. %% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html %% for the details of that license. %% %% LPPL status: "author-maintained". %% %% %% %% For documentation please refer to the file(s) %% gmutils.{gmd,pdf}. %% %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{gmtypos} [2011/10/12 v0.996 a collection of macros, mostly typographical (GM)] %% %% %% ^^A\typeout{\unexpanded{#4}}%% \RequirePackage{gmcommand, gmnotonlypream} \unless\ifcsname ifgmu@quiet\endcsname \@xa\newif\csname ifgmu@quiet\endcsname \fi \DeclareOption{quiet}{\gmu@quiettrue} \ProcessOptions \AtBeginDocument{% \@ifpackageloaded{fontspec}{% \pdef\udigits{% \addfontfeature{Numbers=Uppercase}}% }{% \emptify\udigits}% } \def\Xedekfracc{\gmu@ifstar\gmu@xedekfraccstar\gmu@xedekfraccplain} % (plain) The starless version turns the font feature |frac| on. % % (\*) But nor my modification of Minion Pro neither \TeX\ Gyre % Pagella doesn't feature the % |frac| font feature properly so, with the starred version of the % declaration we use the characters from the font where available % (see the |\@namedef|s below) and the |numr| and |dnom| features % with the fractional slash otherwise (via |\gmu@dekfracc|). % % (\*\*) But Latin Modern Sans Serif Quotation doesn't support the % numerator and denominator positions so we provide the double % star version for it, which takes the char from font if it exist % and typesets with lowers and kerns otherwise. \def\gmu@xedekfraccstar{% \def\gmu@xefraccdef##1##2{% \iffontchar\font ##2 \@namedef{gmu@xefracc##1}{\char##2 }% \else \n@melet{gmu@xefracc##1}{relax}% \fi}% % \def\gmu@dekfracc##1/##2{% {\addfontfeature{VerticalPosition=Numerator}##1}\gmu@numeratorkern \char"2044 \gmu@denominatorkern {\addfontfeature{VerticalPosition=Denominator}##2}}% % % We define the fractional macros. Since Adobe Minion Pro doesn't % contain $\frac n5$ nor $\frac n6$, we don't provide them here. \gmu@xefraccdef{1/4}{"BC}% \gmu@xefraccdef{1/2}{"BD}% \gmu@xefraccdef{3/4}{"BE}% \gmu@xefraccdef{1/3}{"2153}% \gmu@xefraccdef{2/3}{"2154}% \gmu@xefraccdef{1/5}{"2155}% \gmu@xefraccdef{2/5}{"2156}% \gmu@xefraccdef{3/5}{"2157}% \gmu@xefraccdef{4/5}{"2158}% \gmu@xefraccdef{1/6}{"2159}% \gmu@xefraccdef{5/6}{"215A}% \gmu@xefraccdef{1/8}{"215B}% \gmu@xefraccdef{3/8}{"215C}% \gmu@xefraccdef{5/8}{"215D}% \gmu@xefraccdef{7/8}{"215E}% \pdef\dekfracc@args##1/##2{% \gmu@ifundefined{gmu@xefracc\detokenize{##1/##2}}{% \gmu@dekfracc{##1}/{##2}}{% \csname gmu@xefracc\detokenize{##1/##2}\endcsname}% \if@gmu@mmhbox\egroup\fi }% of |\dekfracc@args|. \gmu@ifstar{\let\gmu@dekfracc\gmu@dekfraccsimple}{}% } \def\gmu@xedekfraccplain{% `else' of the main |\gmu@ifstar| \pdef\dekfracc@args##1/##2{% \ifmmode\hbox\fi{% \addfontfeature{Fractions=On}% ##1/##2}% \if@gmu@mmhbox\egroup\fi }% of |\dekfracc@args| } \newif\if@gmu@mmhbox% we'll use this switch for |\dekfracc| and also \pdef\dekfracc{% \changes{v0.94}{2008/09/14}{made to work also in math % mode, even with math-active digits} \ifmmode\hbox\bgroup\@gmu@mmhboxtrue\fi \dekfracc@args} \def\gmu@numeratorkern{\kern-.055em\relax} \def\gmu@denominatorkern{\kern-.05em\relax} \pdef\textsuperscript@@#1{% \@textsuperscript{\selectfont#1}}% \def\@textsuperscript#1{% {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}} \let\textsuperscript@@\textsuperscript \def\GMtextsuperscript{% \@ifXeTeX{% \DeclareCommand\textsuperscript{sm}{% \gmuIfValueTF{##1}{\textsuperscript@@{##2}}% {% \begingroup \addfontfeature{VerticalPosition=Numerator}##2% \endgroup}}% }{\truetextsuperscript}} \def\truetextsuperscript{% \let\textsuperscript\textsuperscript@@ } \def\gmu@getfontstring{% \xdef\gmu@fontstring{% \gmu@fontstring@}} \def\gmu@fontstring@{% \@xa\@xa\@xa\gmu@fontstring@@\@xa\meaning\the\font\@nil} \def\gmu@fontstring@@#1"#2"#3\@nil{"#2"} \def\gmu@getfontscale#1Scale#2=#3,{% \ifx\gmu@getfontscale#3\else \def\gmu@tempa{MatchLowercase}% \def\gmu@tempb{#3}% \ifx\gmu@tempa\gmu@tempb \gmu@calc@scale{5}% \@xa\@firstoftwo \else \def\gmu@tempa{MatchUppercase}% \ifx\gmu@tempa\gmu@tempb \gmu@calc@scale{8}% \afterfifi\@firstoftwo \else\afterfifi\@secondoftwo \fi \fi {\xdef\gmu@fontscalebr{[\gmu@fontscale] }}% {\xdef\gmu@fontscalebr{[#3] }}% \afterfi\gmu@getfontscale \fi } \def\gmu@getfontdata#1{% \global\emptify\gmu@fontscalebr \begingroup #1% \@xa\@xa\@xa\gmu@getfontscale \csname zf@family@options\f@family\endcsname ,Scale=\gmu@getfontscale,% \gmu@getfontstring \xdef\gmu@theskewchar{\the\skewchar\font}% \endgroup} \def\gmu@stripchar#1"{"} \DeclareCommand\gmath@getfamnum{C{\gmath@fam}}{% \edef\gmath@famnum{\@xa\gmu@stripchar\meaning#1}% } \DeclareCommand\gmathFams{o % the name of math version C{\NoValue} % ‘rescue’ font. Will be accessible via % \inverb|\symgmathRoman⁄| (math family) and % \inverb|\gmath@fontt⁄| (font). }{% \gmuIfValueT{#1}{% \DeclareMathVersion{#1}% this sets the defaults so no need to % define them explicitly }% of if |#1| given % \gmu@getfontdata{\rmfamily\itshape}% % \edef\gmu@tempa{% \gmuIfValueTF{#1}{\@nx\SetSymbolFont{letters}{#1}}% {\@nx\DeclareSymbolFont{letters}}% {\encodingdefault}{gmathit\gmuPutIfValue{#1}}{m}{it}% \gmuIfValueT{#1}{% \@nx\DeclareSymbolFont{letters#1}% {\encodingdefault}{gmathit\gmuPutIfValue{#1}}{m}{it}% }% \@nx\DeclareFontFamily{\encodingdefault}{gmathit\gmuPutIfValue{#1}}{% \skewchar\font\gmu@theskewchar\space}% \@nx\DeclareFontShape{\encodingdefault}{gmathit\gmuPutIfValue{#1}}{m}{it}{% <-> \gmu@fontscalebr \gmu@fontstring}{}% \gmuIfValueT{#1}{% \@nx\SetMathAlphabet\@nx\mathit{#1}{\encodingdefault}{gmathit#1}{m}{it}}% }\gmu@tempa % \gmuIfValueT{#2}{% \gmu@getfontdata{#2\gmu@ifstored{\upshape}{\storedcsname{upshape}}{\upshape}}% \edef\gmu@tempa{% \@nx\DeclareSymbolFont{gmathRoman\gmuPutIfValue{#1}}% {\encodingdefault}{gmathRm\gmuPutIfValue{#1}}{m}{n}% \@nx\DeclareFontFamily{\encodingdefault}{gmathRm\gmuPutIfValue{#1}}{% \skewchar\font\gmu@theskewchar\space}% \@nx\DeclareFontShape{\encodingdefault}{gmathRm\gmuPutIfValue{#1}}{m}{n}{% <-> \gmu@fontscalebr \gmu@fontstring}{}% }\gmu@tempa \@xa\font\csname gmath@fontt\gmuPutIfValue{#1}\endcsname =\gmu@fontstring\relax % \stanza \gmu@getfontdata{#2\gmu@ifstored{\itshape}{\storedcsname{itshape}}{\itshape}}% \edef\gmu@tempa{% \@nx\DeclareSymbolFont{gmathItalic\gmuPutIfValue{#1}}% {\encodingdefault}{gmathIt\gmuPutIfValue{#1}}{m}{n}% \@nx\DeclareFontFamily{\encodingdefault}{gmathIt\gmuPutIfValue{#1}}{% \skewchar\font\gmu@theskewchar\space}% \@nx\DeclareFontShape{\encodingdefault}{gmathIt\gmuPutIfValue{#1}}{m}{n}{% <-> \gmu@fontscalebr \gmu@fontstring}{}% }\gmu@tempa }% of if |#2| given % \stanza \gmu@getfontdata{\rmfamily\upshape}% \edef\gmu@tempa{% \gmuIfValueTF{#1}{\@nx\SetSymbolFont{gmathroman}{#1}}% {\@nx\DeclareSymbolFont{gmathroman}}% {\encodingdefault}{gmathrm\gmuPutIfValue{#1}}{m}{n}% \@nx\DeclareFontFamily{\encodingdefault}{gmathrm\gmuPutIfValue{#1}}{% \skewchar\font\gmu@theskewchar\space}% \@nx\DeclareFontShape{\encodingdefault}{gmathrm\gmuPutIfValue{#1}}{m}{n}{% <-> \gmu@fontscalebr \gmu@fontstring}{}% \gmuIfValueT{#1}{% \@nx\SetMathAlphabet\@nx\mathrm{#1}{\encodingdefault}{gmathrm#1}{m}{n}}% }\gmu@tempa \@xa\font\csname gmath@font\gmuPutIfValue{#1}\endcsname =\gmu@fontstring\relax \gmathfamshook } \emptify\gmathfamshook \DeclareCommand\gmathbase{oC{\NoValue}}{% \gmathFams[#1](#2)% \DeclareCommand\gmath@do{% m % (1) the character or \CS\ to be declared, o % (2) the Unicode to be assigned, m % (3) math type (\CS like \cs{mathord} etc.) C{\gmath@fam} % font family }{%\ % \gmath@getfamnum(##4)% \gmuIfValueTF{##2}{% \edef\gmu@tempa{% = \mathchar@type##3\space \gmath@famnum\space "##2\relax}% \if\relax\@nx##1% \gmu@ifstored{##1}{}{\Store@Macro##1}% \edef\gmu@tempa{% \XeTeXmathchardef \@nx##1\gmu@tempa}% \else \edef\gmu@tempa{% \XeTeXmathcode `##1 \gmu@tempa} \fi% }% {% no value of |##2| \edef\gmu@tempa{% \XeTeXmathcode `##1 = \mathchar@type##3\space \gmath@famnum\space `##1\relax}% }% \gmu@tempa }% of \incs{gmath@do} % \DeclareCommand\gmath@doif{% m % (1) the Unicode hex of char enquired, m % (2) the char or \CS\ to be declared, m % (3) math type \CS (\cs{mathord} etc.), o % (4) second-choice Unicode (taken if first-choice is absent), o % (5) third-choice Unicode (as above if second-choice is absent from font). B{\gmath@fam} % (6) never used in this package. Why? C{\NoValue} }{% \gmu@storeifnotyet{##2}% \@xa\let\@xa\gmath@ft\csname gmath@font% \ifx\gmath@fam##6\else t\fi \gmath@version \endcsname \iffontchar\gmath@ft"##1 \gmath@do##2[##1]##3(##6)% \else \gmuIfValueTF{##4}{% \iffontchar\gmath@ft"##4 \gmath@do##2[##4]##3(##6)% \else \gmuIfValueTF{##5}{% \iffontchar\gmath@ft"##5 \gmath@do##2[##5]##3(##6)% \else \gmath@restore{##1}{##2}{##3}{##4}{##5}{##7}% \fi}% {\gmath@restore{##1}{##2}{##3}{##4}{##5}{##7}}% \fi}% {\gmath@restore{##1}{##2}{##3}{##4}{##5}{##7}}% \fi }% of |\gmath@doif| % In the command above we try to define math char or a~\CS in the % family given as |##6|. If there're no respective chars, we try % the same with the family given (as a~word) in |##7|. \def\gmath@restore##1##2##3##4##5##6{% \gmuIfValueT{##6}% {\ifcsname ##6\endcsname \edef\gmu@tempa{% \unexpanded{\gmath@doif{##1}{##2}{##3}[##4][##5]}% {\@xanxcs{##6}}\relax }\gmu@tempa \@xa\@gobbletwo % if family |##6| is defined, we gobble the % other branch \fi }% \firstofone {\if\relax\@nx##2% \Restore@Macro##2% \fi }% }% % \iffalse % doesn't work in a~non-math font. \DeclareCommand\gmath@delc{mo}{%\ % \begin{enumargs*} % \mand the char or \CS\ to be declared, % \opt the Unicode (if not the same as the char). % \end{enumargs*} % \gmath@getfamnum \gmuIfValueTF{##2}{% \edef\gmu@tempa{% = \gmath@famnum\space "##2\relax}% \edef\gmu@tempa{% \XeTeXdelcode `##1 \gmu@tempa} }% {% \edef\gmu@tempa{% \XeTeXdelcode `##1 = \gmath@famnum\space `##1\relax}% }% \gmu@tempa }% of \incs{gmath@delc} % \def\gmath@delcif##1##2{%\ % \begin{enumargs*} % \mand the Unicode enquired, % \item the char to be delcode-declared % \end{enumargs*} % \iffontchar\gmath@font"##1 \gmath@delc##2[##1]\fi} \fi% of iffalse % \def\gmath@delimif##1##2##3{%\ % \begin{enumargs*} % \item the Unicode enquired, % \item the \CS\ defined as \cs{XeTeXdelimiter}, % \item the math type \CS\ (probably \incs{mathopen} or % \incs{mathclose}). % \end{enumargs*} \iffontchar\gmath@font"##1 \gmath@getfamnum \protected\edef##2{\@nx\ensuremath{% \XeTeXdelimiter \mathchar@type##3\space \gmath@famnum\space "##1\relax}}% \fi}% of \cs{gmath@delimif}. % \pdef\rmopname##1##2##3{% \mathop {##1\kern \z@ \mathrm{##3}}\csname n##2limits@\endcsname }% % \DeclareCommand\gmu@dogmathbase{oC{\NoValue}}{% \Restore@Macro\mathchar@type% % \gmuIfValueT{##1}{\mathversion{##1}}% % \edef\gmath@version{\gmuPutIfValue{##1}}% % \@xa\let\@xa\gmath@fam\csname symgmathroman% \endcsname \edef\gmath@famm{symgmathRoman\gmath@version}% as you see, this is % not a~font family (number) but a~macro containing the name: of % the secondary (‘rescue’) family. % \typeout{@@@ gmutils.sty: taking some math chars from the font^^J \gmu@fontstring@}% \gmath@do+\mathbin \gmath@doif{2212}-\mathbin[2013](\gmath@famm)% minus sign if present or else en dash \gmath@do=\mathrel \gmath@do0\mathord \gmath@do1\mathord \gmath@do2\mathord \gmath@do3\mathord \gmath@do4\mathord \gmath@do5\mathord \gmath@do6\mathord \gmath@do7\mathord \gmath@do8\mathord \gmath@do9\mathord %% \gmath@doif{2264}\le\mathrel(\gmath@famm)% \let\leq\le \let\leeng\le \gmath@doif{2265}\ge\mathrel(\gmath@famm)% \let\geq\ge \let\geeng\ge \gmath@doif{2A7D}\xleq\mathrel(\gmath@famm)% \gmath@doif{2A7E}\xgeq\mathrel(\gmath@famm)% \@ifpackageloaded{polski}{% \ifdefined\xleq \gmu@storeifnotyet\leq \let\leq=\xleq \let\le=\leq \fi \ifdefined\xgeq \gmu@storeifnotyet\geq \let\geq=\xgeq \let\ge=\geq \fi}{}% % \gmath@do.\mathpunct \gmath@do,\mathpunct \gmath@do;\mathpunct \gmath@do…\mathpunct \gmath@do(\mathopen \gmath@do)\mathclose \gmath@do[\mathopen \gmath@do]\mathclose % \gmath@doif{00D7}×\mathbin (\gmath@famm)% \gmath@do:\mathrel \gmath@doif{00B7}·\mathbin(\gmath@famm)% \gmath@doif{22C6}*\mathbin(\gmath@famm)% % low star \gmath@doif{2300}\varnothing\mathord(\gmath@famm)% \gmath@doif{221E}\infty\mathord(\gmath@famm)% \gmath@doif{2248}\approx\mathrel(\gmath@famm)% \gmath@doif{2260}\neq\mathrel(\gmath@famm)% \let\ne\neq \gmath@doif{00AC}\neg\mathbin(\gmath@famm)% \gmath@doif{00AC}\nego\mathord(\gmath@famm)% \gmath@do/\mathop \gmath@do<\mathrel \gmath@do>\mathrel \gmath@doif{2329}\langle\mathopen(\gmath@famm)% \gmath@doif{232A}\rangle\mathclose(\gmath@famm)% \gmath@doif{2202}\partial\mathord(\gmath@famm)% \gmath@doif{00B1}\pm\mathbin(\gmath@famm)% \gmath@doif{007E}\sim\mathrel(\gmath@famm)% \gmath@doif{2190}\leftarrow\mathrel(\gmath@famm)% \gmath@doif{2192}\rightarrow\mathrel(\gmath@famm)% \gmath@doif{2194}\leftrightarrow\mathrel(\gmath@famm)%% if not present, % \incs{gmathfurther} will take care % of it if left and right arrows are present. \gmath@doif{2191}\uparrow\mathrel(\gmath@famm)%% it should be a~delimiter % (declared with \incs{gmath@delimif}) % but in a~non-math % font the delimiters don't work (2008/11/19) and I~don't think % I'll ever need up- and down- arrows as delimiters. \gmath@doif{2193}\downarrow\mathrel(\gmath@famm)% % \gmath@doif{2208}\in\mathrel[03F5][0454](\gmath@famm)%% % As a~fan of modal logics I~allow redefinition of \incs{lozenge} % and \incs{square} iff both are in the font. I~don't accept % the ‘ballot box’ U+2610. \if\iffontchar\gmath@font"25CA 0\else 1\fi \iffontchar\gmath@font"25FB 0\else\iffontchar\gmath@font"25A1 0\else 2\fi\fi \gmath@do\lozenge[25CA]\mathord \gmath@doif{25FB}\square\mathord[25A1](\gmath@famm)%% ‘medium white square (modal % operator)’ of just ‘white square’. \fi \gmath@doif{EB08}\bigcircle\mathbin(\gmath@famm)% \gmath@doif{2227}\wedge\mathbin(\gmath@famm)% \gmath@doif{2228}\vee\mathbin(\gmath@famm)% % \gmath@doif{0393}\Gamma\mathalpha(\gmath@famm)% \gmath@doif{0394}\Delta\mathalpha(\gmath@famm)% \gmath@doif{0398}\Theta\mathalpha(\gmath@famm)% \gmath@doif{039B}\Lambda\mathalpha(\gmath@famm)% \gmath@doif{039E}\Xi\mathalpha(\gmath@famm)% \gmath@doif{03A3}\Sigma\mathalpha(\gmath@famm)% \gmath@doif{03A5}\Upsilon\mathalpha(\gmath@famm)% \gmath@doif{03А6}\Phi\mathalpha(\gmath@famm)% \gmath@doif{03A8}\Psi\mathalpha(\gmath@famm)% \gmath@doif{03A9}\Omega\mathalpha(\gmath@famm)% % \@xa\let\@xa\gmath@fam\csname symletters\gmath@version% \endcsname \edef\gmath@famm{symgmathItalic\gmath@version}% % \gmath@doif{03B1}\alpha\mathalpha(\gmath@famm)% \gmath@doif{03B2}\beta\mathalpha(\gmath@famm)% \gmath@doif{03B3}\gamma\mathalpha(\gmath@famm)% \gmath@doif{03B4}\delta\mathalpha(\gmath@famm)% \gmath@doif{03F5}\epsilon\mathalpha(\gmath@famm)% \gmath@doif{03B5}\varepsilon\mathalpha(\gmath@famm)% \gmath@doif{03B6}\zeta\mathalpha(\gmath@famm)% \gmath@doif{03B7}\eta\mathalpha(\gmath@famm)% \gmath@doif{03B8}\theta\mathalpha(\gmath@famm)% \gmath@doif{03D1}\vartheta\mathalpha(\gmath@famm)% \gmath@doif{03B9}\iota\mathalpha(\gmath@famm)% \gmath@doif{03BA}\kappa\mathalpha(\gmath@famm)% \gmath@doif{03BB}\lambda\mathalpha(\gmath@famm)% \gmath@doif{03BC}\mu\mathalpha(\gmath@famm)% \gmath@doif{03BD}\nu\mathalpha(\gmath@famm)% \gmath@doif{03BE}\xi\mathalpha(\gmath@famm)% \gmath@doif{03C0}\pi\mathalpha(\gmath@famm)% \gmath@doif{03A0}\Pi\mathalpha(\gmath@famm)% \gmath@doif{03C1}\rho\mathalpha(\gmath@famm)% \gmath@doif{03C3}\sigma\mathalpha(\gmath@famm)% \gmath@doif{03DA}\varsigma\mathalpha(\gmath@famm)%% 03C2? \gmath@doif{03C4}\tau\mathalpha(\gmath@famm)% \gmath@doif{03C5}\upsilon\mathalpha(\gmath@famm)% \gmath@doif{03D5}\phi\mathalpha(\gmath@famm)% \gmath@doif{03C7}\chi\mathalpha(\gmath@famm)% \gmath@doif{03C8}\psi\mathalpha(\gmath@famm)% \gmath@doif{03C9}\omega\mathalpha(\gmath@famm)% % \if 1 1% \iffontchar\gmath@font"221A \fontdimen61\gmath@font=1pt \edef\sqrtsign{% \XeTeXradical \@xa\gmu@stripchar\meaning\symgmathroman\space "221A\relax}% \fi \fi% of if 1 1. \def\max{\rmopname \relax m{max}}% \def\min{\rmopname \relax m{min}}% \def\lim{\rmopname \relax m{lim}}% \def\sin{\rmopname \relax o{sin}}% \def\cos{\rmopname \relax o{cos}}% \def\tg{\rmopname \relax o{tg}}% \def\ctg{\rmopname \relax o{ctg}}% \def\tan{\rmopname \relax o{tan}}% \def\ctan{\rmopname \relax o{ctan}}% }% of |\gmu@dogmathbase| \AtBeginDocument{\gmu@dogmathbase[#1](#2)% \let\gmathbase\gmu@dogmathbase }% of atbd \not@onlypreamble\gmathbase }% of \cs{gmathbase} \@onlypreamble\gmathbase \pdef\gmathfurther{% \HideDef % \changes{v0.94}{2008/10/4}{removed definition of % \cs{}\s and \cs{}\s} % \changes{v0.96}{2008/11/7}{Greek letters completed. Wrapped with % \cs{addtotoks} to allow using in any order with \cs{garamath} % and others} % \def\do##1##2##3{\gmu@storeifnotyet##1% \def##1{% \mathop{\mathchoice{\hbox{% \rm \edef\gma@tempa{\the\fontdimen8\font}% \larger[3]% \lower\dimexpr(\fontdimen8\font-\gma@tempa)/2 % \hbox{##2}}}{\hbox{% \rm \edef\gma@tempa{\the\fontdimen8\font}% \larger[2]% \lower\dimexpr(\fontdimen8\font-\gma@tempa)/2 % \hbox{##2}}}% {\mathrm{##2}}{\mathrm{##2}}}##3}}% \iffontchar\gmath@font"2211 \do\sum{\char"2211}{}\fi% \do\forall{\gma@quantifierhook \rotatebox[origin=c]{180}{A}% \gmu@forallkerning }{\nolimits}% \def\gmu@forallkerning{\setbox0=\hbox{A}\setbox2=\hbox{\scriptsize x}% \kern\dimexpr\ht2/3*2 -\wd0/2\relax}% to be able to redefine it % when the big quantifier is Bauhaus-like. \do\exists{\rotatebox[origin=c]{180}{\gma@quantifierhook E}}\nolimits% % \def\do##1##2##3{\gmu@storeifnotyet##1% \def##1{##3{% \mathchoice{\hbox{\rm##2}}{\hbox{\rm##2}}% {\hbox{\rm\scriptsize##2}}{\hbox{\rm\tiny##2}}}}}% % \unless\iffontchar\gmath@font"2227 \do\vee{\rotatebox[origin=c]{90}{<}}\mathbin% \fi \unless\iffontchar\gmath@font"2228 \do\wedge{\rotatebox[origin=c]{-90}{<}}\mathbin \fi % \unless\iffontchar\gmath@font"2194 \if\iffontchar\gmath@font"2190 0\else1\fi \iffontchar\gmath@font"2192 0\else2\fi \do\leftrightarrow{\char"2190\kern-0,1em \char"2192}\mathrel \fi\fi % \def\do##1##2##3{\gmu@storeifnotyet##1% \def##1####1{##2{\hbox{% \rm \setbox0=\hbox{####1}% \edef\gma@tempa{\the\ht0}% \edef\gma@tempb{\the\dp0}% ##3% \setbox0=\hbox{####1}% \lower\dimexpr(\ht0 + \dp0)/2-\dp0 -((\gma@tempa+\gma@tempb)/2-\gma@tempb) % \box0}}}}% \do\bigl\mathopen\larger \do\bigr\mathclose\larger \do\Bigl\mathopen\largerr \do\Bigr\mathclose\largerr \do\biggl\mathopen{\larger[3]}% \do\biggr\mathclose{\larger[3]}% \do\Biggl\mathopen{\larger[4]}% \do\Biggr\mathclose{\larger[4]}% % % \addtotoks\everymath{% \changes{v0.96}{2008/11/20}{the % \cs{everymath}'s left brace moved here: % earlier all the stuff was put into \cs{everymath}} \def\do##1##2{\gmu@storeifnotyet##1% \def##1{\ifmmode##2{\mathchoice {\hbox{\rm\char`##1}}{\hbox{\rm\char`##1}}% {\hbox{\rm\scriptsize\char`##1}}{\hbox{\rm\tiny\char`##1}}}% \else\char`##1\fi}}% \do\{\mathopen \do\}\mathclose % \def\={\mathbin{=}}% \def\neqb{\mathbin{\neq}}% \let\neb\neqb \def\do##1{\gmu@storeifnotyet##1% \edef\gma@tempa{% \def\@xanxcs{\@xa\gobble\string##1r}{% \@nx\mathrel{\@nx##1}}}% \gma@tempa}% \do\vee \do\wedge \do\neg \def\fakern{\mkern-3mu}% \thickmuskip=8mu plus 4mu\relax % \gma@gmathhook }% of |\everymath|. \everydisplay\everymath \ifdefined\Url \ampulexdef\Url{\let\do}\@makeother {\everymath{}\let\do\@makeother}% I~don't know why but the % \pk{url} package's \incs{url} typesets the argument inside % a~math which caused digits not to be typewriter but Roman and % lowercase. \fi% of |\ifdefined\Url|. }% of |\def\gmathfurther|. \ResumeDef \Store@Macro\mathchar@type \DeclareCommand\gmath{oC{\NoValue}}{% \gmathbase[#1](#2)% \gmathfurther \gmuIfValueT{#1}{\csname gmathhook#1\endcsname}% this allows adding % version-specific stuff (I~first used this for Fell fonts rescued % with Garamond Premier) } \pdef\gmathscripts{% \changes{v0.96}{2008/11/11}{added} \addtotoks\everymath{\catcode`\^=7\relax \catcode`\_=8\relax }% \everydisplay\everymath} \pdef\gmathcats{% \addtotoks\everymath{\gmu@septify}% \everydisplay\everymath} \emptify\gma@quantifierhook \def\quantifierhook#1{% \def\gma@quantifierhook{#1}} \emptify\gma@gmathhook \def\gmathhook#1{\addtomacro\gma@gmathhook{#1}} \def\gma@dollar$#1${{\gmath$#1$}}% \def\gma@bare#1{\gma@dollar$#1$}% \def\gma@checkbracket{\@ifnextchar\[%^^A\] \gma@bracket\gma@bare} \def\gma@bracket\[#1\]{{\gmath\[#1\]}\@ifnextchar\par{}{\noindent}} \def\gma{\@ifnextchar$%^^A $ \gma@dollar\gma@checkbracket} %^^B trial composition \def\bgcolor{\color{white}} \DeclareCommand\garamath{% O{\rm}% the font command }{% % Before 2009/10/19 all the stuff was added to |\everymath| which % didn't work. \quantifierhook{\addfontfeature{OpticalSize=800}}% % \def\gma@arrowdash{{% \setbox0=\hbox{\char"2192}\copy0\kern-0,6\wd0 \bgcolor\rule[-\dp0]{0,6\wd0}{\dimexpr1,07\ht0+\dp0}\kern-0,6\wd0}}% % \def\gma@gmathhook{% \def\do####1####2####3{\gmu@storeifnotyet####1% \def####1{####3{% \mathchoice{\hbox{#1####2}}{\hbox{#1####2}}% {\hbox{#1\scriptsize####2}}{\hbox{#1\tiny####2}}}}}% \do\mapsto{\rule[0,4ex]{0,1ex}{0,4ex}\kern-0,05em% \gma@arrowdash\kern-0,05em\char"2192}\mathrel \do\cup{\scshape u}\mathbin \do\varnothing{\setbox0=\hbox{\gma@quantifierhook\addfontfeature{Scale=1.272727}0}% \setbox2=\hbox{\char"2044}% \copy0 \kern-0,5\wd0 \kern-0,5\wd2 \lower0,125\wd0 \copy2 \kern0,5\wd0\kern-0,5\wd2}{}% of |\varnothing| \do\leftarrow{\char"2190\kern-0,05em\gma@arrowdash}\mathrel \do\shortleftarrow{\char"2190}\mathrel \do\rightarrow{\gma@arrowdash\kern-0,05em\char"2192}\mathrel \do\shortrightarrow{\char"2192\relax}\mathrel \do\in{\gma@quantifierhook\char"0454}\mathbin \do\prec{\gma@quantifierhook \rotatebox[origin=c]{-90}{% \glyphname{u03A5.a}}}\mathrel % added 2009/9/11 }% of |\gma@gmathhook| }% of |\garamath|. \def\gmu@tempa{\kern-0,08em\penalty10000\hskip0sp\relax s\penalty10000\hskip0sp\relax} \protected\edef\Vs{V\gmu@tempa} \protected\edef\Ws{W\gmu@tempa} \pdef\Wz{W\kern-0,05em\penalty10000\hskip0sp\relax z} \pdef\leftslanting@{% \def\litdimen{\strip@pt\fontdimen1\font ex}% \def\litcorrection{% \ifhmode\null\nobreak\hskip\litdimen\relax\fi}% \def\litkern{% note it's to be used inside the left slanted font, % unlike \incmd\litcorrection, intended to be used \emph{before} % switching to left slant/italic. \leavevmode\null \kern-\litdimen\relax}% \def\dilitkern{\kern\litdimen\litkern}% % \stanza \pdef\litshape{% \changes{v0.93}{2008/08/22}{copied here from % E.~Szarzyński's \ty{The Letters}} \litcorrection \itshape \@tempdima=-2\fontdimen1\font \advance\leftskip by\strip@pt\fontdimen1\font ex % to assure at % least the lowercase letters not to overshoot to the (left) % margin. Note this has any effect only if there is a~\incs{par} in % the scope. \litcorrection \edef\gmu@tempa{% \@nx\addfontfeature{FakeSlant=\strip@pt\@tempdima}}%^^B % \ilrr when not \incs{edef}ed, it caused an error, which is % perfectly understandable. \gmu@tempa}% % % \pdef\textlit##1{% \changes{v0.93}{2008/08/22}{added} {\litshape##1}}% % \pdef\lit{\rm\litshape}% % % \pdef\lsl{{% \litcorrection \it % \changes{v0.93}{2008/08/22}{copied here from E.~Szarzyński's \ty{The % Letters}} \@tempdima=-\fontdimen1\font \litcorrection \xdef\gmu@tempa{% \@nx\addfontfeature{RawFeature={slant=\strip@pt\@tempdima}}}}% \rm % Note in this declaration we left-slant the basic Roman font % not the itshape of the current family. \gmu@tempa}% % % Now we can redefine \cs{em} and \cs{emph} to use left Italic for % nested emphasis. In Polish typesetting there is bold in nested % emphasis as I~have heard but we don't like bold since it perturbs % homogeneous greyness of a~page. So we introduce a~three-cycle % instead of two-: Italic, left Italic, upright. % \pdef\em{%\changes{v0.93}{2008/08/22}{added} \ifdim\fontdimen1\font=\z@ \itshape \else \ifdim\fontdimen1\font>\z@ \litshape \else \upshape \fi \fi}% % % \pdef\emph##1{% \changes{v0.93}{2008/08/22}{added} {\em##1}}% }% of \cs{leftslanting@}. \pdef\leftslanting{\AtBeginDocument\leftslanting@} \AtBeginDocument{\let\leftslanting\leftslanting@} \def\romorzero#1{% \ifnum#1=0 zero\else\romannumeral#1 \fi} \DeclareCommand\fakeonum{% o % fake bold for the digit »2« (for which emboldening improves % look), >Pm % the text to fake old-style numbers in. }{%\ % I~tried to use this command as a~declaration but active digits are % very uncomfortable, e.g.\ you can't define macros with arguments. % \chgs{2008/12/04 v0.98 added} \gmu@if@onum{#2}{% \begingroup \edef\gmu@tempa{#2}% \makeatletter% \gmuIfValueT{#1}{% \prependtomacro\fake@onum@ii{% \begingroup\addfontfeature{FakeBold=#1}}% \addtomacro\fake@onum@ii\endgroup }% \endlinechar\m@ne % to suppress the line end added by % |\scantokens|, especially in active |^^M|'s scopes. \gmu@dofakeonum \@xa\scantokens\@xa{\gmu@tempa}% \endgroup }% of |\gmu@ifonum| ‘else’. }% of |\fakeonum|. \def\gmu@dofakeonum{% \def\do##1{% \catcode`##1\active \scantokens{% \@xa\let\@xa##1% \csname fake@onum@\@xa\romorzero\string##1\endcsname\empty}}% \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9% } \def\do#1#2{% \@namedef{fake@onum@\romorzero#1}{#2}} \def\gmu@tempa#1{% \do#1{\leavevmode \gmu@calculateslant{#1}% uses \incs{gmu@tempa} and % \incs{gmu@tempb}, therefore goes first. And defines \incs{gmu@tempd}. \gmu@measurewd{#1}% the width of char |#1| is in \incs{gmu@tempa} % without kerning and in \incs{gmu@tempb} with kerning. % \edef\gmu@tempc{\the\fontcharht\font`#1}% \hbox to \gmu@tempb {% \hss\resizebox{\gmu@tempa}% {\dimexpr\fontdimen5\font+\gmu@tempc-\fontdimen8\font}% {\gmu@tempd#1}\hss}}} \gmu@tempa0 % |\fake@onum@zero| \gmu@tempa1 % |\fake@onum@i| \gmu@tempa2 % |\fake@onum@ii| \def\gmu@tempa#1{% \do#1{\leavevmode \gmu@measurewd{#1}% \lower \dimexpr\fontdimen8\font-\fontdimen5\font\relax \hbox to \gmu@tempb {\hss#1\hss}}% } \gmu@tempa3 % |\fake@onum@iii| \gmu@tempa4 % |\fake@onum@iv| \gmu@tempa5 % |\fake@onum@v| \gmu@tempa7 % |\fake@onum@vii| \gmu@tempa9 % |\fake@onum@ix| \def\gmu@tempa#1{% to preserve pseudo-kerning in digits sequences. \do#1{\leavevmode \gmu@measurewd#1% \hbox to \gmu@tempb {\hss#1\hss}}} \gmu@tempa6 % |\fake@onum@vi| \gmu@tempa8 % |\fake@onum@viii| \protected\def\gmu@if@onum{% \edef\gmu@tempa{\@xa\meaning\the\font}% \@xa\@ifinmeaning\detokenize{+onum}\of\gmu@tempa } \pdef\gmu@getslant{% we define |\gmu@tempa| to the (fake) slant of current font. \edef\gmu@tempa{\@xa\meaning\the\font\detokenize{slant=0,}}% \edef\gmu@tempb{% \def\@nx\gmu@tempb####1% \detokenize{slant=}% ####2,####3}% \gmu@tempb\@nil{##2}% \edef\gmu@tempa{\@xa\gmu@tempb\gmu@tempa\@nil pt}% } \def\gmu@calculateslant#1{% \gmu@getslant \edef\gmu@tempa{\the\numexpr\dimexpr\fontdimen1\font + \gmu@tempa}%\ % \incs{gmu@tempa} bears the number of scaled points of total slant % (\inverb|\fontdimen1\font|${}+$\inverb|slant=…| if present) per 1pt % of \inhash1.\ilrr \edef\gmu@tempa{\the\numexpr \gmu@tempa * \numexpr\fontdimen5\font\relax/\numexpr\fontcharht\font`#1 \relax}%\ % we scale the total slant of \inverb|#1| by the ratio of original % and scaled height of \inverb|#1|. \edef\gmu@tempd{% \the\dimexpr \gmu@tempa sp - \fontdimen1\font}%\ % and we subtract slant-fontdimen from the scaled total slant. \ifdim\gmu@tempd=\z@ \emptify\gmu@tempd \else\edef\gmu@tempd{% \@nx\addfontfeature{FakeSlant=\strip@pt\dimexpr\gmu@tempd}}% \fi} \DeclareCommand\gmu@cepstnof{O{\gmu@tempa}% a~cs to be |\xdef|ed the % font specification, s% not used really, m% |\fontspec| token or name of feature font (\inverb|Italic|, \inverb|Bold|, % \inverb|SmallCaps|, \inverb|BoldItalic| ), O{, Scale=MatchLowercase}% \pk{fontspec} font features (key=val) } {% |\gmu@cepstnof|'s body \def\gmu@cepstnof@resc##1:##2:\@nil{% \ifx:##2:\else RawFeature={\gmu@maybestripcomma##2,,\@nil} \fi}% % \stanza \def\gmu@cepstnof@resd##1/##2/\@nil{% to check whether font name % contains |/| (which may not be true!) \ifx&##2&\@xa\@firstoftwo\else\@xa\@secondoftwo\fi}% % \stanza \def\gmu@cepstnof@rese##1:##2:\@nil{% to check whether the font name % contains |:| when it doesn't contain |/|. \ifx&##2&\@xa\@firstoftwo\else\@xa\@secondoftwo\fi}% % \stanza \edef\gmu@cepstnof@resa{% % now, reserved B parses the font name and features. It uses an % auxiliary reserved C because after |/| may be or may not be % features specification. \@xa\@xa\@xa\gmu@cepstnof@resd\@xa\meaning\the\font//\@nil {% font name doesn't contain a~slash \@xa\@xa\@xa\gmu@cepstnof@rese\@xa\meaning\the\font::\@nil {% nor does it contain a~colon \def\@nx\gmu@cepstnof@resb\detokenize{select font "}####1\detokenize{"}####2\@nx\@nil{% \ifx\fontspec#3% \@nx\@nx\@nx\fontspec[\@gobble#4\@empty]{####1}% gobble a~comma \else #3Font={####1}, #3Features={\@gobble #4\@empty}% \fi }% }% {% no slash but there is a~colon \def\@nx\gmu@cepstnof@resb\detokenize{select font "}####1:####2\detokenize{"}####3\@nx\@nil{% \ifx\fontspec#3% \@nx\@nx\@nx\fontspec[\@nx\gmu@cepstnof@resc####2::\@nx\@nil#4]{####1}% \else #3Font={####1}, #3Features={\@nx\gmu@cepstnof@resc####2::\@nx\@nil#4}% \fi }% }% }% of ‘no slash’ case {% font name contains a~slash \def\@nx\gmu@cepstnof@resb\detokenize{select font "}####1/####2\detokenize{"}####3\@nx\@nil{% \ifx\fontspec#3% \@nx\@nx\@nx\fontspec[\@nx\gmu@cepstnof@resc####2::\@nx\@nil#4]{####1}% \else #3Font={####1}, #3Features={\@nx\gmu@cepstnof@resc####2::\@nx\@nil#4}% \fi }% of |\gmu@cepstnof@resb| }% of ‘slash present’ case }\gmu@cepstnof@resa \xdef#1{\@xa\@xa\@xa\gmu@cepstnof@resb\@xa\meaning\the\font\@nil}% }% \def\gmu@stripcomma#1,{#1} \def\gmu@maybestripcomma#1,,#2\@nil{#1} \pdef\gmu@setbasefont{\@xa\let\@xa\gmu@basefont\the\font} \let\setbasefont\gmu@setbasefont \DeclareCommand\gmu@calc@scale{% O{1}% a~factor, m% number of the fontdimen } {\begingroup % We ‘descale’ the current font:\nostanza \gmu@cepstnof\fontspec[, Scale=1]\gmu@tempa \@xa\let\@xa\gmu@currfont@descaled\the\font \gmu@basefont \gmu@cepstnof\fontspec[, Scale=1]\gmu@tempa % \nostanza now also the base font is descaled. \xdef\gmu@fontscale{% \strip@pt \dimexpr 1pt * \numexpr\dimexpr#1\fontdimen#2\font\relax\relax / \numexpr\fontdimen#2\gmu@currfont@descaled\relax \relax}% \endgroup} \def\gmu@tilde{% \leavevmode\lower.8ex\hbox{$\,\widetilde{\mbox{ }}\,$}} \AtBeginDocument{% to bypass redefinition of |\~| as a~text command % with various encodings \pdef\texttilde{% % \changes{v0.83}{2007/08/22}{postponed to % \cs{begin\{document\}} to avoid overwriting by a~text command % and % made sensible to a~subsequent % /} % \changes{v0.86}{2007/12/11}{renamed from \cmd\~ % since the latter is one of \LaTeX's\ accents} \@ifnextchar/{\gmu@tilde\kern-0,1667em\relax}\gmu@tilde}} \foone{\catcode`\^^M\active}% the comment signs here are crucial. {\def\defobeylines{\catcode`\^^M=13 \def^^M{\par}}} \def\deksmallskip{\vskip\smallskipamount} \def\undeksmallskip{\vskip-\smallskipamount} \def\dekmedbigskip{\vskip\glueexpr \medskipamount+\smallskipamount} \def\dekmedskip{\vskip\medskipamount} \def\dekbigskip{\vskip\bigskipamount} \def\hfillneg{\hskip 0pt plus -1fill\relax} \newcommand*{\TODO}[1][]{{% \sffamily\bfseries\huge TO-DO!\if\relax#1\relax\else\space\fi#1}} \newcommand*\twocoltoc{% \RequirePackage{multicol}% \def\@starttoc##1{% \begin{multicols}{2}\makeatletter \NamedInput % changed from |\@input| 2010/8/13. {\jobname .##1}% \if@filesw \@xa \newwrite \csname tf@##1\endcsname \immediate \openout \csname tf@##1\endcsname \jobname .##1\relax \fi \@nobreakfalse\end{multicols}% }% of |\starttoc| } \@onlypreamble\twocoltoc \pdef\equals{\hunskip${}={}$\ignorespaces} \pdef\eequals{\hunskip${}=={}$\ignorespaces} \pdef\·{\hunskip${}·{}$\ignorespaces} \def\freeze@actives{% \count\z@\z@ % \@whilenum\count\z@<\@cclvi\do{% \ifnum\catcode\count\z@=\active \uccode`\~=\count\z@ \uppercase{\let~\relax}% \fi \advance\count\z@\@ne}} \newcommand*\ShowFont[1][6]{% \begin{multicols}{#1}[The current font (the \f@encoding\ encoding):] \parindent\z@ \count\z@\m@ne \@whilenum\count\z@<\@cclv\do{ \advance\count\z@\@ne \ \the\count\z@:~\char\count\z@\par} \end{multicols}} \newcommand*\liturgiques[1][red]{% Requires the \pk{color} package. \gmu@RPfor{xcolor}\color% \newcommand*\czerwo{\small\color{#1}}% environment \newcommand{\czer}[1]{\leavevmode{\czerwo##1}}% we leave % vmode because if we don't, then \env{verse}'s |\everypar| would be % executed in a~group and thus its effect lost. \Store@Macro\*% \def\*{\czer{\storedcsname{*}}}% \def\+{\czer{†}}% \newcommand*\nieczer[1]{\textcolor{black}{##1}}% } \newcommand*\gmu@RPfor[3][]{% \changes{v0.93}{2008/08/30}{renamed from % \cs{gmu@RPif} and \#3 changed from a~csname to \CS} \ifx\relax#1\relax\emptify\gmu@resa \else \def\gmu@resa{[#1]}% \fi \@xa\RequirePackage\gmu@resa{#2}} \AtBeginDocument{% \renewcommand*\gmu@RPfor[3][]{% \unless\ifdefined#3% \@ifpackageloaded{#2}{}{% \typeout{^^J! Package `#2' not loaded!!! (\on@line)^^J}}% \fi}} \pprovide\continuum{% \gmu@RPfor{eufrak}\mathfrak\ensuremath{\mathfrak{c}}} \def\iteracro{% \pdef\acro##1{% \begingroup \acropresetting \gmu@acrospaces##1 \gmu@acrospaces \endgroup }% } \emptify\acropresetting \iteracro \def\gmu@acrospaces#1 #2\gmu@acrospaces{% \gmu@acroiter#1\gmu@acroiter \ifx\relax#2\relax\else \space \afterfi{\gmu@acrospaces#2\gmu@acrospaces}% when |#2| is nonempty, % it is ended with a~space. Adding one % more space in this line resulted in % an infinite loop, of course. \fi } \def\gmu@acroiter#1{% \gmu@notif {x\@xa\@xa} {\@firstofmany#1\@undefined\@nil \gmu@acroiter} {\gmu@acrokernel{#1}% % and iterate \gmu@acroiter }% of if sentinel or not {}% } \def\gmu@acrokernel #1{% \gmu@if {cat} {a\@xanx\@firstofmany#1\@undefined\@nil}% {\gmu@if {num} {`#1=\uccode`#1\space }% a space to delimit numer % (without it further macros were % expanded which in this case are % |\expandafter\@firstoftwo\else\@secondoftwo| and this made the test didn't work.) {{\acrocore{#1}}}% {{#1}}% tu było |\smallerr| }% {#1}% } \pdef\acrocore{\smaller % was: |\scshape\lowercase| } \def\IMHO{\acro{IMHO}\spifletter} \def\AKA{\acro{AKA}\spifletter} \pdef\usc#1{{\addfontfeature{Letters=UppercaseSmallCaps}#1}} \def\uscacro{\let\acrocore\usc} \def\gmu@dekfraccsimple#1/#2{\leavevmode\kern.1em \raise.7ex\hbox{%^^A \udigits \gmu@fracfontsetup#1}\gmu@numeratorkern \dekfraccslash\gmu@denominatorkern {%^^A\udigits \gmu@fracfontsetup#2}% \if@gmu@mmhbox\egroup\fi} \def\gmu@fracfontsetup{% \smaller[3]\addfontfeature{FakeBold=1}} \def\dekfraccsimple{% \label{2292} \let\dekfracc@args\gmu@dekfraccsimple } \@ifXeTeX{\def\dekfraccslash{\char"2044 }} {\def\dekfraccslash{/}} % You can define it as the fraction slash, \dekfraccsimple \newcommand*\ikern{\,\penalty\@M\hskip\z@skip\relax} \def\gmu@scapLetters#1{% \ifx#1\relax\relax\else% two |\relax|es to cover the case of empty |#1|. \ifcat a\@nx#1\relax \ifnum\the\lccode`#1=`#1\relax {\fakescapscore\MakeUppercase{#1}}% not Plain |\uppercase| % because that works bad with \pk{inputenc}. \else#1% \fi \else#1% \fi% \@xa\gmu@scapLetters \fi}% \def\gmu@scapSpaces#1 #2\@nil{% \ifx#1\relax\relax \else\gmu@scapLetters#1\relax \fi \ifx#2\relax\relax \else\afterfi{\ \gmu@scapSpaces#2\@nil}% \fi} \def\gmu@scapss#1\@nil{{\def~{{\nobreakspace}}% \gmu@scapSpaces#1 \@nil}}%|% \def\\{{\newline}}\relax| \pdef\fakescaps#1{{\gmu@scapss#1\@nil}} \let\fakescapscore\gmu@scalematchX \def\tinycae{{\tiny\AE}}% to use in |\fakescaps[\tiny]{…}| \RequirePackage{calc} \@ifpackageloaded{fontspec}{% \def\gmu@scalar{1.0}% \def\zf@scale{}% \def\gmu@scalematchX{% \begingroup \ifx\zf@scale\empty\def\gmu@scalar{1.0}% \else\let\gmu@scalar\zf@scale\fi \setlength\@tempdima{\fontdimen5\font}% 5---ex height \setlength\@tempdimb{\fontdimen8\font}% 8---\XeTeX\ synthesised % uppercase height. \divide\@tempdimb by1000\relax \divide\@tempdima by\@tempdimb \setlength{\@tempdima}{\@tempdima*\real{\gmu@scalar}}% \gmu@ifundefined{fakesc@extrascale}{}{% \setlength{\@tempdima}{\@tempdima*\real{\fakesc@extrascale}}}% \@tempcnta=\@tempdima \divide\@tempcnta by 1000\relax \@tempcntb=-1000\relax \multiply\@tempcntb by\@tempcnta \advance\@tempcntb by\@tempdima \xdef\gmu@scscale{\the\@tempcnta.% \ifnum\@tempcntb<100 0\fi \ifnum\@tempcntb<10 0\fi \the\@tempcntb}%^^A{\strip@pt\@tempdimc}% \endgroup \addfontfeature{Scale=\gmu@scscale}% }}{\let\gmu@scalematchX\smallerr} \def\fakescextrascale#1{\def\fakesc@extrascale{#1}} \newcommand*\wyzejnizej[1]{% \edef\gmu@tempa{\gmu@ifundefined{r@#1}{\arabic{page}}{% \@xa\@xa\@xa\@secondoftwo\csname r@#1\endcsname}}% \ifnum\gmu@tempa<\arabic{page}\relax wy\.zej\fi \ifnum\gmu@tempa>\arabic{page}\relax ni\.zej\fi \ifnum\gmu@tempa=\arabic{page}\relax \@xa\ignorespaces\fi } \def\napapierkistretch{0,3pt}% It's quite much for 11/13pt leading. \def\napapierkicore{\advance\baselineskip% by 0ptplus\napapierkistretch\relax} \DeclareEnvironment{napapierki}{s}{% % \chgs{2009/01/05 v0.98 added optional star controlling globalness} \par\gmuIfValueT{#1}{\global}% % \napapierkicore} {% \par \gmuIfValueT{#1}{\global\baselineskip=1\baselineskip\relax }% }% so that you can use \inverb|\napapierki*›…\endnapapierki*| \newcount\gmu@luzniej \newcommand*\luzniejcore[1][1]{% \advance\gmu@luzniej\@ne% We use this count to check whether we open % the environment or just set |\looseness| inside it again. \ifnum\gmu@luzniej=\@ne \multiply\tolerance by 2 \fi \looseness=#1\relax} \newenvironment*{luzniej}{\par\luzniejcore}{\par} \newenvironment*{luzniej*}[1][1]{% \multiply\tolerance by 2\relax \everypar{\looseness=#1\relax}}{\par} \newcommand*\nawj{\kern0,1em\relax}% a~kern to be put between \def\pauza@skipcore{\hskip0.2em plus0.1em\relax \pauzacore \@ifnextanyIS {,;:}% {% 2009/11/22 added a special case of a comma following pauza, % 2011/02/22, 13.33 extended to colon and semicolon (well, the % latter should not happen in such a position but a colon did (in % Polish)). }{\hskip.2em plus0.1em\relax\ignorespaces}}% \def\ppauza@skipcore{\unskip\penalty10000\hskip0.2em plus0.1em\relax \ppauza@dash\hskip.2em plus0.1em\ignorespaces} \AtBeginDocument{% \pdef\pauza{% \ifhmode \unskip\penalty10000 \hskip0.2em plus0.1em\relax \pauzacore\hskip.2em plus0.1em\relax\ignorespaces% \else \pauzadial \fi }% % % According to \tytul{Instrukcja technologiczna.\ Skład ręczny ^^B % i~maszynowy} the dialogue dash (in Polish) should be followed by % a~rigid hskip of \dekfracc1/2\,em. \pdef\pauzadial{% \ifhmode\unskip\quad\else\leavevmode\fi \pauzacore\penalty10000\hskip0,5em\ignorespaces } % % And a~version with no space at the left, to begin a~|\noindent|ed % paragraph explaining e.g.\ a~quotation: \pdef\lpauza{% \leavevmode \pauzacore\hskip.2em plus0.1em\ignorespaces}% % % We define |\ppauza| as an en dash surrounded with thin stretchable % spaces and sticking to the upper line or bare but discretionary % depending on the next token being space${}_10$. Of course you'll % never get such a~space after a~literal \CS so an explicit |\ppauza| % will always result with a~bare discretionary en dash, but if we % |\let–\ppauza|… % \stanza \pdef\ppauza{% \ifvmode \PackageError{gmutils}{% command \bslash ppauza (en dash) not intended for vmode.}{% Use \bslash ppauza (en dash) only in number and numeral ranges.}% \else \unskip\discretionary {\ppauza@dash}{\ppauza@dash}{\ppauza@dash}% \fi}% }% of at begin document \ifdefined\XeTeXversion \AtBeginDocument{% to be independent of moment of loading of \pk{polski}. \pdef\—{% \ifhmode \unskip\penalty10000 \afterfi{% \@ifnextanyRS { ,;:}% was comma as a special case; 2011/02/22, % 13.32 added colon and semicolon. % % The above needs some explanation, I suppose. We check if next token % is blank space or some punctuations, for which purpose we % use \inverb|\@ifnextanyRS|, where |RS| stands for % “respecting space”. So if next is a space it turns true. Then % \inverb|\pauza@skipcore|'s test does not respect space % (gobbles it) and typesets punctuators with no skip while a % blank replaces with a skip. % {\pauza@skipcore}% {\@ifnextMac{\pauza@skipcore}% {\pauzacore\penalty\hyphenpenalty\hskip\z@skip}% }% }% of |\afterfi|'s argument \else % \nostanza According to \tytul{Instrukcja technologiczna.\ Skład ręczny ^^B % i~maszynowy} the dialogue dash should be followed by a~rigid % hskip of \dekfracc1/2\,em.\nostanza \leavevmode\pauzacore\penalty10000\hskip0,5em\ignorespaces \fi }% % The next command's name consists of letters and therefore it eats % any spaces following it, so |\@ifnextspace| would always be % false, therefore we don't use it.\nostanza \pdef\–{% \ifvmode \PackageError{gmutils}{% command \bslash ppauza (en dash) not intended for vmode.}{% Use \bslash ppauza (en dash) only in number and numeral ranges.}% \else \afterfi{% \@ifnextspace{\ppauza@skipcore}{% \@ifnextMac\ppauza@skipcore {\unskip\discretionary {\ppauza@dash}{\ppauza@dash}{\ppauza@dash}}}% }% \fi }% % \def\emdash{\char`\—} }% of at begin document \def\longpauza{% \def\pauzacore@long{—}% \let\pauzacore\pauzacore@long } \longpauza \def\shortpauza{% \def\pauzacore@short{\hbox{–\kern,23em\relax\llap{–}}}% \let\pauzacore\pauzacore@short }% \def\ppauza@dash{–}% \else % not \XeTeX \def\longpauza{\def\pauzacore{---}} \longpauza \def\shortpauza{% \def\pauzacore{--\kern,23em\relax\llap{--}}}% \def\ppauza@dash{--}% \fi% of if \XeTeX\ or not. \ifdefined\XeTeXversion \foone{\catcode`—\active \catcode`–\active \catcode`-\active}{%\label{not@ifundef} \def\adashes{\AtBeginDocument\adashes}% because |\pauza| % is defined at begin document. \AtBeginDocument{\def\adashes{% \catcode`—\active \def—{\—}% \catcode`–\active \def–{\–}% \addtomacro\dospecials{\do\–\do\—}% \addtomacro\@sanitize{\@makeother\–\@makeother\—}% \addtomacro\gmu@septify{\do\–13\do\—13\relax}% }}} \else \relaxen\adashes \fi \def\gmu@dywiz{\ifmmode-\else \ifvmode-\else\afterfifi\dywiz\fi\fi}% \foone{\catcode`-\active}{% aktivnyj diefis aktywny dywiz active hyphen \def\ahyphen{\let-\gmu@dywiz\catcode`\-\active}} \newcommand*\czas[1][.]{% \the\numexpr(\time-30)/60\relax#1% \@tempcnta=\numexpr\time-(\time-30)/60*60\relax \ifnum\@tempcnta<10 0\fi\the\@tempcnta} \newenvironment*{tytulowa}{\newpage}{\par\thispagestyle{empty}\newpage} \def\nazwired{\quad\textsc} \pdef\polskadata{% \DeclareCommand\gmu@datefsl{% ##1 Q{0123456789\bgroup}>iT{/-} % year ##2 Q{0123456789\bgroup}>iT{/-} % month ##3 Q{0123456789\bgroup} % day >is % terminator of date scanning that will be gobbled ##4 T{,}% another terminator of date, but this will be printed ##5 K{##1\gmu@datefsl} % additional stuff after comma (or instead date) }{% \gmuIfValueF{##2}{\gmuPutIfValue{##3}}% \gmuIfValueT{##2}{% \@tempcnta=0##3\relax\the\@tempcnta \ifcase##2\relax\or\ stycznia\or\ lutego% \or\ marca\or\ kwietnia\or\ maja\or\ czerwca\or\ lipca\or\ sierpnia% \or\ września\or\ października\or\ listopada\or\ grudnia\else {}% \fi}% \gmuIfValueT{##1}{\space ##1}% \gmuPutIfValue{##4}% \gmu@ifempty{##5}{}{ ##5}% }% of \incs{gmu@datefsl}. }% of |\polskadata| \polskadata \pdef\englishdate{% \DeclareCommand\gmu@datefsl{% Q{0123456789\bgroup}>iT{/-} % (1) year Q{0123456789\bgroup}>iT{/-} % (2) month Q{0123456789\bgroup} % (3) day >is T{,} K{##1\gmu@datefsl} % (4, 5) additional stuff after comma }{% \gmuIfValueF{##2}{\gmuPutIfValue{##3}}% \gmuIfValueT{##2}{% \ifcase##2\relax\or January\or February% \or March\or April\or May\or June\or July\or August% \or September\or October\or November\or December\else {}% \fi}% \space \@tempcnta=##3\relax\the\@tempcnta, \gmuIfValueT{##1}{ ##1}% \gmuPutIfValue{##4}% \gmu@ifempty{##5}{}{ ##5}% }% of \incs{gmu@datefsl}. }% \newif\ifdate \pdef\bidate #1{% \gmu@datefsl#1\gmu@datefsl } \DeclareCommand\linedate{s{}m} {% \par \linedate@hook #1#2\@nil% \addvspace{\dateskipamount}% \possvfil% if we put it before |\addvspace|, the v-space is always % added. % \ifdate % ^^U \addvspace{\dateskipamount}% \if@CofaćPrzedDatą@ \penalty\@M \vskip-0,5\baselineskip \else \@CofaćPrzedDatą@true \fi % \date@line{\DateFont \bidate{#1#2}}% \nopagebreak % ^^U \else%|%\ifnum\arabic{dateinsection}>0\dekbigskip\fi| % ^^U \addvspace{\bigskipamount}\possvfil \fi }% end of |\linedate|. \newif\if@CofaćPrzedDatą@ \@CofaćPrzedDatą@true \pdef\NoPredate {\@CofaćPrzedDatą@false} \newcommand*\DateFont{\footnotesize\itshape} \def\linedate@hook #1\@nil{} \newskip\dateskipamount \dateskipamount\medskipamount \pdef\rdate{\let\date@line\rightline \linedate} \def\date@left#1{\par{% \raggedright#1% \leftskip\z@skip \@@par}}% \pdef\ldate{%\changes{v0.94}{2008/09/06}{\cs{leftline} % replaced with \cs{par}…\cs{par} to work well with \pk{floatflt}} \let\date@line\date@left \linedate} \newcommand*\runindate[1]{% \paragraph{\footnotesize\itshape \gmu@datef#1\gmu@datef}% \stepcounter{dateinsection}} \let\thedate\ldate \pdef\zwrobcy#1{\emph{#1}} %ostinato, allegro con moto, %garden party etc., także kompliment \pdef\tytul#1{\emph{#1}} \newenvironment{maszynopis}[1][]{#1\ttfamily \hyphenchar\font=45\relax% this assignment is global for the font. \@tempskipa=\glueexpr\rightskip+\leftskip\relax \ifdim\gluestretch\@tempskipa=\z@ \tolerance900 % \nostanza it worked well with tolerance \equals 900.\nostanza \advance\rightskip by\z@ plus0,5em\relax\fi \fontdimen3\font=\z@% we forbid stretching spaces…\par\nostanza\gmdnoindent %|% \fontdimen4\font=\z@| but allow shrinking them.\nostanza \hyphenpenalty0 % not to make \TeX\ nervous: in a~typewriting this % marvellous algorithm of hyphenation should be turned off and every % line broken at the last allowable point. \Store@Macro\pauzacore \def\pauzacore{-\rlap{\kern-0,3em-}-}% }{\par} \pdef\justified{% \leftskip=1\leftskip% to preserve the natural length and discard % stretch and shrink. \rightskip=1\rightskip \parfillskip=1\parfillskip \advance\parfillskip by 0sp plus 1fil\relax \let\\\@normalcr} \DeclareCommand\fullpar{% T{+-}% Q{+-0123456789} % optional looseness (most probably negative) }{% \begingroup \gmuIfValueT{#1}{\looseness=#1\gmuIfValueTF{#2}{#2}{1}\relax \multiply\tolerance by \tw@ }% \fullparcore \par \endgroup} \pdef\fullparcore{% \hunskip \parfillskip\z@skip} \newcommand*\twoparinit{% the name stands for `\emph{last} paragraph % line's length \emph{min}imum \emph{two} \incs{parindent}. \def\twopar@defts{% \hsize-\leftskip-\rightskip-\fontcharwd\font`…}% \def\twopar@atleast{2\@parindent}% \DeclareCommand\twopar{% T{+-}% (1) you can specify loosening the paragraph by one only by % typing single |+| and tightening by one by typing single |-|. Q{+-0123456789}% (2) A{\twopar@atleast}% (3) >iT{\cipolagwa}}{% \begingroup \gmuIfValueT{##1}{% \looseness=##1\gmuIfValueTF{##2}{##2}{1}\relax \multiply\tolerance by2 }% \twoparcore<##3>% \endgraf \endgroup }% of \incmd\twopar. % \stanza \ifdefined\XeTeXversion \DeclareCommand\twoparcore{% A{\twopar@atleast} \gobblespace }{% \hunskip % it's \ac{O.K.} it's in a~group, it'll work anyway. \edef\gmu@tempa{\the\dimexpr\twopar@defts-##1\relax}% \parfillskip=\glueexpr\gmu@tempa minus \gmu@tempa \relax% to delimit |\glueexpr|. \relax% to delimit the assignment. }% \else % not \XeTeX---doesn't use |\fontcharwd|. \DeclareCommand\twoparcore{% A{\twopar@default} \gobblespace }{% \hunskip % it's \ac{O.K.} it's in a~group, it'll work anyway. {\setbox0=\hbox{\dots}% \xdef\gmu@tempa{\the\wd0}}% \edef\gmu@tempa{% \the\dimexpr\hsize-\leftskip-\rightskip -\gmu@tempa-2\@parindent\relax}% \parfillskip=\glueexpr\gmu@tempa minus \gmu@tempa \relax% to delimit |\glueexpr|. \relax% to delimit the assignment. }% \fi % \stanza \AtBeginDocument{% \def\restoreparindent{\parindent\@parindent}% }% of \cmd\AtBeginDocument. }% of \cs{twoparinit}. \def\gmu@leftskipcorr{% \kern1\leftskip \ifcsname \@currenvir leftskip\endcsname \kern-1\csname \@currenvir leftskip\endcsname \fi } \DeclareCommand\wherncore{om}{%\ % \begin{enumargs} % \dc optional value of \incs{hskip} of (left) indent of the parbox. If % absent, parbox is aligned right; % \dc text for the datum parbox. % \end{enumargs} \gmuIfValueTF{#1}{\leftline{% \kern1\leftskip \whernfont \hskip#1\relax\parbox {\dimexpr\hsize-\leftskip-\rightskip-#1}% {#2}% of |\parbox|, }% of |\leftline|, }% of |ValueT{#1}|. {% |ValueF{#1}|: \rightline {\whernfont \whern@parbox{#2}% \kern1\rightskip }% of |\rightline|, \setprevdepth }% of |ValueF{#1}|, }% of |\wherncore|. \DeclareCommand\whern@parbox{% T {\leftskip\rightskip}% horizontal alignment of resulting box (the % side to be ragged) O{t} % vertical alignment of parbox >is % separator O{0,7666\hsize} % (3) width of parbox m % (4) parbox contents }{% % \begin{enumargs} % \dc S the skip of the ragged side, % \dc the |\parbox|'s contents. % \end{enumargs} \parbox[#2]{#3}{% \gmuIfValueTF{#1}{#1}{\leftskip}=0sp plus \textwidth \parfillskip0sp\relax \let\\\linebreak \disobeylines \whernfont #4\unskip\strut\endgraf \getprevdepth }% of |\parbox|, }% of |\whern@parbox|. \def\whern{% \endgraf\nopagebreak \gmu@ifstar{\wherncore}% {\vskip\whernskip\wherncore}% } \let\whernfont\footnotesize \newskip\whernskip \whernskip2\baselineskip minus 2\baselineskip\relax \foone{\obeylines}{% \DeclareCommand\whernup{% #1 o % a~vskip before >is % separating star (ignored) #2 o % custom width of parbox #3 >Pm% #4 o % a vskip between this box and subsqt. text >iQ{ \par }% }% of args' spec }% of obey lines {\par \gmuIfValueT{#1}{\vskip#1\relax}% % % The \env{prosato} env. of \pk{gmverse} \& derivs. set some % positive parskip and counterkrank its first occurrence by a vskip % of its negative. Therefore here we put ourselves in a |\rlap| and % put at the very beginning of a paragraph. \ifinner \noindent\nobreak\kern-1\leftskip \nobreak \rlap{% \vbox{% \fi % of if inner \leftline{% % ^^A \gmu@leftskipcorr \gmuIfValueTF{#2}{\whern@parbox\rightskip[b][#2]}% {\whern@parbox\rightskip[b]}% {#3}% }% % \ifinner \gmuIfValueT {#4}{\vskip\glueexpr #4\endexpr }% \phantom{Ala ma Filifjonkgyr}% }% of vbox }% of rlap % \penalty\@M \kern 1\leftskip \@ifenvir{quote}{\hskip\z@skip}{\hskip\parindent\relax}% \else \gmuIfValueT {#4}{\vskip \glueexpr #4\endexpr }% \fi }% of |\whernup|'s body. \pdef\thousep#1{% a~macro that'll put the thousand separator between % every two three-digit groups.\par\nostanza % First we check whether we have at least five digits. %\changes{v0.93}{2008/08/23}{added} \gmu@thou@fiver#1\relax\relax\relax\relax\relax% we put five % \incs{relax}es after the parameter to ensure the string will meet % \incs{gmu\+@\+thou\+@\+fi\+ver}'s definition.\ilrr \gmu@thou@fiver{#1}{% if more than five digits: \emptify\gmu@thou@put \relaxen\gmu@thou@o\relaxen\gmu@thou@i\relaxen\gmu@thou@ii \@tempcnta\z@ \gmu@thou@putter#1\gmu@thou@putter \gmu@thou@put }} \def\gmu@thou@fiver#1#2#3#4#5\gmu@thou@fiver#6#7{% this macro only % checks if the text delimited with itself consists of at least five tokens/braces \ifx\relax#5\relax\@xa\@firstoftwo \else\@xa\@secondoftwo \fi{#6}{#7}} \def\gmu@thou@putter #1#2{% we are sure to have at least five tokens % before the sentinel \incs{gmu@thou@putter}. \advance\@tempcnta\@ne \@tempcntb\@tempcnta \divide\@tempcntb3\relax \@tempcnta=\numexpr\@tempcnta-\@tempcntb*3 \edef\gmu@thou@put{\@xau{\gmu@thou@put}\unexpanded{#1}% \ifx\gmu@thou@putter#2\else \ifcase\@tempcnta \gmu@thou@o\or\gmu@thou@i\or\gmu@thou@ii% all three % \CSes are yet \incs{relax} so we may put them in % an \incs{edef} safely.\ilrr \fi \fi}% of \cs{edef} \ifx\gmu@thou@putter #2% if we are at end of the digits… \edef\gmu@tempa{% \ifcase\@tempcnta \gmu@thou@o\or\gmu@thou@i\or\gmu@thou@ii \fi}% \@xa\let\gmu@tempa\gmu@thousep% … we set the proper \CS… \else% or … \afterfi{% iterate. \gmu@thou@putter#2}% of \cs{afterfi} \fi% of if end of digits. }% of \cs{gmu@thou@putter}. \def\gmu@thousep{\,}% in Polish the recommended thousand separator is \pdef\xathousep#1{\@xa\thousep\@xa{\the#1}} \def\shortthousep{% \DeclareCommand\thous{ D {\NoValue} % decimal argument }{% % we declare it as a command with Q-type argument to allow spaces % between digits. \ifmmode\hbox\bgroup\@gmu@mmhboxtrue\fi \gmuIfValueTF{##1}{% we are given a sequence of digits \@tempcnta=##1\relax \ifnum\@tempcnta<0 $-$% \@tempcnta=-\@tempcnta \fi \xathousep\@tempcnta \if@gmu@mmhbox\egroup \else\@xa\spifletter \fi }% {% no bare digits given, then we assume the argument is braced. \thousep }% }% of |\thous|. }% of |\shortthousep|. \DeclareCommand\ATfootnotes{s}{% \chgs{2008/11/29 v0.98 moved here % from my own private macro package to allow the beauty of these % footnotes for the general audience} % \stanza % We make the footnote mark in the footnote |\scriptsize| not % |\scriptscriptsize|.\nostanza \gmuIfValueT{#1}% the following setting is suitable for old style % numbers in footnote marks, therefore I~place it in the starred % version of the command. {\prependtomacro\gmu@ATfootnotes{% \pdef\@makefnmark{% \mbox {\normalfont \textsuperscript {\smaller[3]\@thefnmark }}}% }% of prepend, }% of |\gmuIfValueT|. % \gmu@ATfootnotes \gmu@AT@ampulex\maketitle% without \pk{hyperref} \unless\if@HyOrg@maketitle@ampulexed@ \ifdefined\HyOrg@maketitle \afterfi{\gmu@AT@ampulex\HyOrg@maketitle}% with \pk{hyperref} \fi \@HyOrg@maketitle@ampulexed@true \fi } \newif\if@HyOrg@maketitle@ampulexed@ \pdef\gmu@AT@ampulex #1{% \ampulexdef#1{\def\@makefnmark}% \if@twocolumn {\gmu@ATfootnotes\if@twocolumn}% Ampulex redefinition of % \incs{maketitle} for the standard classes. \ampulexdef#1{\long\def\@makefntext}% \if@twocolumn{\gmu@ATfootnotes\if@twocolumn}% Ampulex redefinition % of \incs{maketitle} for \pk{mwcls}. } \pdef\gmu@ATfootnotes{% % And we make the footnote number not be in superscript but on the % base line, according to Andrzej Tomaszewski's suggestion on % Bacho\TeX\ 2008, and the same size as in the footnote mark.\nostanza \long\pdef\@makefntext##1{% \ifdefined\@parindent \parindent\@parindent \else \parindent 1em\relax \fi \indent{\ATf@font\scriptsize% ^^A \hphantom{19}\llap {\@thefnmark}}% \gmu@fnhook \enspace\ignorespaces##1}% } \let\ATf@font\normalfont \emptify\gmu@fnhook \pdef\rrthis{% ‘rag right this’: make only the current paragraph % ragged right (e.g.\ if the paragraph consists of a~long \ac{URL}). % \chgs{2008/12/01 v0.98 added} \begingroup\rightskip=0sp plus \hsize \endgraf\endgroup} \pdef\centerthis{% 2009/12/15 \begingroup \rightskip=1\rightskip plus \hsize \leftskip=1\leftskip plus\hsize \parfillskip=\z@skip \endgraf\endgroup} \def\TrzaskaTilde{% \@xa\DeclareCommand\@xa\gmu@smarttilde \@xa{\@xa T\@xa{\all@stars~}}{% \gmuIfValueTF{##1}{\nobreakspace{}}% {\ifdim\dimexpr\hsize-\leftskip-\rightskip -\ifdim\hangindent<\z@-\fi\hangindent % the last % parameter is used with respect to the \pk{floatflt} package. >% \ifdim\f@size pt>\dimexpr10pt-1sp\relax 168dd \else 144dd \fi \nobreakspace {}% \else \ % \fi }% of |\gmu@ifstar|'s else, }% of |\gmu@smarttilde|, \let~\gmu@smarttilde }% of |\TrzaskaTilde|. \newcommand{\clearemptydoublepage}{% \newpage{\pagestyle{empty}\cleardoublepage}} \foone\obeylines{% \def\disobeylines{% for arguments in which line end is active to % simulate normal behaviour \ifnum\catcode`\^^M=\active% \pdef^^M{\@ifnextgroup{\ifhmode\unskip\space\fi}{\gmu@disMinner}}% \def\gmu@disMinner##1{% \ifx^^M##1\endgraf% \else\afterfi{\ifhmode\unskip\space\fi}\fi##1}% \fi}% } \DeclareCommand\*{Q{0123456789}{1}} {\gmu@flexhyphen \gmu@star@loop0{#1}\relax }% \def\gmu@star@loop#1#2{% this is an expandable loop as in The % \eTeX\ Manual p.~9. \ifnum#1<\numexpr#2\relax% \gmu@lowstar \gmu@flexhyphen \@xa\gmu@star@loop \@xa{\number\numexpr#1+1\@xa}% \@xa{\number#2\@xa}% \fi} \ifdefined\XeTeXversion \foone{% \catcode`„\active \catcode`”\active \catcode`’\active \catcode`—\active \catcode`–\active }{% \def\activequotes{% \incsdef„{}{\@ifnextchar—% {\lv\llap{\string„}\pauzadial}{\string„}}% \incsdef”{}{\string”\@ifnextanyRS{.,}{\quotkern}{}}% \incsdef’{}{\string’\@ifnextanyRS{.,}{\quotkern}{}}% \catcode`„\active \catcode`”\active }% \def\activepunctsQ {„”’—–}% } \catcode`ѥ\active \DeclareCommand\ac {b} {% \gmuIfValueTF{#1}% {% \acro{#1}% }% {\ac@u}% } \def\ac@kernel#1{{\gmu@acrokernel {#1}}}% |#1| in braces because |\acrocore| % valid in \ty{Dzienniczek} uses % |\lowercase| (that requires braced text). \@xa\def\@xa\@dc@basicdelims\@xa{% \two@Ms \par \relax \bgroup \egroup \begingroup \endgroup \begin \end $% ^^A$ \(\)\[\]% other math delims &\\% tabular delims } \let\@dc@basicdelimsp\@dc@basicdelims \@xa\addtomacro\@xa\@dc@basicdelimsp \@xa{\all@spaces} \@xa\def\@xa\@dc@punctanddelims \@xa{\@dc@basicdelims :,.;?!„”«»‹›"'`‘’}% \let \@dc@acpunctanddelims \@dc@punctanddelims \@xa\addtomacro\@xa\@dc@acpunctanddelims \@xa{\activepunctsQ} \let \@dc@acpunctanddelimsp \@dc@punctanddelims \@xa\addtomacro\@xa\@dc@acpunctanddelimsp \@xa{\all@spaces} \addtomacro\@dc@acpunctanddelimsp{~} \DeclareCommand\ac@u{ >\@xa U {\@dc@acpunctanddelimsp ()[]<>ѥ} \default{} \eacher {\ac@kernel} >iW{ѥ} } {% \ifmmode\@xa\text\else\@xa\firstofone\fi{#1}% } \fi % of if \XeTeX\ of l.~\ref{12322}. \@namedef{enumerate*}{% \ifnum\@enumdepth>\thr@@ \@toodeep \else \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \@xa\list\csname label\@enumctr\endcsname{% \partopsep\topsep \topsep\z@ \leftmargin\z@ \itemindent\@parindent %|%\advance\itemindent\labelsep| \labelwidth\@parindent \advance\labelwidth-\labelsep \listparindent\@parindent \usecounter \@enumctr \def\makelabel##1{##1\hfil}}% \fi} \@namedef{endenumerate*}{\endlist} \@namedef{itemize*}{% \ifnum\@itemdepth>\thr@@ \@toodeep \else \advance\@itemdepth\@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \@xa\list\csname\@itemitem\endcsname{% \partopsep\topsep \topsep\z@ \leftmargin\z@ \itemindent\@parindent \labelwidth\@parindent \advance\labelwidth-\labelsep \listparindent\@parindent \def\makelabel##1{##1\hfil }}% \fi} \@namedef{enditemize*}{\endlist} \endinput %% %% End of file `gmtypos.sty'.