Hi Wolfgang, Thank you very much ; as usual your explanations are always clear and your approach to the problem intelligent and original. I would however like to know the way in which we can use the command \frameletter except for the rounded corners with outlinetext. For example, this doesn't work. \startMPcode draw outlinetext.f ("\frameletter{A}") (withcolor darkred withpen pencircle scaled 1/10) rotated 5 xsized 2cm ; \stopMPcode Fabrice Le lun. 20 avr. 2020 à 10:36, Wolfgang Schuster < wolfgang.schuster.lists@gmail.com> a écrit :
On Mon, Apr 20, 2020 at 09:21:41AM +0200, Wolfgang Schuster wrote:
Fabrice Couvreur schrieb am 19.04.2020 um 22:55:
Hi, I try to reproduce the figure as faithfully as possible. I tried for
Rudolf Bahr schrieb am 20.04.2020 um 10:23: the
rounded corners to put the key corner = round, but it does not work.
1. To create a new framed-instance you need \defineframe, \setupframed isn't enough to set the values.
I guess you assumed this works similar to xtables but this mechanism sets a few values to assure \setupxtable is enough in certain cases but even here you need \definextable in certain cases.
When you create a new instance you have to use the name of the new instance as command name, e.g. \frameletter or use the \placeframed command which takes the name as argument, e.g. \placeframed[frameletter].
2. You can't pass the name of a framed-instance to \framed (backwards compatibility, performance ...), this is only possible with \startframed.
3. ConTeXt uses different mechanism to draw rectangular (unless you draw a closed frame) and rounded frame and the mechanism for rounded frames doesn't work with outlinetext.
4. To achieve the desired result you can now a) use MetaPost to draw the complete card (letter plus frame) or b) use only TeX to put the letter in a frame and rotate it.
%%%% begin tex example \usecolors[svg]
\defineframed [frameletter] [width=1.25em, height=1.75em, foregroundstyle=\ssbfc, corner=round, radius=0.1\bodyfontsize, rulethickness=1pt]
\starttext
\startTEXpage[offset=\linewidth] \dontleavehmode \rotate [rotation=5] {\color[darkred] {\frameletter{A}}} \rotate [rotation=-5]{\color[green] {\frameletter{L}}} \rotate [rotation=5] {\color[mediumblue]{\frameletter{E}}} \rotate [rotation=-5]{\color[darkviolet]{\frameletter{A}}} \stopTEXpage
\stoptext %%%% end tex example
Wolfgang
Nice Example and good explanation, Wolfgang. But why did you use the command "dontleavehmode"? It doesn't seem to be necessary in this example.
I wrote the example without TeXpage where I needed \doneleavehmode to keep all cards on the same line. At the end I just added TeXpage to create a cropped image with with a small border and forgot to remove it.
Wolfgang
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
___________________________________________________________________________________