summaryrefslogtreecommitdiff
path: root/tex/context/base/page-sel.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-sel.mkvi')
-rw-r--r--tex/context/base/page-sel.mkvi368
1 files changed, 0 insertions, 368 deletions
diff --git a/tex/context/base/page-sel.mkvi b/tex/context/base/page-sel.mkvi
deleted file mode 100644
index 1fe3f2f38..000000000
--- a/tex/context/base/page-sel.mkvi
+++ /dev/null
@@ -1,368 +0,0 @@
-%D \module
-%D [ file=page-sel, % moved from page-imp
-%D version=1998.01.15,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Page Selection,
-%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.
-
-%D This code relates to old texexec features and one can wonder if it needs
-%D to be in the core. So, this could become runtime loaded code. Some of
-%D the alternatives need checking.
-
-\writestatus{loading}{ConTeXt Page Macros / Page Selection}
-
-\unprotect
-
-%D One can (mis)use this mechanism to (re)arrange pages of already produced
-%D files.
-%D
-%D \starttyping
-%D \insertpages[file.pdf][1,3][n=30,width=18cm]
-%D \stoptyping
-%D
-%D The pages are inserted in the text area, and even pages are repositioned
-%D according to the width. In this example empty pages are added after page
-%D 1 and 3.
-%D
-%D Selecting pages can be accomplished by:
-%D
-%D \starttyping
-%D \filterpages[file.pdf][1,3,5][n=30,width=18cm]
-%D \stoptyping
-%D
-%D One may pass \type {odd} or \type {even} instead of a comma separated list. A
-%D third alternative is:
-%D
-%D \starttyping
-%D \copypages[file.pdf][n=30,scale=950]
-%D \stoptyping
-%D
-%D This macros inserts the page, according to the settings provided.
-
-\installcorenamespace{withpages}
-
-\installsetuponlycommandhandler \??withpages {withpages}
-% \installdirectcommandhandler \??withpages {withpages}
-
-\newcount\c_page_selectors_n
-
-\unexpanded\def\insertpages
- {\dotripleempty\page_selectors_insert}
-
-\def\page_selectors_insert[#filename][#emptylist][#settings]%
- {\doifassignmentelse{#emptylist}
- {\page_selectors_insert_indeed[#filename][][#emptylist]}
- {\page_selectors_insert_indeed[#filename][#emptylist][#settings]}}
-
-\def\page_selectors_insert_indeed[#filename][#emptylist][#settings]%
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#filename]%
- \global\c_page_selectors_n\noffigurepages\relax
- \setupcurrentwithpages[\c!width=\zeropoint,#settings]%
- \scratchwidth\directwithpagesparameter\c!width\relax
- \doifinset0{#emptylist}
- {\emptyhbox\page}%
- \dorecurse\c_page_selectors_n
- {\page_selectors_filter_a_page{#filename}\recurselevel
- \doifinset\recurselevel{#emptylist}
- {\emptyhbox\page}}%
- \egroup}
-
-\unexpanded\def\filterpages
- {\dotripleempty\page_selectors_filter}
-
-\def\page_selectors_filter[#filename][#selection][#settings]% % \noffigurepages not yet supported
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#filename]%
- \global\c_page_selectors_n\noffigurepages\relax
- \setupcurrentwithpages[\c!width=\zeropoint,#settings]%
- \scratchwidth\directwithpagesparameter\c!width\relax
- \edef\p_selection{#selection}%
- \ifx\p_selection\v!even
- \dorecurse\c_page_selectors_n
- {\ifodd\recurselevel\else
- \page_selectors_filter_a_page{#filename}\recurselevel
- \fi}%
- \else\ifx\p_selection\v!odd
- \dorecurse\c_page_selectors_n
- {\ifodd\recurselevel\relax
- \page_selectors_filter_a_page{#filename}\recurselevel
- \fi}%
- \else
- \def\page_selectors_filter_step_indeed#page%
- {\ifnum#page>\c_page_selectors_n\else
- \page_selectors_filter_a_page{#filename}{#page}%
- \fi}%
- \def\page_selectors_filter_step#step%
- {\dowithrange{#step}\page_selectors_filter_step_indeed}%
- \processcommacommand[\p_selection]\page_selectors_filter_step
- \fi\fi
- \egroup}
-
-\def\page_selectors_filter_a_page#filename#page%
- {\hbox to \textwidth
- {\ifdim\scratchwidth>\zeropoint
- \rightorleftpageaction{\scratchwidth\zeropoint}{\hfill}%
- \fi
- \setbox\scratchbox\hbox
- {\hskip-\scratchwidth
- \externalfigure[#filename][\c!page=#page,\c!height=\textheight]\hss}%
- \wd\scratchbox\zeropoint
- \box\scratchbox}
- \page}
-
-\unexpanded\def\copypages
- {\dotripleempty\page_selectors_copy}
-
-\def\page_selectors_copy[#filename][#settings][#figuresettings]%
- {\bgroup
- \getfiguredimensions[#filename]%
- \global\c_page_selectors_n\noffigurepages\relax
- \setupcurrentwithpages[\c!marking=\v!off,\c!offset=\zeropoint,#settings]%
- \scratchoffset\directwithpagesparameter\c!offset\relax
- \dorecurse\c_page_selectors_n
- {\vbox to \textheight
- {\hsize\textwidth
- \centeredbox
- {\doifelse{\directwithpagesparameter\c!marking}\v!on\cuthbox\hbox % only place where cuthbox is used
- {\ifdim\scratchoffset>\zeropoint\relax
- \advance\vsize -2\scratchoffset
- \advance\hsize -2\scratchoffset
- \externalfigure[#filename][\c!page=\recurselevel,#figuresettings,\c!scale=,\c!factor=\v!max,\c!offset=\v!overlay]%
- \else
- \externalfigure[#filename][\c!page=\recurselevel,#figuresettings,\c!offset=\v!overlay]%
- \fi}}}
- \page}
- \egroup}
-
-%D \macros
-%D {combinepages}
-%D
-%D Yet another way of postprocessing is handles by \type {\combinepages}. This macro
-%D builds a matrix of pages from a file, for example:
-%D
-%D \starttyping
-%D \setuppapersize
-%D [A4][A4] % or [A4,landscape][A4,landscape]
-%D
-%D \setuplayout
-%D [header=0pt,footer=1cm,
-%D backspace=1cm,topspace=1cm,
-%D width=middle,height=middle]
-%D
-%D \setupfootertexts
-%D [presentation---\currentdate\space---\space\pagenumber]
-%D
-%D \starttext
-%D \combinepages[slides][nx=2,ny=3,frame=on]
-%D \stoptext
-%D \stoptyping
-%D
-%D One can influence the way the pages are combined. (This will be explained some
-%D time.)
-
-\installcorenamespace{combinepagesalternative}
-
-\unexpanded\def\combinepages
- {\dodoubleempty\page_selectors_combine}
-
-\def\page_selectors_combine[#filename][#settings]% a=perpag b=free
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#filename]%
- \global\c_page_selectors_n\noffigurepages\relax
- \setupcurrentwithpages
- [\c!alternative=\v!a,
- \c!nx=\plustwo,\c!ny=\plustwo,\c!start=\plusone,\c!stop=\maxcard,
- \c!distance=\bodyfontsize,
- \c!bottom=\vfill,\c!top=\vss,\c!left=\hss,\c!right=\hss,
- \c!before=\page,\c!after=\page,\c!inbetween=\blank,
- \c!frame=,\c!background=,\c!backgroundcolor=,
- \c!name={#filename},
- #settings]%
- \directwithpagesparameter\c!before
- \scratchnx\directwithpagesparameter\c!nx
- \scratchny\directwithpagesparameter\c!ny
- \scratchdistance\directwithpagesparameter\c!distance\relax
- \scratchwidth\dimexpr(\textwidth-\scratchnx\scratchdistance+\scratchdistance)/\scratchnx\relax
- \scratchheight\dimexpr(\textheight-\scratchny\scratchdistance+\scratchdistance)/\scratchny\relax
- \expandcheckedcsname{\??combinepagesalternative}{\directwithpagesparameter\c!alternative}\v!b
- \directwithpagesparameter\c!after
- \egroup}
-
-\setvalue{\??combinepagesalternative\v!a}%
- {\global\combinedpagescounter\directwithpagesparameter\c!start\relax
- \doloop
- {\vbox to \textheight
- {\dorecurse\scratchny
- {\hbox to \textwidth
- {\dorecurse\scratchnx
- {\vbox to \scratchheight
- {\hsize\scratchwidth
- \vsize\scratchheight
- \directwithpagesparameter\c!top
- \hbox to \hsize
- {\directwithpagesparameter\c!left
- \ifnum\combinedpagescounter>\directwithpagesparameter\c!stop\relax
- \global\c_page_selectors_n\zerocount
- \else\ifnum\combinedpagescounter>\c_page_selectors_n \else
- \externalfigure
- [\directwithpagesparameter\c!name]
- [\c!object=\v!no,
- \c!page=\number\combinedpagescounter,
- \c!factor=\v!max,
- \c!background=\directwithpagesparameter\c!background,
- \c!backgroundcolor=\directwithpagesparameter\c!backgroundcolor,
- \c!frame=\directwithpagesparameter\c!frame]%
- \fi\fi
- \directwithpagesparameter\c!right}
- \directwithpagesparameter\c!bottom}%
- \global\advance\combinedpagescounter\plusone
- \hfil}%
- \hfilneg}
- \vfil}%
- \vfilneg}%
- \page
- \ifnum\combinedpagescounter>\c_page_selectors_n
- \exitloop
- \fi}}
-
-\setvalue{\??combinepagesalternative\v!c}%
- {\global\combinedpagescounter\directwithpagesparameter\c!start\relax
- \doloop
- {\vbox to \textheight
- {\hbox to \textwidth
- {\dorecurse\scratchnx
- {\directwithpagesparameter\c!left
- \vbox to \textheight
- {\hsize\scratchwidth
- \dorecurse\scratchny
- {\directwithpagesparameter\c!top
- \hbox to \hsize
- {\vbox to \scratchheight
- {\hsize\scratchwidth
- \vsize\scratchheight
- \ifnum\combinedpagescounter>\directwithpagesparameter\c!stop\relax
- \global\c_page_selectors_n\zerocount
- \else\ifnum\combinedpagescounter>\c_page_selectors_n \else
- \externalfigure
- [\directwithpagesparameter\c!name]
- [\c!object=\v!no,
- \c!page=\number\combinedpagescounter,
- \c!factor=\v!max,
- \c!background=\directwithpagesparameter\c!background,
- \c!backgroundcolor=\directwithpagesparameter\c!backgroundcolor,
- \c!frame=\directwithpagesparameter\c!frame]%
- \fi\fi}}
- \global\advance\combinedpagescounter\plusone
- \directwithpagesparameter\c!bottom}}%
- \hfil}%
- \hfilneg}}%
- \page
- \ifnum\combinedpagescounter>\c_page_selectors_n
- \exitloop
- \fi}}
-
-\setvalue{\??combinepagesalternative\v!horizontal}{\getvalue{\??combinepagesalternative\v!a}}
-\setvalue{\??combinepagesalternative\v!vertical }{\getvalue{\??combinepagesalternative\v!c}}
-
-\setvalue{\??combinepagesalternative\v!b}%
- {\global\combinedpagescounter\directwithpagesparameter\c!start\relax
- \doloop
- {\startbaselinecorrection
- \hbox to \textwidth
- {\dorecurse\scratchnx
- {\global\advance\combinedpagescounter\plusone
- \ifnum\combinedpagescounter>\c_page_selectors_n \else
- \normalexpanded{\externalfigure
- [\directwithpagesparameter\c!name]
- [\c!page=\number\combinedpagescounter,
- \c!width=\the\scratchwidth,
- \c!background=\directwithpagesparameter\c!background,
- \c!backgroundcolor=\directwithpagesparameter\c!backgroundcolor,
- \c!frame=\directwithpagesparameter\c!frame]}%
- \hfill
- \fi}%
- \hfillneg}%
- \stopbaselinecorrection
- \ifnum\combinedpagescounter<\c_page_selectors_n\relax
- \directwithpagesparameter\c!inbetween
- \else
- \exitloop
- \fi}}
-
-% This macro cuts a page into n parts that can be pasted together.
-
-\unexpanded\def\slicepages
- {\dotripleempty\page_selectors_slice}
-
-\def\page_selectors_slice[#filename][#oddsettings][#evensettings]%
- {\ifthirdargument
- \page_selectors_slice_indeed[#filename][#oddsettings][#evensettings]%
- \else
- \page_selectors_slice_indeed[#filename][#oddsettings][#oddsettings]%
- \fi}
-
-\let\slicedpagenumber\!!zerocount
-\let\slicedpagestepx \!!zerocount
-\let\slicedpagestepy \!!zerocount
-
-\def\page_selectors_slice_indeed[#filename][#oddsettings][#evensettings]%
- {\bgroup
- \dontcomplain
- \global\let\slicedpagenumber\!!zerocount
- \getfiguredimensions[#filename]%
- \global\c_page_selectors_n\noffigurepages\relax
- \setupcurrentwithpages
- [\c!offset=\zeropoint,\c!hoffset=\zeropoint,\c!voffset=\zeropoint,
- \c!width=\figurewidth,\c!height=\figureheight,#oddsettings]%
- \ifnum\c_page_selectors_n>\zerocount
- \definepapersize
- [\s!dummy][\c!height=\directwithpagesparameter\c!height,\c!width=\directwithpagesparameter\c!width]%
- \setuppapersize
- [\s!dummy][\s!dummy]%
- \setuplayout
- [\c!backspace=\zeropoint,\c!topspace=\zeropoint,
- \c!height=\v!middle,\c!width=\v!middle,
- \c!textdistance=\zeropoint,
- \c!header=\zeropoint,\c!footer=\zeropoint]%
- \fi
- \dorecurse\noffigurepages
- {\global\let\slicedpagenumber\recurselevel
- \ifnum\c_page_selectors_n>\plusone
- \dorecurse\c_page_selectors_n
- {\let\slicedpagestepx\recurselevel
- \dorecurse\c_page_selectors_n
- {\let\slicedpagestepy\recurselevel
- \clip
- [\c!nx=\c_page_selectors_n,\c!ny=\c_page_selectors_n,\c!x=\slicedpagestepx,\c!y=\slicedpagestepy]
- {\scale
- [\c!scale=\number\c_page_selectors_n000]
- {\externalfigure[#filename][\c!page=\slicedpagenumber]}}%
- \page}}%
- \else
- \ifodd\slicedpagenumber\relax
- \setupcurrentwithpages[#oddsettings]%
- \else
- \setupcurrentwithpages[#evensettings]%
- \fi
- \hskip\directwithpagesparameter\c!offset\relax
- \clip
- [\c!hoffset=\directwithpagesparameter\c!hoffset,\c!voffset=\directwithpagesparameter\c!voffset,
- \c!height=\directwithpagesparameter\c!height,\c!width=\directwithpagesparameter\c!width]
- {\externalfigure[#filename][\c!page=\slicedpagenumber]}%
- \page
- \fi}
- \egroup}
-
-% \starttext \slicepages[slice1.pdf][n=3] \stoptext
-
-\protect \endinput