Difference between revisions of "User:Wolfgang Schuster"
Jump to navigation
Jump to search
m (Link to my homepage) |
(Imposition styles) |
||
Line 20: | Line 20: | ||
\!!widthb\dimexpr\paperheight/\nextboxht\relax | \!!widthb\dimexpr\paperheight/\nextboxht\relax | ||
\ifdim\!!widtha>\!!widthb | \ifdim\!!widtha>\!!widthb | ||
− | \setbox\nextbox\vbox\!!to\@@xxny\paperheight{\vss\expanded{\scale[\c!width=\@@xxnx\paperwidth]{\flushnextbox}}\vss}% | + | \setbox\nextbox\vbox\!!to\@@xxny\paperheight |
+ | {\vss\expanded{\scale[\c!width=\@@xxnx\paperwidth]{\flushnextbox}}\vss}% | ||
\else | \else | ||
− | \setbox\nextbox\hbox\!!to\@@xxnx\paperwidth{\hss\expanded{\scale[\c!height=\@@xxny\paperheight]{\flushnextbox}}\hss}% | + | \setbox\nextbox\hbox\!!to\@@xxnx\paperwidth |
+ | {\hss\expanded{\scale[\c!height=\@@xxny\paperheight]{\flushnextbox}}\hss}% | ||
\fi | \fi | ||
\setbox\nextbox\hbox{\clip[\c!width=\@@xxnx\paperwidth,\c!height=\@@xxny\paperheight]{\flushnextbox}}% | \setbox\nextbox\hbox{\clip[\c!width=\@@xxnx\paperwidth,\c!height=\@@xxny\paperheight]{\flushnextbox}}% | ||
Line 50: | Line 52: | ||
\fullpagefigure[ny=2][image] | \fullpagefigure[ny=2][image] | ||
+ | |||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | === Flashcards === | ||
+ | |||
+ | For tests and vocabulary it is usefull to use flashcards for learning. | ||
+ | |||
+ | <texcode> | ||
+ | \unprotect | ||
+ | |||
+ | \installpagearrangement FLASHCARD | ||
+ | {\dosetuparrangement\@@ppnx\@@ppny{\numexpr\@@ppxy*2\relax}{\numexpr | ||
+ | \@@ppnx+\plusone\relax}{\numexpr\@@ppny+\plusone\relax}% | ||
+ | \pusharrangedpageFLASHCARD\poparrangedpagesAB\relax} | ||
+ | |||
+ | \newcounter\arrangedpageshiftX | ||
+ | \newcounter\arrangedpageshiftY | ||
+ | |||
+ | \def\dopusharrangedpageFLASHCARD#1% | ||
+ | {\ifnum\arrangedpageshiftX<\arrangedpageX | ||
+ | \ifodd\arrangedpageN | ||
+ | \handlearrangedpageXandY{#1}0\arrangedpageshiftX\arrangedpageshiftY\arrangedpageA | ||
+ | \else | ||
+ | \handlearrangedpageXandY{#1}0{\numexpr\@@ppnx-\arrangedpageshiftX-1\relax}\arrangedpageshiftY\arrangedpageB | ||
+ | \doglobal\increment\arrangedpageshiftX | ||
+ | \fi | ||
+ | \fi | ||
+ | \ifnum\arrangedpageshiftX=\@@ppnx | ||
+ | \doglobal\newcounter\arrangedpageshiftX | ||
+ | \doglobal\increment\arrangedpageshiftY | ||
+ | \fi} | ||
+ | |||
+ | \def\pusharrangedpageFLASHCARD#1% | ||
+ | {\doglobal\increment\arrangedpageN | ||
+ | \reportarrangedpage\arrangedpageN | ||
+ | \ifnum\arrangedpageN=\numexpr\@@ppxy*2\relax | ||
+ | \dopusharrangedpageFLASHCARD{#1}% | ||
+ | \doglobal\newcounter\arrangedpageshiftX | ||
+ | \doglobal\newcounter\arrangedpageshiftY | ||
+ | \poparrangedpages | ||
+ | \else | ||
+ | \dopusharrangedpageFLASHCARD{#1}% | ||
+ | \fi} | ||
+ | |||
+ | \protect | ||
+ | </texcode> | ||
+ | |||
+ | To create cards you have to select a number of rows and columns and set the papersize to a value small enough to fit all cards on one sheet of paper. | ||
+ | |||
+ | <texcode> | ||
+ | \setuppapersize[A7][A3,landscape] | ||
+ | \setuppaper [nx=4,ny=2] | ||
+ | \setuparranging[FLASHCARD] | ||
+ | \setuplayout [location=middle,marking=on] | ||
+ | |||
+ | \setupbackgrounds[page][frame=on] | ||
+ | |||
+ | \starttext | ||
+ | |||
+ | \dorecurse{20} | ||
+ | {\startstandardmakeup[align=middle] | ||
+ | Front side \recurselevel | ||
+ | \stopstandardmakeup | ||
+ | \startstandardmakeup[align=middle] | ||
+ | Back side \recurselevel | ||
+ | \stopstandardmakeup} | ||
+ | |||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | === Brochures === | ||
+ | |||
+ | <texcode> | ||
+ | \installpagearrangement LEAFLET | ||
+ | {\dosetuparrangement\@@ppnx1{\numexpr\@@ppnx*2\relax}{\numexpr\@@ppnx+ | ||
+ | \plusone\relax}2% \pusharrangedpageLEAFLET\poparrangedpagesAB\relax} | ||
+ | |||
+ | \def\pusharrangedpageLEAFLET#1% | ||
+ | {\doglobal\increment\arrangedpageN | ||
+ | \reportarrangedpage\arrangedpageN | ||
+ | \ifnum\arrangedpageN=\plusone | ||
+ | \handlearrangedpageXandY{#1}0{\numexpr\@@ppnx-1\relax}0\arrangedpageA | ||
+ | \else\ifnum\arrangedpageN>\numexpr\@@ppnx+1\relax | ||
+ | \handlearrangedpageXandY{#1}0{\numexpr\arrangedpageN-\@@ppnx-2\relax}0\arrangedpageA | ||
+ | \else | ||
+ | \handlearrangedpageXandY{#1}0{\numexpr\arrangedpageN-2\relax}0\arrangedpageB | ||
+ | \fi\fi | ||
+ | \ifnum\arrangedpageN=\arrangedpageT | ||
+ | \poparrangedpages | ||
+ | \fi} | ||
+ | |||
+ | \protect | ||
+ | </texcode> | ||
+ | |||
+ | <texcode> | ||
+ | \setuppapersize[DL][A3,landscape] | ||
+ | \setuppaper [nx=3] | ||
+ | \setuparranging[LEAFLET] | ||
+ | \setuplayout [location=middle,marking=on] | ||
+ | |||
+ | \setupbackgrounds[page][frame=on] | ||
+ | |||
+ | \starttext | ||
+ | |||
+ | \dorecurse{6} | ||
+ | {\startstandardmakeup[align=middle] | ||
+ | \ssd Page \recurselevel | ||
+ | \stopstandardmakeup} | ||
\stoptext | \stoptext | ||
Line 64: | Line 175: | ||
* http://www.ruhr-uni-bochum.de/www-rz/schwanbs/TeX/ | * http://www.ruhr-uni-bochum.de/www-rz/schwanbs/TeX/ | ||
* http://wolfgang.schuster.googlepages.com/ | * http://wolfgang.schuster.googlepages.com/ | ||
+ | * http://tug.ctan.org/tex-archive/macros/latex/contrib/leaflet/ |
Revision as of 11:33, 11 July 2008
Contents
Sample Code
Full page figures
The following macro allows me to include figures in my document and adjust them to have the size of a normal page.
\unprotect \definesystemvariable{xx} \def\fullpagebox {\dosingleempty\dofullpagebox} \def\dofullpagebox[#1]% {\bgroup \getparameters[\??xx][\c!nx=1,\c!ny=1,#1]% \dowithnextbox {\!!widtha\dimexpr\paperwidth/\nextboxwd\relax \!!widthb\dimexpr\paperheight/\nextboxht\relax \ifdim\!!widtha>\!!widthb \setbox\nextbox\vbox\!!to\@@xxny\paperheight {\vss\expanded{\scale[\c!width=\@@xxnx\paperwidth]{\flushnextbox}}\vss}% \else \setbox\nextbox\hbox\!!to\@@xxnx\paperwidth {\hss\expanded{\scale[\c!height=\@@xxny\paperheight]{\flushnextbox}}\hss}% \fi \setbox\nextbox\hbox{\clip[\c!width=\@@xxnx\paperwidth,\c!height=\@@xxny\paperheight]{\flushnextbox}}% \startTEXpage \flushnextbox \stopTEXpage \egroup}% \hbox} \def\fullpagefigure {\dodoubleempty\dofullpagefigure} \def\dofullpagefigure[#1][#2]% {\ifsecondargument \fullpagebox[#1]{\externalfigure[#2]}% \else \fullpagebox[]{\externalfigure[#1]}% \fi} \protect \starttext \fullpagefigure[image] \fullpagefigure[nx=2][image] \fullpagefigure[ny=2][image] \stoptext
Flashcards
For tests and vocabulary it is usefull to use flashcards for learning.
\unprotect \installpagearrangement FLASHCARD {\dosetuparrangement\@@ppnx\@@ppny{\numexpr\@@ppxy*2\relax}{\numexpr \@@ppnx+\plusone\relax}{\numexpr\@@ppny+\plusone\relax}% \pusharrangedpageFLASHCARD\poparrangedpagesAB\relax} \newcounter\arrangedpageshiftX \newcounter\arrangedpageshiftY \def\dopusharrangedpageFLASHCARD#1% {\ifnum\arrangedpageshiftX<\arrangedpageX \ifodd\arrangedpageN \handlearrangedpageXandY{#1}0\arrangedpageshiftX\arrangedpageshiftY\arrangedpageA \else \handlearrangedpageXandY{#1}0{\numexpr\@@ppnx-\arrangedpageshiftX-1\relax}\arrangedpageshiftY\arrangedpageB \doglobal\increment\arrangedpageshiftX \fi \fi \ifnum\arrangedpageshiftX=\@@ppnx \doglobal\newcounter\arrangedpageshiftX \doglobal\increment\arrangedpageshiftY \fi} \def\pusharrangedpageFLASHCARD#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifnum\arrangedpageN=\numexpr\@@ppxy*2\relax \dopusharrangedpageFLASHCARD{#1}% \doglobal\newcounter\arrangedpageshiftX \doglobal\newcounter\arrangedpageshiftY \poparrangedpages \else \dopusharrangedpageFLASHCARD{#1}% \fi} \protect
To create cards you have to select a number of rows and columns and set the papersize to a value small enough to fit all cards on one sheet of paper.
\setuppapersize[A7][A3,landscape] \setuppaper [nx=4,ny=2] \setuparranging[FLASHCARD] \setuplayout [location=middle,marking=on] \setupbackgrounds[page][frame=on] \starttext \dorecurse{20} {\startstandardmakeup[align=middle] Front side \recurselevel \stopstandardmakeup \startstandardmakeup[align=middle] Back side \recurselevel \stopstandardmakeup} \stoptext
Brochures
\installpagearrangement LEAFLET {\dosetuparrangement\@@ppnx1{\numexpr\@@ppnx*2\relax}{\numexpr\@@ppnx+ \plusone\relax}2% \pusharrangedpageLEAFLET\poparrangedpagesAB\relax} \def\pusharrangedpageLEAFLET#1% {\doglobal\increment\arrangedpageN \reportarrangedpage\arrangedpageN \ifnum\arrangedpageN=\plusone \handlearrangedpageXandY{#1}0{\numexpr\@@ppnx-1\relax}0\arrangedpageA \else\ifnum\arrangedpageN>\numexpr\@@ppnx+1\relax \handlearrangedpageXandY{#1}0{\numexpr\arrangedpageN-\@@ppnx-2\relax}0\arrangedpageA \else \handlearrangedpageXandY{#1}0{\numexpr\arrangedpageN-2\relax}0\arrangedpageB \fi\fi \ifnum\arrangedpageN=\arrangedpageT \poparrangedpages \fi} \protect
\setuppapersize[DL][A3,landscape] \setuppaper [nx=3] \setuparranging[LEAFLET] \setuplayout [location=middle,marking=on] \setupbackgrounds[page][frame=on] \starttext \dorecurse{6} {\startstandardmakeup[align=middle] \ssd Page \recurselevel \stopstandardmakeup} \stoptext
Feature Requests
grid=yes
option for\definelayout
,- temporary user variable for privat macros (see above),
- macro
\defineuvervariable{...}
to define namespaces for third party modules.