
Das ist eine etwas seltsame Frage und ich erwarte nicht, dass es darauf eine Antwort geben wird. Aber man muss es ja versuchen, oder?
Ich versuche, das kleine Personensymbol anzuziehen. Ich möchte ihm ein T-Shirt anziehen – und zwar am liebsten, indem ich die Farbe des besagten T-Shirts ändern kann. Ich verwende das
\Gentsroom
Symbol aus dem MarVoSym-Paket, das so aussieht:
Ich möchte ihm ein gelbes Hemd anziehen, damit er so aussieht:
Kann jemand helfen? Danke.
Antwort1
10pt-Version
\documentclass{article}
\usepackage{stackengine,marvosym,xcolor,trimclip}
\begin{document}
\stackinset{c}{}{c}{0.9pt}{%
\color{yellow!80!orange}\clipbox{0pt 4.0pt 0pt 2.2pt}{\Gentsroom}}{%
\stackinset{c}{}{c}{}{%
\color{yellow!80!orange}\clipbox{1.1pt 2.2pt 1.1pt 2.2pt}{\Gentsroom}}{%
\Gentsroom}}
\end{document}
12pt-Version
Da Clips in Punkten ausgeführt werden, erfordern unterschiedliche Schriftgrößen unterschiedliche \clipbox
Werte.
\documentclass[12pt]{article}
\usepackage{stackengine,marvosym,xcolor,trimclip}
\begin{document}
\stackinset{c}{}{c}{1pt}{%
\color{yellow!80!orange}\clipbox{0pt 4.6pt 0pt 2.6pt}{\Gentsroom}}{%
\stackinset{c}{}{c}{}{%
\color{yellow!80!orange}\clipbox{1.3pt 2.6pt 1.3pt 2.6pt}{\Gentsroom}}{%
\Gentsroom}}
\end{document}
Natürlich verstehe ich, worauf Sie hinauswollen ...
Schnappen Sie sich einfach das Logo Ihres Lieblingsteams im PNG-Format und voilà!
\documentclass[12pt]{article}
\usepackage{stackengine,marvosym,xcolor,trimclip,graphicx}
\begin{document}
\stackinset{c}{}{c}{}{\includegraphics[width=2pt]{Ravens}}{%
\stackinset{c}{}{c}{1pt}{%
\color{purple!55!blue}\clipbox{0pt 4.6pt 0pt 2.6pt}{\Gentsroom}}{%
\stackinset{c}{}{c}{}{%
\color{purple!55!blue}\clipbox{1.3pt 2.6pt 1.3pt 2.6pt}{\Gentsroom}}{%
\Gentsroom}}}
\end{document}
Um den Prozess zu automatisieren, für Farbe und Skalierbarkeit, Hier ist\Tshirt[<size>]{<color>}
\documentclass[12pt]{article}
\usepackage{stackengine,marvosym,xcolor,trimclip,scalerel}
\newcommand\Tshirt[2][8.8pt]{\savestack\theTshirt{%
\stackinset{c}{}{c}{1pt}{%
\color{#2}\clipbox{0pt 4.6pt 0pt 2.6pt}{\Gentsroom}}{%
\stackinset{c}{}{c}{}{%
\color{#2}\clipbox{1.3pt 2.6pt 1.3pt 2.6pt}{\Gentsroom}}{%
\Gentsroom}}}%
\scaleto{\theTshirt}{#1}}
\begin{document}
\Gentsroom \Tshirt{yellow!80!orange}%
\Tshirt[18pt]{red}\Tshirt[30pt]{purple!55!blue}
\end{document}
Antwort2
Sie können den Modus verwenden picture
. Dieser skaliert mit der Schriftgröße, Sie können aber auch eine „absolute“ Höhe festlegen.
\documentclass{article}
\usepackage{pict2e,xcolor}
\usepackage{marvosym}% for comparison
\definecolor{yellowshirt}{RGB}{255,211,6}
\newcommand{\Person}[1][0.87\ht\strutbox]{%
\begingroup\setlength\unitlength{#1}%
\begin{picture}(0.6,1)
\put(0.3,0.85){\circle*{0.28}}
\polygon*(0.075,0.3)(0.15,0.3)(0.15,0.55)(0.075,0.55)% left arm
\polygon*(0.45,0.3)(0.525,0.3)(0.525,0.55)(0.45,0.55)% right arm
\polygon*(0.17,0)(0.29,0)(0.29,0.3)(0.17,0.3)% left leg
\polygon*(0.31,0)(0.43,0)(0.43,0.3)(0.31,0.3)% right leg
\color{yellowshirt}
\polygon*(0.17,0.32)(0.43,0.32)(0.43,0.7)(0.17,0.7)% torso
\polygon*(0.075,0.55)(0.15,0.55)(0.15,0.7)(0.075,0.7)% left arm
\polygon*(0.45,0.55)(0.525,0.55)(0.525,0.7)(0.45,0.7)% right arm
\end{picture}\endgroup
}
\begin{document}
\Gentsroom\ \Person {\Huge\Gentsroom\ \Person} \Person[2cm]
\end{document}
Antwort3
Das folgende Beispiel verwendet FontForge und TikZ, um die SVG-Pfadbeschreibung des Gentroom-Glyphs zu erhalten.
- Die Schriftartdatei
TDS:fonts/type1/public/marvosym/marvosym.pfb
wird in FontForge geöffnet. - Die Glyphe „Gentroom“ befindet sich an Position 120 und ist geöffnet.
Die Glyphenbeschreibung wird als SVG exportiert:
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <svg viewBox="0 -200 1000 1000"> <g transform="matrix(1 0 0 -1 0 800)"> <path fill="currentColor" d="M220 728c53 0 101 -44 103 -99c0 -58 -34 -101 -87 -109h-32c-20 3 -37 11 -54 24l-19 25c-10 19 -14 33 -14 53c0 60 42 103 103 106zM49 504l52 -2v-294h-52v296zM117 504l206 -2v-278h-206v280zM338 504l52 -2v-294h-52v296zM117 208h94v-208h-94v208zM228 208h95v-208h-95v208z" /> </g> </svg>
Die Pfadbeschreibung und der Attributwert
d
despath
Elements können auch von der TikZ-Bibliothek analysiert werdensvg.path
. Die Sprache ist recht einfach. Auf einen Operatorbuchstaben folgen Argumente. Hier brauchen wir:M
: absoluter Umzug nachl
: relative Zeile-zuh
: horizontale relative Linie-zuv
: vertikale relative Linie-zuz
: Pfad schließen (cycle
in TikZ)
Der SVG-Pfad wird kopiert und in TikZ geändert.
Das LaTeX-Dateiergebnis mit Kommentaren:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{svg.path}
\usepackage{xcolor}
\definecolor{GentRoomTShirtColor}{HTML}{FFD800}
\begin{document}
\begin{tikzpicture}[scale=.1]% Adjust the scale factor above to your needs.
\fill svg{%
% Head [original]
M220 728c53 0 101 -44 103 -99c0 -58 -34 -101 -87 -109h-32c-20 3 -37 %
11 -54 24l-19 25c-10 19 -14 33 -14 53c0 60 42 103 103 106z%
% Left arm [original]
% M49 504l52 -2v-294h-52v296z
% Black part (two thirds) of left arm [new]
M49 405h52v-196h-52z%
% Torso [original]
% M117 504l206 -2v-278h-206v280z
% Right arm, original
% M338 504l52 -2v-294h-52v296z
% Black part (two thirds) of right arm [new]
M338 405h52v-196h-52z%
% Left leg [original]
% M117 208h94v-208h-94v208z
% Left leg [optimized]
M117 208h94v-208h-94z%
% Right leg [original]
% M228 208h95v-208h-95v208z
% Right leg [optimized]
M228 208h95v-208h-95z%
};
\fill[GentRoomTShirtColor] svg {%
% Upper part (one third) of left arm [new]
M49 503h52v-98h-52z%
% Torso [optimized]
M117 503h206v-277h-206z% torso
% Upper part (one third) of right arm [new]
M338 503h52v-98h-52z%
% Add side-bearings (additional white space on the left and right)
% of the original glyph or comment it , if you do not need them.
M0 0M439 0%
};
\end{tikzpicture}
\end{document}
Bemerkungen:
- Die Koordinaten sind dieselben wie in FontForge.
- Die Glyphenbeschreibung enthält eine Merkwürdigkeit (einen Fehler): Die oberen rechten Ecken der Arme und des Rumpfes sind im Vergleich zu den oberen linken Ecken um 2pt abgesenkt. Dies wurde im LaTeX-Beispiel behoben, um klare horizontale Linien zu erhalten.
- Code zum Herunterskalieren des Ergebnisses auf die tatsächliche Glyphengröße oder ähnliches habe ich weggelassen, da ich den Zweck des neuen Symbols nicht kenne. (Das Herunterskalieren auf Glyphengröße ergibt keinen Sinn, wenn das Symbol als großes Bild benötigt wird.)
- Die ursprünglichen Seitenlager des Glyphs werden hinzugefügt, können aber bei Bedarf leicht entfernt werden, siehe die Kommentare.
- Der Close-Path-Operator (
z
) verbindet mit dem Startpunkt, so dass es nicht notwendig ist, explizit zum Startpunkt zu gehen. Die Markierung[optimized]
bedeutet, dass die letzte Line-to-Operation zum Startpunkt zuvorz
entfernt wird.
Antwort4
Regeln erstellen:
\documentclass{article}
\usepackage{wasysym,xcolor,graphicx}
\parindent0pt
\newcommand\Gent[1]{\resizebox{!}{#1em}{\parbox[b]{4em}{\makebox[3.2em]{\Huge$\CIRCLE$}\\
\rule[-.2em]{.5em}{3.2em}\,%
\rule{2em}{3em}\,\rule[-.2em]{.5em}{3.2em}\\[-2pt]
\rule{.5em}{0em}\,\rule{.8em}{3.2em}\,\,\rule{.8em}{3.2em}}}}
\newcommand\Tshirt[1]{\resizebox{!}{#1em}{\parbox[b]{4em}{\makebox[3.2em]{\color{orange}\Huge$\CIRCLE$}\\
\rlap{\color{yellow}\rule[-.2em]{.5em}{3.2em}}%
{\color{orange}\rule[-.2em]{.5em}{2.2em}}\,{\color{yellow}\rule{2em}{3em}}\,%
\rlap{\color{yellow}\rule[-.2em]{.5em}{3.2em}}%
{\color{orange}\rule[-.2em]{.5em}{2.2em}}\\[-2pt]
\rule{.5em}{0em}\,\rule{.8em}{3.2em}\,\,\rule{.8em}{3.2em}}}}
\begin{document}
\Gent{4} \Tshirt{4}
\Gent{3} \Tshirt{3}
\Gent{2} \Tshirt{2}
\Gent{1} \Tshirt{1}
\end{document}