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
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 ___________________________________________________________________________________