Changes

Jump to navigation Jump to search
warning about clipping
7ZMb3j You can use the commands for text, but also for graphics or other “building blocks”. =Scaling= The {{cmd|scale}} command is all-purpose, you can scale by factors or to a defined size. As a special case, you can insert symbols at a reduced size in the text flow using {{cmd|getscaledglyph}}. <context source=yes>\getscaledglyph{.5}{Serif}{a} a \getscaledglyph{2}{Serif}{a}</context>  = Mirroring =<context source=yes>There is a \mirror{\sl mirorred} {\sl word} in this sentence.</context> {{cmd|mirror}} makes a <code>\hbox</code> and mirrors the contents. If you want to have a longer paragraph mirrored, you have to make a href<code>\vbox</code> manually. <context source="httpyes>\mirror{\vbox{Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do:once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, \quote{and what is the use of a book,} thought Alice \quote{without pictures or conversation?}}}</context> = Rotating = You can {{cmd|rotate}} something by an arbitrary angle like  <context source=yes>\rotate[rotation=42]{the ultimate answer}</context> The rotation angle and the location (which determines around which point the content is rotated) are optional and can also be set by <context source=yes>\setuprotate[rotation=42,location=normal] % normal is the default\rotate{the ultimate answer}</context> <context source=yes>\ss Next generation L\rotate{m}\rotate{m}TSP\mirror{3}Al\rotate[rotation=270,location=high]{v}?</context> You can rotate a long paragraph as well. ==Location parameter== The influence of <code>location=</gmipfkeiexfacode> at different angles: <context source=yes>\dostepwiserecurse{0}{359}{45} {\startlinecorrection[blank] \hbox {\expanded{\setuprotate[rotation=\recurselevel]}% \traceboxplacementtrue \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=depth] {\ruledhbox{\bfb (depth)}}}}% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=fit] {\ruledhbox{\bfb (fit)}}}}% \hbox to .com2\hsize{\hss\ruledhbox{\rotate[location=broad] {\ruledhbox{\bfb (broad)}}}}% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=normal]{\ruledhbox{\bfb (normal)}}}}% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=high] {\ruledhbox{\bfb (high)}}}}} \stoplinecorrection}</context> === Rotating Figures === The following code shows how the location parameter influences rotation with a frame: <texcode>\setupbodyfont[sans, 30pt]\setuppagenumbering[location=,]\showframe \starttext \topskip4cm \dostepwiserecurse{0}{360}{10}{\doloopoverlist{normal,default,depth,fit,broad,high,middle}{\ruledhbox{\rotate[rotation=\recurselevel, location=\recursestring]{%\framed [width=\textheight, height=\textwidth, rulethickness=5pt, depth=0cm, foregroundstyle=\bfd] {\recursestring, \recurselevel°} } } }}\stoptext</texcode> or, even nicer: <context source="yes">gmipfkeiexfa\useMPlibrary[dum]\setupexternalfigures[width=4em,height=3em,frame=on,]\dostepwiserecurse{0}{359}{45}{{\bf\recurselevel˚}\quad \doloopoverlist{normal,depth,fit,broad,high,middle}{ \dontleavehmode\ruledhbox{% \rotate[rotation=\recurselevel, location=\recursestring]{% \externalfigure[\recursestring] }% }% }\par}</context> ==In a box== Depending on the usage you will sometimes probably want to include the content of what you wish to rotate into a box. Compare the following two examples: <context source=yes>\setuplayout[width=3cm]\setuprotate[rotation=180,location=broad] a\rotate{e}i\para\rotate{\hbox{e}}i</context==Page dependent landscape figures== Sometimes, in a double-sided portrait document, you may wish to rotate a landscape figure so that the top is towards the spine of the book – no matter whether it’s on an odd or even page. In this case the {{cmd|doifoddpageelse}} command can help: <texcode>\rotate[urlrotation=\doifoddpageelse{90}{270}]{\externalfigure[cow]}</texcode> This example is by Wolfgang, from [http://lfjthrodjmklwww.ntg.nl/pipermail/ntg-context/2011/059834.html the thread starting here]. The thread contains other solutions to the problem. =Clipping= You can adjust the size of an element by cropping/clipping its borders:<ref>Please, don’t forget that clipping only displays a part of an image. At least when this comes from a PDF document, the whole page has to be included, although only part of it is displayed.<br/>The PDF output from the following sample contains <code>hans hagen, pragma ade</code>. Depending on your PDF viewer, you may be able to search for it.<br/>Of course, you will have to compile the source yourself, since the wiki will only contains PNG images from compilations.  <context source="yes">\setuppapersize[A5, landscape]\setuplayout[page]\starttext\clip[nx=3,ny=3,x=1,y=1]{\externalfigure[xml-mkiv.compdf]}\stoptext</context></ref> <context source="yes">\clip[nx=3,ny=3,x=1,y=1]lfjthrodjmkl{\externalfigure[cow]}</urlcontext> <context source="yes">\definedfont[SansBold at 20mm]\baselineskip 0pt % switch off the space between the stripes\lineskip 0pt\def\MyLogo{\vbox{\hbox{\CONTEXT}\null}} % null is necessary for the whole bounding box\clip[ny=3,y=1]{\color[yellow]{\MyLogo}}\clip[ny=3,y=2]{\color[orange]{\MyLogo}}\clip[ny=3,y=3]{\color[red]{\MyLogo}}</context> And here’s how to cut out a piece by measures (see also {{cmd|setupclipping}} and {{cmd|clip}}): <context source="yes">\clip[width=3cm, height=1cm, hoffset=1cm, voffset=5mm]{\externalfigure[cow][linkwidth=5cm]}</context>  =httpFurther reading= Graphic transformations are implemented in [https://stzyvhpmzaeasource.comcontextgarden.net/tex/context/base/mkiv/grph-trf.mkiv grph-trf.mkiv]stzyvhpmzaeaand [/link], httphttps://wekypunzqwzksource.comcontextgarden.net/tex/context/base/mkiv/grph-trf.lua grph-trf.lua]. =Footnotes= [[Category:Basics]][[Category:Graphics]]
139

edits

Navigation menu