Подтвердить что ты не робот

Почему глифы не выравниваются, если они находятся в одной графике?

Я пытаюсь наложить глифы из разных шрифтов, но трудно заставить их выстраиваться в линию. Я уверен, что они должны выстраиваться лучше, чем это. Как я могу это сделать?

Graphics[
   {Opacity[0.1],
      {Text[Style["a", FontFamily -> "Helvetica", 240]],
       Text[Style["a", FontFamily -> "Arial", 240]]}
   }]

Кроме того, мне интересно рисовать контур - здесь я их выбрал, но хотел бы нарисовать их.

Screenshot

Изменить: Спасибо! С вашей помощью я смог добиться большей части того, что я пытался:

Manipulate[
 Graphics[{{{Opacity[opacity], 
     Text[Style["Greats", Red, FontFamily -> "Helvetica",  180], {0, 
       0}, {Center, Baseline}]}, {Opacity[1 - opacity], 
     Text[Style["Greats", Blue, FontFamily -> "Arial", 180],  {0, 
       0}, {Center, Baseline}]}}}], {opacity, 0.1, 1, 0.1}]

Screenshot

4b9b3361

Ответ 1

По умолчанию текст центрируется (по горизонтали и вертикали) в точке, а шрифты имеют символы разной высоты, что приводит к сдвинутому тексту. Например, сравните следующее:

Graphics[{Opacity[
   0.1], {Text[
    Style["agÄ", FontFamily -> "Helvetica", 240, 
     Background -> RGBColor[0.8, 0, 0, 0.2]]], 
   Text[Style["agÄ", FontFamily -> "Arial", 240, 
     Background -> RGBColor[0, 0, 0.8, 0.2]]]}
  }]
Graphics[{Opacity[
   0.1], {Text[
    Style["agA", FontFamily -> "Helvetica", 240, 
     Background -> RGBColor[0.8, 0, 0, 0.2]]], 
   Text[Style["agA", FontFamily -> "Arial", 240, 
     Background -> RGBColor[0, 0, 0.8, 0.2]]]}
  }]

enter image description here

Если вы разместите текст вдоль края, он может работать лучше для вас, хотя он ни в коем случае не гарантируется:

Graphics[{Opacity[
   0.1], {Text[
    Style["a", FontFamily -> "Helvetica", 240], {0, 0}, {Center, 
     Bottom}], 
   Text[Style["a", FontFamily -> "Arial", 240], {0, 0}, {Center, 
     Bottom}]}}]

enter image description here

Edit Используя Baseline, как было предложено Хайке:

Graphics[{Opacity[
   0.1], {Text[
    Style["a", FontFamily -> "Helvetica", 240], {0, 0}, {Center, 
     Baseline}], 
   Text[Style["a", FontFamily -> "Arial", 240], {0, 0}, {Center, 
     Baseline}]}}]

enter image description here

Ответ 2

Относительно вашего первого вопроса, добро пожаловать в мир разных шрифтов. У них разные показатели, и именно так оно и есть. Вы можете использовать Overlay или один из графических параметров, таких как ImagePadding, чтобы переложить один на другой.

Во втором вопросе второй "опрятный пример" в документации на JoinedCurve показывает, как это сделать, используя ExportString и ImportString.