summaryrefslogtreecommitdiff
path: root/tex/context/base/typo-fln.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-08-22 16:40:16 +0300
committerMarius <mariausol@gmail.com>2013-08-22 16:40:16 +0300
commit5e936f4803c46d1dfc6d75f137092e8d20320ffb (patch)
treec7d17a6071b0a986b9ad8110b26f60c09b21b1da /tex/context/base/typo-fln.mkiv
parentf2b76ac2cf4a0135cf6943024f7b7eaa6b2f0d5f (diff)
downloadcontext-5e936f4803c46d1dfc6d75f137092e8d20320ffb.tar.gz
beta 2013.08.22 15:28
Diffstat (limited to 'tex/context/base/typo-fln.mkiv')
-rw-r--r--tex/context/base/typo-fln.mkiv103
1 files changed, 103 insertions, 0 deletions
diff --git a/tex/context/base/typo-fln.mkiv b/tex/context/base/typo-fln.mkiv
new file mode 100644
index 000000000..98577d91e
--- /dev/null
+++ b/tex/context/base/typo-fln.mkiv
@@ -0,0 +1,103 @@
+%D \module
+%D [ file=typo-fln,
+%D version=2013.08.22, % comes from the few years older m-newstuff
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=First Lines,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / First Lines}
+
+%D I had this code laying around for a while \unknown\ probably as a side effect
+%D of cleaning up the supp-fun modules. There is probably room for improvement
+%D and more features.
+
+% \setupbodyfont[pagella]
+%
+% \starttext
+%
+% \setupindenting[medium,yes]
+%
+% \definefirstline
+% [smallcaps]
+% [alternative=line,
+% color=darkred,
+% style=\setfontfeature{smallcaps}]
+%
+% \setfirstline[smallcaps] \input tufte \par
+% \setfirstline[smallcaps] \input ward \par
+% \setfirstline[smallcaps] \input knuth \par
+% \setfirstline[smallcaps] \input bryson \par
+%
+% \definefirstline
+% [smallcaps]
+% [alternative=word,
+% color=darkblue,
+% style=bold,
+% n=2]
+%
+% \setfirstline[smallcaps] \input tufte \par
+% \setfirstline[smallcaps] \input ward \par
+% \setfirstline[smallcaps] \input knuth \par
+% \setfirstline[smallcaps] \input bryson \par
+%
+% \stoptext
+
+\unprotect
+
+\registerctxluafile{typo-fln}{1.001}
+
+\definesystemattribute[firstline][public]
+
+\installcorenamespace {firstline}
+
+\installcommandhandler \??firstline {firstline} \??firstline
+
+\setupfirstline
+ [\c!alternative=\v!line,
+ %\c!style=,
+ %\c!color=,
+ \c!n=0]
+
+\appendtoks
+ \begingroup
+ \usefirstlinestyleandcolor\c!style\c!color
+ \setxvalue{\??firstline:\currentfirstline}{\ctxlua{commands.definefirstline {
+ alternative = "\firstlineparameter\c!alternative",
+ ma = \the\attribute\colormodelattribute,
+ ca = \the\attribute\colorattribute,
+ ta = \the\attribute\transparencyattribute,
+ n = \number\firstlineparameter\c!n,
+ font = \fontid\font,
+ dynamic = \number\attribute\zerocount,
+ }}}%
+ \endgroup
+\to \everydefinefirstline
+
+\unexpanded\def\setfirstline[#1]%
+ {\edef\typo_firstline_set
+ {\typo_firstline_set_indeed{\number\csname\??firstline:#1\endcsname}}}
+
+\unexpanded\def\typo_firstline_set_indeed#1%
+ {\dontleavehmode
+ \begingroup
+ \attribute\firstlineattribute#1\relax
+ \kern\zeropoint % we need a node
+ \hskip\zeropoint\s!plus\emwidth\relax % can be an option
+ \globallet\typo_firstline_set\relax
+ \endgroup}
+
+\let\typo_firstline_set\relax
+
+% \appendtoks
+% \typo_firstline_set % has to be done later
+% \to \everypar
+
+\protect
+
+\endinput