Hello, I'm preparing a child copybook. I'd like to write a uppercased letter "as is" followed by its shape drawn with dots - something like /\ . / \ . . /____\ ..... / \ . . I guess that some MP "trick(s)" might be used; also, a "simple" font should be used to be drawn dotted, which uses "single drawings" to draw each line of the character. Could anybody help with such (MP) code? Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Hi Lukáš,
On 16 Aug 2016, at 09:17, Procházka Lukáš Ing.
wrote: Hello,
I'm preparing a child copybook. I'd like to write a uppercased letter "as is" followed by its shape drawn with dots - something like
/\ . / \ . . /____\ ..... / \ . .
I guess that some MP "trick(s)" might be used; also, a "simple" font should be used to be drawn dotted, which uses "single drawings" to draw each line of the character.
Most anything can be programmed, but in this case the task is very difficult. Modern fonts always use filled paths instead of stroke lines, so an “A” consists of two paths: the outer shape and the middle triange are separate: _ / \ / \ /\ / _ \ /__\ /_/ \_\ there is no easy way to convert that into a dotted line that matches the ‘black parts’ of the glyph shape. Perhaps you could use two regular fonts: one sans-serif and one with dotted lines? There are some free fonts with dotted lines that can be found on the web, e.g. here: http://www.fontspace.com/category/dotted-line Another option would be draw the ‘normal’ uppercase letter directly as a metapost path. In that case it would be rather simple to create a generic dotted path from that using ‘setdash’. However, without manual work, it will not look as good as pre-drawn font, because for a ‘nice’ dotted path you need to make sure that the dots in the crossbar of an ‘A’ line up nicely with the dots in the diagonal outer strokes, which is quite hard to do. Best wishes, Taco Taco Hoekwater Elvenkind BV
On 8/16/2016 9:43 AM, Taco Hoekwater wrote:
Hi Lukáš,
On 16 Aug 2016, at 09:17, Procházka Lukáš Ing.
mailto:LPr@pontex.cz> wrote: Hello,
I'm preparing a child copybook. I'd like to write a uppercased letter "as is" followed by its shape drawn with dots - something like
/\ . / \ . . /____\ ..... / \ . .
I guess that some MP "trick(s)" might be used; also, a "simple" font should be used to be drawn dotted, which uses "single drawings" to draw each line of the character.
Most anything can be programmed, but in this case the task is very difficult.
Modern fonts always use filled paths instead of stroke lines, so an “A” consists of two paths: the outer shape and the middle triange are separate: _ / \ / \ /\ / _ \ /__\ /_/ \_\
there is no easy way to convert that into a dotted line that matches the ‘black parts’ of the glyph shape. Perhaps you could use two regular fonts: one sans-serif and one with dotted lines? There are some free fonts with dotted lines that can be found on the web, e.g. here: http://www.fontspace.com/category/dotted-line
Another option would be draw the ‘normal’ uppercase letter directly as a metapost path. In that case it would be rather simple to create a generic dotted path from that using ‘setdash’. However, without manual work, it will not look as good as pre-drawn font, because for a ‘nice’ dotted path you need to make sure that the dots in the crossbar of an ‘A’ line up nicely with the dots in the diagonal outer strokes, which is quite hard to do.
the best one can expect without too much work is \startMPpage draw outlinetext.f ("A") () ; currentpicture := currentpicture shifted (-bbwidth currentpicture,0) ; draw outlinetext.d ("A") (withpen pencircle scaled 1/10 dashed withdots scaled 1/20) ; \stopMPpage see attached ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hello Hans,
On Tue, 16 Aug 2016 09:54:26 +0200, Hans Hagen
the best one can expect without too much work is
\startMPpage draw outlinetext.f ("A") () ; currentpicture := currentpicture shifted (-bbwidth currentpicture,0) ; draw outlinetext.d ("A") (withpen pencircle scaled 1/10 dashed withdots scaled 1/20) ; \stopMPpage
see attached
thanks for the code; I'll try Taco's way first, maybe later the MP code. Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Hello Taco,
On Tue, 16 Aug 2016 09:43:12 +0200, Taco Hoekwater
Hi Lukáš,
Most anything can be programmed, but in this case the task is very difficult.
Modern fonts always use filled paths instead of stroke lines, so an “A” consists of two paths: the outer shape and the middle triange are separate: _ / \ / \ /\ / _ \ /__\ /_/ \_\
yes, I was aware of that, that's why I mentioned a "single-drawings-character".
there is no easy way to convert that into a dotted line that matches the ‘black parts’ of the glyph shape. Perhaps you could use two regular fonts: one sans-serif and one with dotted lines? There are some free fonts with dotted lines that can be found on the web, e.g. here: http://www.fontspace.com/category/dotted-line
Great, it seems that "Trace Font for Kids" http://www.fontspace.com/p-j-cassel/trace-font-for-kids would be exactly what I need.
Another option would be draw the ‘normal’ uppercase letter directly as a metapost path.
Yes, I thought so.
In that case it would be rather simple to create a generic dotted path from that using ‘setdash’. However, without manual work, it will not look as good as pre-drawn font, because for a ‘nice’ dotted path you need to make sure that the dots in the crossbar of an ‘A’ line up nicely with the dots in the diagonal outer strokes, which is quite hard to do.
OK, thanks for you response - I'll try Trace Font for Kids first. Best regards, Lukas
Best wishes, Taco
Taco Hoekwater Elvenkind BV
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Hello again,
the dotted font works perfectly.
I'm using Lua to generate sheets from a database which contains word-picture-picture2 records (see attached single page sample; I had to convert the image to .jpg to reduce file size).
One more question - is there a ConTeXt/Lua function which would assign a non-diacritical-character to that with diacritics, like:
Á => A
Š => S
Ý => Y etc.?
I'm asking as the "Trace Font for Kids" doesn't contain characters with diacritics...
Simple Lua table would do the job, like
----
remove_dia_czech =
{ ["é"] = "e",
["š"] = "s",
...
}
----
But string pattern in Lua with cp1250/UTF-8 might not be so easy as Lua pattern "." matches single char (or - better - one byte - I guess), so with UTF-8, chars with diacritics need more bytes; so the code
----
str = ("Řetězec with diacritics"):gsub(".", remove_dia_czech)
----
probably won't work.
And Ctx Lua could have a mechanism already...
Best regards,
Lukas
On Tue, 16 Aug 2016 09:43:12 +0200, Taco Hoekwater
there is no easy way to convert that into a dotted line that matches the ‘black parts’ of the glyph shape. Perhaps you could use two regular fonts: one sans-serif and one with dotted lines? There are some free fonts with dotted lines that can be found on the web, e.g. here: http://www.fontspace.com/category/dotted-line
Best wishes, Taco
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 (+420 720 951 172) Fax: +420 244 461 038
Lukáš Procházka mailto:LPr@pontex.cz 20. August 2016 um 14:03 Hello again,
the dotted font works perfectly.
I'm using Lua to generate sheets from a database which contains word-picture-picture2 records (see attached single page sample; I had to convert the image to .jpg to reduce file size).
One more question - is there a ConTeXt/Lua function which would assign a non-diacritical-character to that with diacritics, like:
Á => A Š => S Ý => Y etc.?
I'm asking as the "Trace Font for Kids" doesn't contain characters with diacritics...
Simple Lua table would do the job, like
---- remove_dia_czech = { ["é"] = "e", ["š"] = "s", ... } ----
But string pattern in Lua with cp1250/UTF-8 might not be so easy as Lua pattern "." matches single char (or - better - one byte - I guess), so with UTF-8, chars with diacritics need more bytes; so the code
---- str = ("Řetězec with diacritics"):gsub(".", remove_dia_czech) ----
probably won't work.
And Ctx Lua could have a mechanism already... You can use the “characters.shaped” function which is described in cld-mkiv.pdf at page 87 and 119.
\starttext Řetězec = \cldcontext{characters.shaped("Řetězec")} \stoptext Wolfgang
participants (5)
-
Hans Hagen
-
Lukáš Procházka
-
Procházka Lukáš Ing.
-
Taco Hoekwater
-
Wolfgang Schuster