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 ___________________________________________________________________________________