diff options
Diffstat (limited to 'tex/context/base/typo-cap.mkiv')
-rw-r--r-- | tex/context/base/typo-cap.mkiv | 117 |
1 files changed, 83 insertions, 34 deletions
diff --git a/tex/context/base/typo-cap.mkiv b/tex/context/base/typo-cap.mkiv index d2f1dc0e0..8f859a4e6 100644 --- a/tex/context/base/typo-cap.mkiv +++ b/tex/context/base/typo-cap.mkiv @@ -23,6 +23,28 @@ \definesystemattribute[case][public] %D \macros +%D {setupcapitals} +%D +%D By default we use pseudo small caps in titles. This can be +%D set up with: +%D +%D \showsetup{setupcapitals} + +\installcorenamespace{capitals} + +\installcommandhandler \??capitals {capitals} \??capitals + +%D Beware, these are not really defines (yet). + +\definecapitals[\v!WORD ] % all upper +\definecapitals[\v!capital] % one upper + font +\definecapitals[\v!Capital] % some upper + font +\definecapitals[\v!mixed ] % UpperCase +\definecapitals[\v!WORD ] % all lower +\definecapitals[\v!Word ] % one upper + font +\definecapitals[\v!Words ] % some upper + +%D \macros %D {Word, Words, WORD, WORDS} %D %D This is probably not the right place to present the next set @@ -141,21 +163,36 @@ % % here we keep the \groupedcommand -\unexpanded\def\pseudosmallcapped{\groupedcommand{\setcharactercasing [\v!WORD ]\signalcharacter\tx}{}} % all upper -\unexpanded\def\pseudoSmallcapped{\groupedcommand{\setcharactercasing [\v!capital]\signalcharacter\tx}{}} % one upper + font -\unexpanded\def\pseudoSmallCapped{\groupedcommand{\setcharactercasing [\v!Capital]\signalcharacter\tx}{}} % some upper + font - -\unexpanded\def\realsmallcapped {\groupedcommand{\sc\setcharactercasing[\v!WORD ]}{}} % all lower -\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 +\def\typo_capitals_set_fake#1% + {\edef\currentcapitals{#1}% + %\setcharactercasing[\currentcapitals]% + \ctxcommand{setcharactercasing("\currentcapitals")}% + \signalcharacter % retain current style + \usecapitalsstyleparameter\c!style} + +\def\typo_capitals_set_real#1% + {\edef\currentcapitals{#1}% + \sc + %\setcharactercasing[\currentcapitals]} + \ctxcommand{setcharactercasing("\currentcapitals")}} + +\unexpanded\def\pseudosmallcapped{\groupedcommand{\typo_capitals_set_fake\v!WORD }\donothing} % all upper +\unexpanded\def\pseudoSmallcapped{\groupedcommand{\typo_capitals_set_fake\v!capital}\donothing} % one upper + font +\unexpanded\def\pseudoSmallCapped{\groupedcommand{\typo_capitals_set_fake\v!Capital}\donothing} % some upper + font +\unexpanded\def\pseudoMixedCapped{\groupedcommand{\typo_capitals_set_fake\v!mixed }\donothing} % UpperCase + +\unexpanded\def\realsmallcapped {\groupedcommand{\typo_capitals_set_real\v!WORD }\donothing} % all lower +\unexpanded\def\realSmallcapped {\groupedcommand{\typo_capitals_set_real\v!Word }\donothing} % one upper + font +\unexpanded\def\realSmallCapped {\groupedcommand{\typo_capitals_set_real\v!Words }\donothing} % some upper + +\unexpanded\def\font_style_pseudosmallcapped{\typo_capitals_set_fake\v!WORD } % all upper +\unexpanded\def\font_style_pseudoSmallcapped{\typo_capitals_set_fake\v!capital} % one upper + font +\unexpanded\def\font_style_pseudoSmallCapped{\typo_capitals_set_fake\v!Capital} % some upper + font +\unexpanded\def\font_style_pseudoMixedCapped{\typo_capitals_set_fake\v!mixed } + +\unexpanded\def\font_style_realsmallcapped {\typo_capitals_set_real\v!WORD } % all lower +\unexpanded\def\font_style_realSmallcapped {\typo_capitals_set_real\v!Word } % one upper + font +\unexpanded\def\font_style_realSmallCapped {\typo_capitals_set_real\v!Words } % some upper \unexpanded\def\typo_capitals_smallcaps {\ifconditional\c_typo_capitals_pseudo @@ -182,6 +219,8 @@ \let\kap\cap % for old times sake \let\Caps\SmallCapped % for old times sake +\let\mixedcaps\pseudoMixedCapped + \let\normalsmallcapped\smallcapped \let\normalWORD \WORD \let\normalword \word @@ -194,29 +233,21 @@ \unexpanded\def\notsmallcapped{\groupedcommand{\setcharactercasing[\v!word]\signalcharacter}{}} -%D \macros -%D {setupcapitals} -%D -%D By default we use pseudo small caps in titles. This can be -%D set up with: -%D -%D \showsetup{setupcapitals} - -\installcorenamespace{capitals} - -\installsetuponlycommandhandler \??capitals {capitals} +%D Further tweaks \let\normalsmallcapped\smallcapped \appendtoks - \doifelse{\directcapitalsparameter\c!title}\v!yes - {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalsmallcapped]% - \definealternativestyle[\v!smallcaps][\setsmallcaps][\setsmallcaps]} - {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalWORD]% - \definealternativestyle[\v!smallcaps][\setsmallcaps][\font_style_normalWORD]}% - \doifelse{\directcapitalsparameter\s!sc}\v!yes - \userealcaps - \usepseudocaps + \ifx\currentcapitals\empty + \doifelse{\directcapitalsparameter\c!title}\v!yes + {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalsmallcapped]% + \definealternativestyle[\v!smallcaps][\setsmallcaps][\setsmallcaps]} + {\definealternativestyle[\v!capital ][\font_style_normalsmallcapped][\font_style_normalWORD]% + \definealternativestyle[\v!smallcaps][\setsmallcaps][\font_style_normalWORD]}% + \doifelse{\directcapitalsparameter\s!sc}\v!yes + \userealcaps + \usepseudocaps + \fi \to \everysetupcapitals \let\uppercased\normalWORD @@ -224,8 +255,26 @@ \setupcapitals [\c!title=\v!yes, + \c!style=\tx, \s!sc=\v!no] % no \c!sc any longer +% \definefont +% [MixedCaps] +% [\v_font_string_a\v_font_string_c*default cp \the\exheight] +% +% \definefont +% [MixedCaps] +% [MixedCaps*default cp \the\exheight] + +\definefont + [MixedCaps] + [CurrentFont*default cp \the\exheight] + +\setupcapitals + [\v!mixed] + [\c!style=MixedCaps] + + % \definestartstop is not yet in available at core-spa time % % \startrandomized \input tufte \stoprandomized |