summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/anch-tab.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/anch-tab.mkxl')
-rw-r--r--tex/context/base/mkiv/anch-tab.mkxl382
1 files changed, 0 insertions, 382 deletions
diff --git a/tex/context/base/mkiv/anch-tab.mkxl b/tex/context/base/mkiv/anch-tab.mkxl
deleted file mode 100644
index 8f4bb0b5b..000000000
--- a/tex/context/base/mkiv/anch-tab.mkxl
+++ /dev/null
@@ -1,382 +0,0 @@
-%D \module
-%D [ file=anch-pgr, % moved from anch-pgr (1999.08.01)
-%D version=2011.12.19, % 1999.08.01,
-%D title=\CONTEXT\ Anchoring Macros,
-%D subtitle=Table Extensions,
-%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 Anchoring Macros / Table Extensions}
-
-%D This is just a playground and functionality might change or even dissappear in
-%D favour of better solutions. Anyway, it now has been aroudn too long to bother.
-
-\unprotect
-
-\newcount\c_anch_tabs
-
-\protected\def\tabl_tabulate_hook_b
- {\iftrialtypesetting\else
- \ifpositioning
- \ifconditional\tablehaspositions
- \ifcase\c_tabl_tabulate_noflines % \ifnum\c_tabl_tabulate_noflines=\c_tabl_tabulate_totalnoflines
- \tabl_tabulate_hook_b_first
- \else
- \tabl_tabulate_hook_b_next
- \fi
- \fi
- \fi
- \fi}
-
-\protected\def\tabl_tabulate_hook_e
- {\iftrialtypesetting\else
- \ifpositioning
- \ifconditional\tablehaspositions
- \ifcase\c_tabl_tabulate_noflines % \ifnum\c_tabl_tabulate_noflines=\c_tabl_tabulate_totalnoflines
- \tabl_tabulate_hook_e_first
- \else
- \tabl_tabulate_hook_e_next
- \fi
- \fi
- \fi
- \fi}
-
-\protected\def\tabl_tabulate_hook_b_first{\clf_bposcolumnregistered{tabulate:\the\c_anch_tabs:\the\c_tabl_tabulate_column}}
-\protected\def\tabl_tabulate_hook_b_next {\clf_bposcolumn{tabulate:\the\c_anch_tabs:\the\c_tabl_tabulate_column}}
-\protected\def\tabl_tabulate_hook_e_first{\clf_eposcolumnregistered}
-\protected\def\tabl_tabulate_hook_e_next {\clf_eposcolumn}
-
-% \appendtoks \registerparoptions \to \everypar
-
-\appendtoks
- \global\advance\c_anch_tabs\plusone
-\to \everytabulate
-
-% for text backgrounds
-
-\appendtoks
- \settrue\c_anch_backgrounds_pos_no_shape
-\to \everytabulate
-
-%D Beware, the following code is somewhat weird and experimental and might be
-%D dropped or become a loadable module.
-
-%D \macros
-%D {GFC, GTC, GSC}
-%D
-%D The next macros extend tables and tabulation with backgrounds and position
-%D related features. Areas are specified with symbolic names, and symbolic
-%D references to the graphics involved. Each table has its own namespace.
-
-\newconditional\tablehaspositions
-\newcount \noftabpositions
-\newtoks \posXCtoks
-
-\protected\def\anch_tabulate_bpos{\bpos}
-\protected\def\anch_tabulate_epos{\epos}
-
-\installcorenamespace{positiontables}
-
-\permanent\def\tbPOSprefix{\??positiontables\number\noftabpositions:}
-
-\protected\def\tablepos
- {\normalexpanded{\global\posXCtoks\emptytoks\the\posXCtoks}}
-
-\permanent\protected\def\tbXC {\anch_table_checked\anch_tables_indeed_XC }
-\permanent\protected\def\tbGSC{\anch_table_checked\anch_tables_indeed_GSC}
-\permanent\protected\def\tbGFC{\anch_table_checked\anch_tables_indeed_GFC}
-\permanent\protected\def\tbGTC{\anch_table_checked\anch_tables_indeed_GTC}
-
-\tolerant\def\anch_table_checked#1[#2]%
- {\iftrialtypesetting
- \global\settrue\tablehaspositions
- \expandafter\anch_tables_indeed_NC
- \orelse\ifparameter#2\or
- \expandafter#1%
- \else
- \expandafter\anch_tables_indeed_NC
- \fi[#2]}
-
-\def\anch_tables_indeed_NC[#1]%
- {\NC}
-
-\def\anch_tables_indeed_XC[#1]%
- {{\enforced\let\NC\relax\processcommalist[#1]\anch_tables_step_XC}}
-
-\def\anch_tables_step_XC#1%
- {\anch_tables_step_indeed_XC[#1]}
-
-\def\anch_tables_step_indeed_XC[#1#2]%
- {\if#1>\anch_tables_indeed_GFC[#2:#2]\orelse
- \if#1+\anch_tables_indeed_GFC[#2:#2]\orelse
- \if#1<\anch_tables_indeed_GTC[#2:#2]\orelse
- \if#1-\anch_tables_indeed_GTC[#2:#2]\orelse
- \if#1=\anch_tables_indeed_GSC[#2:#2]\orelse
- \anch_tables_indeed_GSC[#1#2:#1#2]\fi}
-
-\def\anch_tables_indeed_GSC[#1]%
- {\processcommalist[#1]\anch_tables_step_GSC}
-
-\def\anch_tables_step_GSC#1%
- {\anch_tables_append_GSC[#1:#1]}
-
-\def\anch_tables_append_GSC[#1:#2:#3]%
-% {\doglobal\appendtoks\anch_tables_process_GSC[#1:#2]\to\posXCtoks\NC}
- {\gtoksapp\posXCtoks{\anch_tables_process_GSC[#1:#2]}\NC}
-
-\def\anch_tables_process_GSC[#1:#2]%
- {\remappositionframed{#2}{\tbPOSprefix#1}%
- \anch_tabulate_bpos{\tbPOSprefix#1}%
- \doglobal\appendtoks\expandafter\anch_tabulate_epos\expandafter{\tbPOSprefix#1}\to\posXCtoks}
-% \xtoksapp\posXCtoks{\anch_tabulate_epos{\tbPOSprefix#1}}}
-
-\def\anch_tables_indeed_GFC[#1]%
- {\doglobal\appendtoks\anch_tables_delayed_GFC[#1]\to\posXCtoks\NC}
-% {\gtoksapp\posXCtoks{\anch_tables_delayed_GFC[#1]}\NC}
-
-\def\anch_tables_delayed_GFC[#1]%
- {\processcommalist[#1]\anch_tables_step_GFC}
-
-\def\anch_tables_step_GFC#1%
- {\anch_tables_process_GFC[#1:#1]}
-
-\def\anch_tables_process_GFC[#1:#2:#3]%
- {\remappositionframed{#2}{\tbPOSprefix#1}%
- \anch_tabulate_bpos{\tbPOSprefix#1}}
-
-\def\anch_tables_indeed_GTC[#1]%
- {\doglobal\appendtoks\anch_tables_delayed_GTC[#1]\to\posXCtoks\NC}
-% {\gtoksapp\posXCtoks{\anch_tables_delayed_GTC[#1]}\NC}
-
-\def\anch_tables_delayed_GTC[#1]%
- {\doglobal\appendtoks\anch_tables_process_GTC[#1]\to\posXCtoks}
-% {\gtoksapp\posXCtoks{\anch_tables_process_GTC[#1]}\NC}
-
-\def\anch_tables_process_GTC[#1]%
- {\processcommalist[#1]\anch_tables_step_GTC}
-
-\def\anch_tables_step_GTC#1%
- {\anch_tables_step_indeed_GTC[#1:#1]}
-
-\def\anch_tables_step_indeed_GTC[#1:#2]%
- {\anch_tabulate_epos{\tbPOSprefix#1}}
-
-%D The amount of code to support tables and tabulation is rather minimalistic.
-
-\aliased\let\tabulatepos\tablepos
-
-\def\tabulatenormalpos
- {\iftrialtypesetting
- % nothing
- \orelse\ifconditional\tablehaspositions
- \hss\tabulatepos\hss
- \else
- % nothing
- \fi}
-
-\def\tabulateequalpos
- {\iftrialtypesetting
- \tabulateEQ
- \orelse\ifconditional\tablehaspositions
- \tabulateEQpos
- \else
- \tabulateEQ
- \fi}
-
-\def\tabulateEQpos
- {\setbox\scratchbox\hbox{\tabulateEQ}%
- \hbox to \wd\scratchbox{\hss\kern\zeropoint\tabulatepos\hss}% hpack
- \kern-\wd\scratchbox
- \box\scratchbox}
-
-\appendtoks
- \global\advance\noftabpositions\plusone
- \global\setfalse\tablehaspositions
-\to \everytabulate
-
-% We need to handle paragraphs as well.
-
-\let\anch_tabulate_flush_epos\relax
-
-\protected\def\anch_tabulate_bpos_indeed
- {\bpos}
-
-\protected\def\anch_tabulate_epos_indeed#1%
- {\ifvoid\b_tabl_tabulate_current\c_tabl_tabulate_column
- \epos{#1}%
- \glet\anch_tabulate_flush_epos\relax
- \else
- \gdef\anch_tabulate_flush_epos{\epos{#1}}%
- \fi}
-
-\permanent\def\flushtabulatesplitbox
- {\box\b_tabl_tabulate
- \iftrialtypesetting\orelse\ifconditional\tablehaspositions\anch_tabulate_flush_epos\fi}
-
-\appendtoks
- \let\anch_tabulate_bpos\anch_tabulate_bpos_indeed % ?
- \let\anch_tabulate_epos\anch_tabulate_epos_indeed % ?
- \glet\anch_tabulate_flush_epos\relax
-\to \everytabulate
-
-%D In order to prevent potential clashes with abbreviations, postpone the mapping.
-
-\appendtoks
- \enforced\let\GSC\tbGSC
- \enforced\let\GFC\tbGFC
- \enforced\let\GTC\tbGTC
- \enforced\let\XC \tbXC
-\to \everytabulate
-
-%D \macros
-%D {definepositionframed}
-%D
-%D The next example show how to provide backgrounds to table cells. First we define
-%D some framed backgrounds.
-%D
-%D \startbuffer
-%D \definepositionframed[x][background=color,backgroundcolor=red]
-%D \definepositionframed[y][background=color,backgroundcolor=green]
-%D \definepositionframed[z][background=color,backgroundcolor=blue]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D % \getbuffer
-%D
-%D \startbuffer
-%D \starttabulate[|c|c|c|]
-%D \GFC[f:x] this is a small \NC table \NC in which we \NC \FR
-%D \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-%D \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-%D \stoptabulate
-%D \stopbuffer
-%D
-%D The table itself defines three areas (a, b and~c) using these frames.
-%D
-%D \typebuffer
-%D % \getbuffer
-%D
-%D Tables (based on \TABLE) are supported by:
-
-\permanent\def\normalTABLEsimplebar {\unskip\!ttRightGlue&\tablepos&} % |
-\permanent\def\normalTABLEcomplexbar{\unskip\!ttRightGlue&\omit\tablepos\!ttAlternateVrule} % \|
-\permanent\def\normalTABLEquote {\unskip\!ttRightGlue&\omit\tablepos&} % "
-
-\appendtoks
- \global\advance\noftabpositions\plusone
- \global\setfalse\tablehaspositions
-\to \everytable
-
-%D Since we don't want nameclashes:
-
-\appendtoks
- \enforced\let\GSC\tbGSC
- \enforced\let\GFC\tbGFC
- \enforced\let\GTC\tbGTC
- \enforced\let\XC \tbXC
-\to \everytable
-
-%D In the previous example, we could have provided an overlay to the framed definition.
-%D A more direct approach is demonstrated below:
-%D
-%D \startbuffer
-%D \def\cw#1{\color[white]{#1}}
-%D
-%D \startMPpositiongraphic{tableshade}
-%D initialize_area(\MPpos{\MPvar{from}},\MPpos{\MPvar{to}}) ;
-%D color c ; c := \MPvar{color} ;
-%D linear_shade(pxy,0,.4c,.9c) ;
-%D anchor_area(\MPanchor{\MPvar{from}}) ;
-%D \stopMPpositiongraphic
-%D
-%D \setMPpositiongraphic{b:x}{tableshade}{from=b:x,to=e:x,color=red}
-%D \setMPpositiongraphic{b:y}{tableshade}{from=b:y,to=e:y,color=green}
-%D \setMPpositiongraphic{b:z}{tableshade}{from=b:z,to=e:z,color=blue}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D The definition of the table looks about the same as the previous one:
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \GFC[b:z] \cw{this is a small} \NC \cw{table} \NC in which we \NC \FR
-%D \NC \cw{will demonstrate} \GFC[c:y] \cw{that this} \GTC[c] \cw{positioning} \NC \MR
-%D \GSC[a:x] \cw{mechanism also} \GTC[b] \cw{works quite well} \NC in tables \NC \LR
-%D \stoptable
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-% \definepositionframed[w][background=color,backgroundcolor=yellow]
-% \definepositionframed[x][background=color,backgroundcolor=red]
-% \definepositionframed[y][background=color,backgroundcolor=green]
-% \definepositionframed[z][background=color,backgroundcolor=blue]
-%
-% \starttabulate[|c|c|c|]
-% \NC this is a small \NC table \NC in which we \NC \FR
-% \NC will demonstrate \NC that this \NC positioning \NC \MR
-% \NC mechanism also \NC works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \GFC[f:x] this is a small \GTC table \NC in which we \NC \FR
-% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \GFC[f:x,d:w] this is a small \GTC[d] table \NC in which we \NC \FR
-% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \XC[+f:x] this is a small \XC table \NC in which we \NC \FR
-% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
-% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \XC[+f:x,+d:w] this is a small \XC[-d] table \NC in which we \NC \FR
-% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
-% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-
-% evt [b:x]
-%
-% \definepositionframed[x][background=color,fillcolor=red]
-% \definepositionframed[y][background=color,fillcolor=green]
-% \definepositionframed[z][background=color,fillcolor=blue]
-
-\permanent\protected\def\remappositionframed#1#2% from to
- {\copyposition{b:#1}{b:#2}%
- \copyposition{e:#1}{e:#2}%
- \anch_positions_set_action{b:#2}{\dopositionaction{b:#1}}}
-
-\permanent\tolerant\protected\def\definepositionframed[#1]#*[#2]%
- {\anch_positions_set_action{b:#1}{\anch_framed_handle[#1][#2]}}
-
-\protected\def\anch_framed_handle
- {\bgroup
- \anch_framed_indeed}
-
-\permanent\tolerant\protected\def\positionframed[#1]#*[#2]%
- {\setbox\scratchbox\hpack
- {\scratchwidth \dimexpr\MPx{e:#1}-\MPx{b:#1}\relax
- \scratchdepth \dimexpr\MPy{b:#1}-\MPy{e:#1}+\MPd{e:#1}\relax
- \scratchheight\dimexpr\scratchdepth+\MPh{b:#1}\relax
- \lower\scratchdepth\hpack
- {\framed[\c!width=\scratchwidth,\c!height=\scratchheight,\c!offset=\v!overlay,#2]{}}}%
- \smashedbox\scratchbox
- \egroup}
-
-\protect \endinput