diff options
Diffstat (limited to 'tex/context/base/typo-cap.mkiv')
-rw-r--r-- | tex/context/base/typo-cap.mkiv | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/tex/context/base/typo-cap.mkiv b/tex/context/base/typo-cap.mkiv index 28ced7c42..25a0ff9ee 100644 --- a/tex/context/base/typo-cap.mkiv +++ b/tex/context/base/typo-cap.mkiv @@ -15,6 +15,9 @@ \unprotect +%D Maybe we need a more clever system: either command or style mode etc. so +%D that we can avoid the grouped mess in a simple style switch. + \registerctxluafile{typo-cap}{1.001} \definesystemattribute[case][public] @@ -146,6 +149,14 @@ \unexpanded\def\realSmallcapped {\groupedcommand{\sc\setcharactercasing[\v!Word ]}{}} % one upper + font \unexpanded\def\realSmallCapped {\groupedcommand{\sc\setcharactercasing[\v!Words ]}{}} % some upper +\unexpanded\def\font_style_pseudosmallcapped{\setcharactercasing [\v!WORD ]\signalcharacter\tx} % all upper +\unexpanded\def\font_style_pseudoSmallcapped{\setcharactercasing [\v!capital]\signalcharacter\tx} % one upper + font +\unexpanded\def\font_style_pseudoSmallCapped{\setcharactercasing [\v!Capital]\signalcharacter\tx} % some upper + font + +\unexpanded\def\font_style_realsmallcapped {\sc\setcharactercasing[\v!WORD ]} % all lower +\unexpanded\def\font_style_realSmallcapped {\sc\setcharactercasing[\v!Word ]} % one upper + font +\unexpanded\def\font_style_realSmallCapped {\sc\setcharactercasing[\v!Words ]} % some upper + \unexpanded\def\typo_capitals_smallcaps {\ifconditional\c_typo_capitals_pseudo \expandafter\firstoftwoarguments @@ -157,6 +168,10 @@ \unexpanded\def\Smallcapped{\typo_capitals_smallcaps\pseudoSmallcapped\realSmallcapped} \unexpanded\def\SmallCapped{\typo_capitals_smallcaps\pseudoSmallCapped\realSmallCapped} +\unexpanded\def\font_style_smallcapped{\typo_capitals_smallcaps\font_style_pseudosmallcapped\font_style_realsmallcapped} +\unexpanded\def\font_style_Smallcapped{\typo_capitals_smallcaps\font_style_pseudoSmallcapped\font_style_realSmallcapped} +\unexpanded\def\font_style_SmallCapped{\typo_capitals_smallcaps\font_style_pseudoSmallCapped\font_style_realSmallCapped} + \unexpanded\def\autocap{\ifmmode\expandafter\normalcap\else\expandafter\smallcapped\fi} \appendtoks @@ -171,6 +186,10 @@ \let\normalWORD \WORD \let\normalword \word +\let\font_style_normalsmallcapped\font_style_smallcapped +\let\font_style_normalWORD \WORD +\let\font_style_normalword \word + %D As suggested by WS: \unexpanded\def\notsmallcapped{\groupedcommand{\setcharactercasing[\v!word]\signalcharacter}{}} @@ -183,21 +202,22 @@ %D %D \showsetup{setupcapitals} -\let\normalsmallcapped\smallcapped +\installcorenamespace{capitals} -\definesystemvariable{kk} +\installsetuponlycommandhandler \??capitals {capitals} -\unexpanded\def\setupcapitals - {\dosingleempty\typo_capitals_setup} +\let\normalsmallcapped\smallcapped -\def\typo_capitals_setup[#1]% todo: don't use grouping just a switch - {\getparameters[\??kk][#1]% - \doifelse\@@kktitle\v!yes - {\definealternativestyle[\v!capital ][\normalsmallcapped][\normalsmallcapped]% - \definealternativestyle[\v!smallcaps][\sc ][\sc ]} - {\definealternativestyle[\v!capital ][\normalsmallcapped][\normalWORD ]% - \definealternativestyle[\v!smallcaps][\sc ][\normalWORD ]}% - \doifelse\@@kksc\v!yes\userealcaps\usepseudocaps} +\appendtoks + \doifelse{\directcapitalsparameter\c!title}\v!yes + {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalsmallcapped]% + \definealternativestyle[\v!smallcaps][\sc][\sc]} + {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalWORD]% + \definealternativestyle[\v!smallcaps][\sc][\font_style_normalWORD]}% + \doifelse{\directcapitalsparameter\s!sc}\v!yes + \userealcaps + \usepseudocaps +\to \everysetupcapitals \let\uppercased\normalWORD \let\lowercased\normalword |