Difference between revisions of "User:Wolfgang Schuster"

From Wiki
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

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.

Links