2011-11-04 13 views
12

Próbuję nakładać glify z różnych czcionek, ale trudno je ustawić. Jestem pewien, że powinni ustawić się lepiej niż to. Jak mogę to zrobić?Dlaczego glify nie są wyrównane, jeśli są w tej samej grafice?

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

Również jestem zainteresowany rysunek szkic - tutaj Wybrałem je, ale chciałbym, aby je wyciągnąć.

Screenshot

Edit: Dzięki! Dzięki Waszej pomocy udało mi się osiągnąć większość tego, co starałem się:

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

Odpowiedz

10

Domyślnie tekst jest wyśrodkowany (poziomo i pionowo) w punkcie, a czcionki mają znaki o różnych wysokościach, co powoduje przesunięcie tekstu. Na przykład porównać następujące elementy:

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

Jeśli umieścić tekst wzdłuż krawędzi, to może lepiej dla ciebie, chociaż jest to w żaden sposób zagwarantowane:

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

Edytuj Używanie Baseline sugerowane przez Heike:

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

+9

Korzystanie 'Baseline' zamiast' Bottom' na przesunięcie w kierunku pionowym może nawet lepiej. – Heike

+0

@Heike Dobry punkt, zwłaszcza, że ​​ustawienie to jest zaniżone. (Szukałem tego trochę, zanim odpowiedziałem, ale nie znalazłem go w dokumentach "Text".) –

+0

Istnieje przykład użycia tego ustawienia w dokumentacji 'BaseLine'. – Heike

4

Odnośnie pierwszego pytania, witamy w świecie różnych czcionek. Mają różne wskaźniki i tak właśnie jest. Możesz użyć Overlay lub jednej z opcji graficznych, takich jak ImagePadding, aby przesunąć jeden nad drugim.

W drugim pytaniu drugi "czysty przykład" w documentation on JoinedCurve pokazuje, jak to zrobić, używając ExportString i ImportString.

Powiązane problemy