Hallo,
Ich arbeite seit Tagen an ein Matrix Script und komme an paar Dinge nicht weiter.
Ding Nummer 1 ist dies.
Mein Test Matrix Ist an der Front 19 hoch und 115 Dots Breit.
Zur Veranschaulichung habe ich paar Bitmaps erstellt.
In der 1. Zeile soll mit *B im Hof-Datei den Font 10x6 nehmen. Wird *B nicht gesetzt, so soll der Standard Font 7x6 benutzt werden.
Soweit klappt es auch. Nur das Problem ist, wenn der größere Font benutzt wird, ist der obere Text nicht mehr zentriert.
Es wird zwar das *B entfernt, aber auf der Matrix sieht es aus, als wäre es vorhanden nur in Unsichtbar. (* ist 3 Dot Breit und das B ist 6 Dot Breit)
Scriptmäßig ist es so aufgebaut.
l4 {if}
...
{else}
(L.$.Matrix_TerminusL1) $d 2 $SetLengthR "*B" $=
{if}
0 s2
6 s7
(L.$.Matrix_TerminusL1) (L.L.Font_10x6) s0 (M.V.TextLength) s1
2 $cutEnd (S.$.Matrix_TerminusL1)
{else}
1 s2
6 s7
(L.$.Matrix_TerminusL1) (L.L.Font_7x6) s0 (M.V.TextLength) s1
{endif}
l3 >
{if}
0 s2
5 s7
(L.$.Matrix_TerminusL1) (L.L.Font_7x5) s0 (M.V.TextLength) s1
l3 >
{if}
0 s2
4 s7
(L.$.Matrix_TerminusL1) (L.L.Font_7x4) s0 (M.V.TextLength) s1
{endif}
{endif}
{endif}
Alles anzeigen
Wie müsste ich es abändern, das der Text trotzdem Zentriert wird?
Bei meinem 2. Dingsbums geht es darum., bei bestimmte Zeichen die Schrift um 1 Dot nach Oben zu setzen.
Es soll bei bestimmte Zeichen wie g, y, p oder q passieren.
Wenn die oben aufgeführten Zeichen nicht im Text vorhanden sind, dann soll der Text an den unteren Rand anliegen (s. Abb.-3)
Sobald aber mindestens eins von dem oben genannten Zeichen im Text vorhanden ist, dann soll die Zeile um 1 Dot nach oben gesetzt werden (siehe Abb.-2).
Da war mein Lösung gewesen bei den churaKrueger abzuschauen. Diese Funktion hat er aber nur für das Einzeilige Ziel. Dies funktioniert auch. Nur ich kriege es nicht für die 2. Zeile bearbeitet.
Das habe ich unter den Abschnitt 'Wenn nur die untere Zeile beschrieben ist, dann diese nach oben und untere leeren: eingefügt.
(L.$.Matrix_TerminusL1) "" $=
{if}
(L.$.Matrix_TerminusL1) (M.L.Matrix_HasDescenderCE) (S.L.Matrix_L1HasDescenderCE)
{else}
(L.$.Matrix_TerminusL2) (M.L.Matrix_HasDescenderCE) (S.L.Matrix_L2HasDescenderCE)
{endif}
Dementsprechend habe ich auch die Zeichenfolge angepasst. Testweise wurde nur das Font 7x6 genutzt.
'3.C.1 Bestimmen des Fonts der Zeile 2 des Ziels (l0/l1):
l4 ! {if}
6 s7
0 (L.L.Matrix_L2HasDescenderCE) + s2
(L.$.Matrix_TerminusL2) (L.L.Font_7x6) s0 (M.V.TextLength) s1
l3 >
{if}
5 s7
(L.$.Matrix_TerminusL2) (L.L.Font_7x5) s0 (M.V.TextLength) s1
l3 >
{if}
4 s7
(L.$.Matrix_TerminusL2) (L.L.Font_7x4) s0 (M.V.TextLength) s1
{endif}
{endif}
Alles anzeigen
Der oben aufgeführten Makro sieht so aus:
{macro:Matrix_HasDescenderCE}
0
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
(M.L.Matrix_DescenderCE) || (M.L.Matrix_DescenderCE) ||
{end}
{macro:Matrix_DescenderCE}
d ! $d $length 0 = ! &&
{if}
$d $SetLengthL &&
$d "f" $>
{if}
* $d "g" $= $d "j" $= || $d "p" $= || $d "q" $= || $d "y" $= ||
$d "," $= || $d "‚" $= || $d "„" $= || $d "[" $= || "]" $= ||
{else}
0 $* $+
{endif}
1 $cutBegin
{endif}
{end}
Alles anzeigen
Und auch hier die Frage.
Wie müsste ich das abändern, damit es bei g, j, p, q, y die 2. Zeile um ein nach oben gerutscht wird?
Über eure Hilfe wäre ich Dankbar.
Mit schönen Grüße
Neoplan Vest