Open main menu

Wolfgang Schuster

Joined 12 September 2007
3,831 bytes added ,  16:32, 20 June 2013
m
Noted mkii and mkiv versions
=== Flashcards ===
For tests and vocabulary it is usefull useful to use flashcards for learning. (This version is for mkii. See below for mkiv)
<texcode>
\dorecurse{20}
{\startstandardmakeup[align=middle] Front side \recurselevel \stopstandardmakeup \startstandardmakeup[align=middle] Back side \recurselevel \stopstandardmakeup} \stoptext</texcode>  Here is Wolfgang Schuster's own updated '''mkiv''' version of ConTeXt flashcards found at [http://www.ntg.nl/pipermail/ntg-context/2013/071072.html http://www.ntg.nl/pipermail/ntg-context/2013/071072.html] with attachment [http://www.ntg.nl/pipermail/ntg-context/attachments/20130120/ff21c817/attachment-0001.obj http://www.ntg.nl/pipermail/ntg-context/attachments/20130120/ff21c817/attachment-0001.obj]  <texcode>\unprotect \installpagearrangement FLASHCARD {\dosetuparrangement \v_page_target_nx \v_page_target_ny {\numexpr\v_page_target_ny*2\relax}% {\numexpr\v_page_target_nx+\plusone\relax}% {\numexpr\v_page_target_ny+\plusone\relax}% \pusharrangedpageFLASHCARD\poparrangedpagesAB\relax} \newcount\arrangedpageshiftX\newcount\arrangedpageshiftY \def\dopusharrangedpageFLASHCARD#1% {\ifnum\arrangedpageshiftX<\arrangedpageX \ifodd\arrangedpageN \handlearrangedpageXandY{#1}0\arrangedpageshiftX\arrangedpageshiftY\arrangedpageA \else \handlearrangedpageXandY{#1}0{\numexpr\v_page_target_nx-\arrangedpageshiftX-1\relax}\arrangedpageshiftY\arrangedpageB \global\advance\arrangedpageshiftX\plusone \fi \fi \ifnum\arrangedpageshiftX=\v_page_target_nx \global\arrangedpageshiftX\zerocount \global\advance\arrangedpageshiftY\plusone \fi} \def\pusharrangedpageFLASHCARD#1% {\advancearrangedpageN \reportarrangedpage\arrangedpageN \ifnum\arrangedpageN=\numexpr\v_page_target_xy*2\relax \dopusharrangedpageFLASHCARD{#1}% \global\arrangedpageshiftX\zerocount \global\arrangedpageshiftY\zerocount \poparrangedpages \else \dopusharrangedpageFLASHCARD{#1}% \fi} \protect</texcode> The switch to mkiv brings no change in the example invoking the flashcards (see above), but here is my version modified to accept the stationer Avery 5388 paper, which contains three (3) 3 in. by 5 in. perforated cards on each US-letter sheet. <texcode>\definepapersize[avery5388][height=76.2mm,width=127mm]\setuppapersize[avery5388][letter]\setuppaper [nx=1,ny=3]\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>
\unprotect
 
\installpagearrangement LEAFLET
{\dosetuparrangement\@@ppnx1{\numexpr\@@ppnx*2\relax}{\numexpr\@@ppnx+\plusone\relax}2%
\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
Just a example how to use XML to store and access information.
[Note: I will add In my example the MkIV version when I'm able content for the dictionary is stored in a buffer,to find use a external file for the data the file]commented lines for MkIIand MkIV are required.
<texcode>
<texcode>
\stopbuffer
</texcode>
 
This is the MkII code to process the data above.
<texcode>
\definesorting[lexiconentry][lexicon]
\starttext
\loaddata[lexicon]
\placelistoflexicon
\stoptext
</texcode>
 
In MkIV we have direct access to the data can process the content
without the previous step to save everything in macros.
 
<texcode>
\definesorting[lexiconentry][lexicon]
 
\setupsorting
[lexiconentry]
[criterium=all,
command=\placelexiconentry]
 
\startxmlsetups xml:lexicon
\xmlsetsetup{\xmldocument}{entry}{*}
\stopxmlsetups
 
\xmlregistersetup{xml:lexicon}
 
\startxmlsetups entry
\expanded{\lexiconentry[lexicon:\xmlatt{#1}{name}]{\xmlatt{#1}{name}}}
\setbox\scratchbox\hbox{\getvalue{lexicon:\xmlatt{#1}{name}}}
\stopxmlsetups
 
\definedescription
[lexicon]
[width=broad,
hang=1]
 
\def\placelexiconentry#1%
{\bgroup
\enableXML
\xmlfilter{lexicon:process}{/lexicon/entry[@name='#1']}
\egroup}
 
\defineXMLentities [tex] {tex} {\TeX}
\defineXMLentities [latex] {latex} {\LaTeX}
\defineXMLentities [context] {context} {\ConTeXt}
 
\defineXMLenvironment [entry]
{\defineXMLsave[name]
\defineXMLsave[description]}
{\startlexicon{\XMLflush{name}}
\XMLflush{description}
\stoplexicon}
 
\xmlprocessbuffer{lexicon:load}{lexicon}{}
 
\starttext
\xmlloadbuffer{lexicon:process}{lexicon}
\placelistoflexicon
\stoptext
5

edits