Thanks, this indeed produces a square more akin to boxtimes in Cambria. But the 
situation seems even worse than I thought. Under the 40pt fontsize it is 
apparent that lucidaot's square has a thinner outline then boxtimes. Of the 
three fonts I tried (cambria, lmodern, lucidaot) it seems lmodern is the only 
one doing it right.

Hans van der Meer



On 1 May 2013, at 12:17 AM, Sietse Brouwer <sbbrou...@gmail.com>
 wrote:

> Hello Hans,
> 
> The bad news: I think it's the font. The good news: here comes
> MetaPost to the rescue!
> 
> I don't have Cambria, so I plucked a cambria.ttf file off the Internet
> somewhere, which contains both Cambria and Cambria Math. I don't know
> whether you have the same file/version, so YMMV, but it does exhibit
> the problem you describe.
> 
> According to the lovely and free FontForge,
> * the WHITE SQUARE glyph (U+25A1) is 1060 units high
> * the SQUARED PLUS glyph (U+229E) is 1630 units high (of which 230
> below the baseline).
> 
> This is in Cambria Math — Cambria does does not have either of these
> glyphs. I suspect the square size is a design decision: that the
> designers decided they wanted the white square to match the letters
> rather than the 'squared *' operators.
> 
> Anyway, here's a very close MetaPost approximation of the 'squared
> plus' square, made by looking in with FontForge and copying the glyph
> dimensions. (And then tweaking them because some things still didn't
> look right; didn't manage to fix everything, alas.) It scales with the
> font size.
> 
> Cheers,
> Sietse
> 
> \setuppapersize[A7][A7]
> \setuppagenumber[state=stop]
> \setupbodyfont[cambria,40pt]
> 
> \showframe
> \showgrid
> 
> \startuseMPgraphic{square}
>    numeric u, strokewd, strokeht, sqwd, sqht;
>    u        := BodyFontSize / 2083;
>    strokewd := 128u;
>    strokeht := 123u;
>    sqwd     := 1506u;
>    sqht     := 1533u;
>    offset   := 200u;
>    pickup pensquare xscaled strokewd yscaled strokeht;
>    draw unitsquare xscaled sqwd yscaled sqht;
> 
>    setbounds currentpicture to
>        boundingbox currentpicture
>        leftenlarged offset rightenlarged offset;
> \stopuseMPgraphic
> 
> \def\mysquare{%
>    \lower \dimexpr \bodyfontsize / 2083 * 234
> \relax\hbox{\useMPgraphic{square}}%
> }
> 
> %%%% try it out %%%%
> 
> \starttext
> 
> $\square+\mysquare\boxplus$ \crlf
> $\mysquare\boxplus$
> 
> \page[yes]
> 
> $+ \ruledhbox{\boxplus}$  \crlf
> $+ \ruledhbox{\mysquare}$ \crlf
> $\ruledhbox{\boxplus}$  \crlf
> $\ruledhbox{\mysquare}$
> 
> \stoptext
> ___________________________________________________________________________________
> 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://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________

___________________________________________________________________________________
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to