
Ich möchte einen Buchstaben auf einer Titelseite auf eine ganz bestimmte Weise verändern. Um den Effekt zu veranschaulichen, den ich erreichen möchte, habe ich ein Bild angehängt. Beachten Sie, dass die linke Hälfte des Buchstabens H kürzer ist als die rechte Hälfte, die Oberseite des Buchstabens jedoch gerade ist. Ich vermute, dass ich es mit Tikz irgendwie verzerren möchte, aber ich bin mir nicht sicher, wie ich das erreichen soll. Kann mir jemand helfen?
Antwort1
Haftungsausschluss:Dies ist KEINE TikZ-Antwort, aber egal ...
EinnahmeThrustons Antwort auf diese Frage zu TextgliederungenAls Referenz können Sie Folgendes tun, um einen deformierten Buchstaben „H“ zu erhalten. Es handelt sich um einen Proof of Concept, daher funktioniert es nur mit einzelnen Buchstaben, aber es ist möglich, es durch weitere Anpassungen an ganze Wörter anzupassen.
\documentclass{standalone}
\usepackage[latex,shellescape]{gmp}
\begin{document}
\begin{mpost}[name=H]
picture nice;
path P, PP;
nice := image(draw thelabel(\btex H etex,origin));
%Transformation
vardef T(expr p) =
save x, y;
x := xpart p; y := ypart p;
%0.01 by guessing. Play with other values
(x,0.01x*y)
enddef;
%Assumes a cyclic path
%It can be done better
vardef TT(expr P) =
T(point 0 of P)
.. controls
T(postcontrol 0 of P) and T(precontrol 1 of P)
for j = 1 upto (length P - 1):
.. T(point j of P)
.. controls T(postcontrol j of P)
and T(precontrol (j+1) of P)
endfor
.. cycle
enddef;
for i within nice:
if textual i:
for j = 1 upto length textpart i:
string s; s := substring(j-1,j) of textpart i;
picture g; g := glyph ASCII s of fontpart i scaled 1/10;
picture r; r := image(
for x within g:
picture xx; xx := image(draw g);
%75 is also guessing. Try other values
%Bad filling. It works for the letter H, tho.
fill TT(pathpart x shifted (llcorner xx - ulcorner xx + 75right)) withcolor
if greypart x = 1:
1
else:
(1,0.843,0)
fi;
endfor
);
draw r;
endfor
fi
endfor
\end{mpost}\usempost{H}%
\end{document}
Zum Vergleich ist dies das Ergebnis für den Buchstaben Q (es wird eine falsche Unausfüllung angewendet):