CD Booklet
Beware: This page is very old, code might not work any more.
On this page I will describe the lessons learned while setting a CD booklet.
Contents
Fit a text into a box
Float text around a picture inside a layer
Floating Text around a picture inside any vbox environment is not possible and so the next two examples show text that runs through the graphical element.
The variant with a simple framedtext
\startbuffer[text] \placefigure[left,none]{}{\framed[height=1cm]{graphic}}% \input tufte \stopbuffer \starttext \startstandardmakeup \startframedtext[width=0.8\textwidth] \getbuffer[text] \stopframedtext \stopstandardmakeup \stoptext
And the variant with layers:
\definelayer[test] [width=\paperwidth,height=\paperheight] \startbuffer[text] \placefigure[left,none]{}{\framed[height=1cm]{graphic}}% \input tufte \stopbuffer \setlayerframed[test] [preset=middle] [width=0.6\textwidth,align=normal] {\getbuffer[text]} \setupbackgrounds[page][background=test] \starttext \startstandardmakeup \stopstandardmakeup \stoptext
But as always with ConTeXt: Hans to the rescue! He has just some time before my trials made a nice macro available in cont-new.tex with the adequate name \starthangaround. With this macro it is quite easy to float the text around the graphic. You only has to change the buffer-code:
% MkII code! Doesn’t work any more. \startbuffer[text] \starthangaround{\framed[height=1cm]{graphic}}% \input tufte \stophangaround \stopbuffer
Use Delicious OTF font with luatex / mkiv
Get the typescript for the Delicious fonts: Exljbris typescript#Delicious
Then type:
\usetypescript[delicious] \setupbodyfont[delicious,ss,10pt]
Protrusion with mkiv
Pages with layers only
When using ConTeXt for designing some work that is not primarily focused on continuous text, it is most likely that your pages are composed of different layers only and don't contain any normal text. Only defining the layers and filling them with your content is not enough to make them appear on the page. So this easy approach doesn't work:
\definelayer[test] [width=\paperwidth,height=\paperheight] \setlayerframed[test] [preset=middle] [width=0.6\textwidth,align=normal] {\input tufte } \setupbackgrounds[page][background=test] \starttext \stoptext
We expect the frame with tufte just in the middle of the page. With \setupbackgrounds we have positioned our layer. But no output is generated since the OTR (Output Routine) is invoked. And because there is no content on the page (and the background is no content) an empty page will be generated.
There are some possibilities to invoke the OTR. Inside \starttext \stoptext
call one of the following:
\page[empty]
\startstandardmakeup \stopstandardmakeup
If you haven't defined you own pagelayout, the following invocations of the OTR just use the standard layout that has a pagenumber in the headerline
\dontleavehmode
\null
The last alternative is just to use
\flushlayer[test]
(You can discard the background definition then) But this places the layer relative to the textarea and not as intended to the pagearea.