Changes

Jump to navigation Jump to search
6,466 bytes added ,  20:26, 20 March 2016
m
Fixing a typo.
< [[Visuals]] |
 
 
{{todo|the page devoted to all kinds of framed stuff}}
= How to achieve specific results =
== Preventing hyphenation ==
One can prevent hyphenation inside a frame by passing <{{code>|1=nothypenated</code> }} option to <{{code>|1=align</code>}}. It is also a good idea to add <{{code>|1=verytolerant</code> }} and <code>strectch</{{code> |1=stretch}} options.
<context source="yes">
\setuppapersize[A5]\startcombination[2*12]
{\framed
[width=5cm,
align={flushleft,nothyphenated,verytolerant}] % maybe also stretch
{\input ward \endgraf}}
{flushleft,\crlf nothypenatednothyphenated, \crlf verytolerant}{\framed [width=5cm, align={flushright,nothyphenated,verytolerant}] % maybe also stretch {\input ward \endgraf}}{flushright,\crlf nothyphenated, \crlf verytolerant}{\framed [width=5cm, align={width,nothyphenated,verytolerant}] % maybe also stretch {\input ward \endgraf}}{width,\crlf nothyphenated, \crlf verytolerant}
\stopcombination
</context>
== Specify the width no longer than needed ==
I want to specify the maximum width of a frame. If the size of the box is smaller than the maximum width, I want a tight box. This can be done using the <{{code>|1=autowidth=force</code> }} option to framed.
<context source="yes">
\setuppapersize[A5]
\defineframed
[tightframed][width=5cm,autowidth=force,align=middle]
== Ruled Frames ==
<{{cmd>|framed</cmd> }} allows you to specify specific edges to be ruled.As an alternative to <{{code>|1=frame=on</code> }} (the default), one can specify<{{code>|1=topframe=on</code>}}, etc.
Note that, as the default is to draw a complete frame,
it is necessary to either specify the state (on/off) for all four edges
or include the keyword <{{code>|1=frame=off</code>}}.
<context source="yes">
\setuppapersize[A5]
\framed[frame=off,topframe=on,leftframe=on]{A fancy title}
</context>
The thickness of the frame rule can be specified using <{{code>|1=rulethickness=</code>}}
<context source="yes">
\setuppapersize[A5]
\framed[frame=off,leftframe=on,rulethickness=2pt]{\tfa\bf A fancy title}
</context>
== Rounded Corners ==
<{{cmd>|framed</cmd> }} allows you to have round corners with <{{code>|1=corner=round</code>}}. There are also other possibilities if you want round corners but not at all places by giving an appropriate number to <{{code>|1=corner=...</code>}}. This example is taken from [[source:core-rul.tex | core-rul.tex]] and each frame is typeset using
<texcode>
<context>
\setuppapersize[A5]
\dontleavehmode\framed
[corner=0,frame=on,
{\tttf corner=\twodigits\recurselevel}%
\quad}
 
</context>
== Coloring frame background and framed text ==
First you have to turn on colors with <{{cmd>|setupcolors</cmd><tt>|2=[state=start]</tt>}}. Then you can define the background and foreground (=text) colors:
<texcode>\framed[background=color,backgroundcolor=....,foreground=color,foregroundcolor=...]{...}</texcode>
If you want to make the frame itself disappear, add a <tt>{{code|1=frame=off</tt> }} to the setups.
{||<context>
\setupcolors[state=start]
\framed
{\ssx \bf Bold white on dark blue}
</context>
|<texcode>\setupcolors[state=start]\framed [background=color,backgroundcolor=darkblue, foreground=color,foregroundcolor=white] {\ssx \bf Bold white on dark blue}</texcode>|-|<context>
\setupcolors[state=start]
\framed
{\tfx Who needs highlighter pens, anyway?}
</context>
 For filling frames with offset you have to add options |<codetexcode>frameoffset\framed [background=...color, backgroundoffsetbackgroundcolor=...yellow, frame=off] {\tfx Who needs highlighter pens, anyway?}</codetexcode>|-|<context>
\setupcolors[state=start]
\framed
[frame=on, corner=0, frameoffset=10pt, framecolor=black,background=color, backgroundcolor=darkgreen, backgroundoffset=10pt, foreground=color,foregroundcolor=white]
{\tfxx \bf Rounded corners with offset}
</context>
|For filling frames with offset you have to add options {{code|1=frameoffset=..., backgroundoffset=...}}
<texcode>
\framed
[frame=on, corner=0, frameoffset=10pt,
framecolor=black,background=color,
backgroundcolor=darkgreen, backgroundoffset=10pt,
foreground=color,foregroundcolor=white]
{\tfxx \bf Rounded corners with offset}
</texcode>
|}
See the [[ColorsColor]] section article for more information on available colors and color usage.
== Shaded background for part of a displayed equation ==
To highlight part of a formula, you can give it a gray background using <{{cmd>framed</cmd>|mframed}}:
<context source="yes">
\setuppapersize[A5]
\setupcolors[state=start]
\def\graymath{\mframed[frame=off,
</context>
The <cmd>{{code|,</cmd> }} add a tiny bit of space to prevent the gray background from crowding the equals and plus sign. == Inline Frames == The command {{cmd|inframed}}, similar to {{cmd|framed}},differs in the definition of the baseline: <context source="yes">\setuppapersize[A5]\framed[frame=off,width=10em,align=flushleft]{%Notice the difference between\framed{framed} and \inframed{inframed},especially considering its effect on linespacing...}</context> == Dotted Frames == Using MetaPost: <texcode>\startuniqueMPgraphic{Label}path p; p := (0,0) -- (OverlayWidth,0) -- (OverlayWidth, OverlayHeight) -- (0, OverlayHeight) -- (0,0);draw p withpen pencircle scaled 1pt dashed withdots;setbounds currentpicture to boundingbox OverlayBox;\stopuniqueMPgraphic\defineoverlay[Label][\useMPgraphic{Label}]\def\DotPicture#1#2#3%{% \placefigure[][#3]{#2}% {% \framed[align={flushleft, low},% frame=off,% height=3in,% width=broad]% {% \externalfigure[#1]% [width=3in,% background=Label,% backgroundoffset=1ex]% }% }%}%\def\DotText#1%{% \framed[frame=off,% background=Label,% location=low]% {% #1 }%}%\starttext \DotPicture{sample/cow.pdf}{All your base are belong to us}{SampleRef}% AAA \DotText{BBB} CCC \DotText{DDD}\stoptext</texcode>[[File:dotted_frame_mpost.png|650px]] Using TikZ: <context source="yes">\setuppapersize[A5]\usemodule[tikz]%\tikzstyle{block}=[rectangle,draw=black,text centered,style=dotted,inner sep=0pt]\def\Picture#1#2#3%{ \placefigure[left][#3]{#2}% {% \tikzpicture% \node[block](init){\externalfigure[#1][width=3in]};% \endtikzpicture% }%}%\starttext\Picture{sample/cow.pdf}{All your base are belong to us}{SampleRef}\stoptext</context> = Width broad and local =Sometimes {{code|1=width}} must be adapted to a "local" {{code|1=\hsize }}(the actual text area used by TeX to determine line breaks).For example:<context source='yes'>\setuppapersize[A5]\setuppapersize[A7,landscape][A7,landscape]\setupbodyfont[8pt,ss]\starttext\framed[width=broad]{}\startnarrower[left]\framed[width=broad]{}\dontleavehmode\framed[width=broad]{}\dontleavehmode\framed[width=local]{}\stopnarrower\blank\hsize.5\hsize\framed[width=broad]{}\startnarrower[left]\framed[width=broad]{}\dontleavehmode\framed[width=broad]{}\dontleavehmode\framed[width=local]{}\stopnarrower\stoptext</context> Here we use {{code|1=\setlocalhsize}} after {{code|1=\startitemize}} to setup the localhsize:<context source="yes">\setuppapersize[A5]\setuppapersize[A7,landscape][A7,landscape]\setupbodyfont[8pt,ss]\setupcolors[state=start]\setupframed[framecolor=blue]\showframe\starttext\framed[width=\hsize,align=middle]{width=hsize}\startitemize\setlocalhsize\item \framed[width=\hsize,align=middle] {width=hsize}\item \framed[width=broad,align=middle] {width=broad}\item \framed[width=local,align=middle] {width=local}\stopitemize\stoptext</context> =Spacing between frame and text= {{cmd|framed}} comes with two different types of offsets:one for the frame itself and another for the its content.The parameters {{code|1=frameoffset}} and {{code|1=backgroundoffset}}were already explained above in the section [[#Coloring frame background and framed text]]. In addition, the parameter [strut=no] allows removal of the initial strut when framing text that is [[Verbatim with line breaks]]. ==Content offsets==Beyond those there is another four dimensions that enable you to control the safety distance of a {{cmd|framed}}’s content by orientation.Horizontally, {{code|1=loffset}} governs the left, {{code|1=roffset}} the rightoffset;the same goes for {{code|1=boffset}} for the bottom and {{code|1=toffset}} for the top distance.Their effects are explored in the following example (MkIV only). ==Example==<texcode>\def\offsetframe[#1]{%{\framed[ #1=1em, align=normal, width=5.3cm, height=5.3cm, ]{\tfx\input ward }}{\it#1}} \starttext\startcombination[2*2]\offsetframe[loffset]\offsetframe[roffset]\offsetframe[toffset]\offsetframe[boffset]\stopcombination\stoptext</texcode> ==More offset parameters==Also, you can set up <nowiki>offset</nowiki>, which sets up all the <nowiki>[lrtb]offset</nowiki> parameters. Here's a method to define a new parameter, call it <nowiki>hoffset</nowiki>, which sets up <nowiki>[lr]offset</nowiki> at the same time:<texcode>\setupframed [loffset=\framedparameter{hoffset}, roffset=\framedparameter{hoffset}, hoffset=\zeropoint]</texcode> = Location parameter = <context source="yes">\ruledhbox {A \framed[width=2cm,align=middle,location=hanging]{location\\equals\\hanging} \framed[width=2cm,align=middle,location=depth] {location\\equals\\depth} \framed[width=2cm,align=middle,location=height] {location\\equals\\height} B}\vskip2cm\ruledhbox {A \framed[width=2cm,align=middle,location=low] {location\\equals\\low} \framed[width=2cm,align=middle,location=line] {location\\equals\\line} \framed[width=2cm,align=middle,location=high] {location\\equals\\high} B}\vskip2cm\ruledhbox {A \framed[width=2cm,align=middle,location=top] {location\\equals\\top} \framed[width=2cm,align=middle,location=bottom] {location\\equals\\bottom} \framed[width=2cm,align=middle,location=lohi] {location\\equals\\lohi} \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle} B}</context>
= Similar topics =
* [[Overlays]]
* [[Tables Overview]]
 
= See also =
* [[:Category:Command/Frames]]

Navigation menu