Fontawesome lässt sich nicht skalieren

Fontawesome lässt sich nicht skalieren

Bearbeiten:@cfr sagte, dass der Fehler in der neuen Version 4.4.0 behoben wurde.

Ich habe ein kleines Beispiel geschrieben, um zu testen, ob dieFontawesome-Skript(v. 4.3.0-1) wird mit der gewünschten Schriftgröße skaliert, aber das passiert nicht :(

\documentclass{article}
\usepackage{fontawesome}

\begin{document}

{Normal \faAdjust}
{\Huge Huge \faAdjust}

\end{document}

Ich habe die Tex-Datei mit pdflatex gerendert.

gerenderter Text

Verpasse ich etwas?

Antwort1

Der Autor des Stalls hat den Code nicht so geschrieben, dass die Schrift skaliert wird. Sie können ihn anpassen:

\documentclass{article}

\usepackage{fontawesome}
\DeclareFontFamily{U}{fontawesomeOne}{}
\DeclareFontShape{U}{fontawesomeOne}{m}{n}
  {<-> FontAwesome--fontawesomeone}{}
\DeclareRobustCommand\FAone{\fontencoding{U}\fontfamily{fontawesomeOne}\selectfont} 
\begin{document}

{Normal \faAdjust}
{\Huge Huge \faAdjust}

\end{document}

Bildbeschreibung hier eingeben

Sie müssen ähnliche Definitionen für \FAtwound schreiben \FAthree.

Antwort2

Die fontawesome.styDatei macht etwas sehr Falsches. Am Ende finden Sie

%-------------------------------------------------------------------------------
%                pdflatex implementation
%-------------------------------------------------------------------------------
\else
% definition of \FA... as a shortcut to load the Font Awesome font
\pdfmapline{+FontAwesome--fontawesomeone FontAwesome "fontawesomeone ReEncodeFont" <[fontawesomeone.enc <FontAwesome.pfb}
\font\FAone=FontAwesome--fontawesomeone.enc
\pdfmapline{+FontAwesome--fontawesometwo FontAwesome "fontawesometwo ReEncodeFont" <[fontawesometwo.enc <FontAwesome.pfb}
\font\FAtwo=FontAwesome--fontawesometwo.enc
\pdfmapline{+FontAwesome--fontawesomethree FontAwesome "fontawesomethree ReEncodeFont" <[fontawesomethree.enc <FontAwesome.pfb}
\font\FAthree=FontAwesome--fontawesomethree.enc

% icon-specific commands
\input{fontawesomesymbols-pdftex.tex}

\fi

und es ist bekannt, dass die Verwendung \fontin LaTeX immer falsch ist.

\FAoneSie können das Problem beheben , indem Sie richtig definieren \FAtwound \FAthreedas Richtige tun:

\documentclass{article}
\usepackage{fontawesome}

\DeclareFontFamily{U}{fontawesome1}{}
\DeclareFontShape{U}{fontawesome1}{m}{n}{<->FontAwesome--fontawesomeone}{}
\DeclareFontFamily{U}{fontawesome2}{}
\DeclareFontShape{U}{fontawesome2}{m}{n}{<->FontAwesome--fontawesometwo}{}
\DeclareFontFamily{U}{fontawesome3}{}
\DeclareFontShape{U}{fontawesome3}{m}{n}{<->FontAwesome--fontawesomethree}{}
\DeclareRobustCommand{\FAone}{\usefont{U}{fontawesome1}{m}{n}}
\DeclareRobustCommand{\FAtwo}{\usefont{U}{fontawesome2}{m}{n}}
\DeclareRobustCommand{\FAthree}{\usefont{U}{fontawesome3}{m}{n}}

\begin{document}

{Normal \faAdjust}
{\Huge Huge \faAdjust}

\end{document}

Bildbeschreibung hier eingeben

Der richtige Code im Paket sollte sein

%-------------------------------------------------------------------------------
%                pdflatex implementation
%-------------------------------------------------------------------------------
\else
% definition of \FA... as a shortcut to load the Font Awesome font
\pdfmapline{+FontAwesome--fontawesomeone FontAwesome "fontawesomeone ReEncodeFont" <[fontawesomeone.enc <FontAwesome.pfb}
\pdfmapline{+FontAwesome--fontawesometwo FontAwesome "fontawesometwo ReEncodeFont" <[fontawesometwo.enc <FontAwesome.pfb}
\pdfmapline{+FontAwesome--fontawesomethree FontAwesome "fontawesomethree ReEncodeFont" <[fontawesomethree.enc <FontAwesome.pfb}

\DeclareFontFamily{U}{fontawesome1}{}
\DeclareFontShape{U}{fontawesome1}{m}{n}{<->FontAwesome--fontawesomeone}{}
\DeclareFontFamily{U}{fontawesome2}{}
\DeclareFontShape{U}{fontawesome2}{m}{n}{<->FontAwesome--fontawesometwo}{}
\DeclareFontFamily{U}{fontawesome3}{}
\DeclareFontShape{U}{fontawesome3}{m}{n}{<->FontAwesome--fontawesomethree}{}
\DeclareRobustCommand{\FAone}{\usefont{U}{fontawesome1}{m}{n}}
\DeclareRobustCommand{\FAtwo}{\usefont{U}{fontawesome2}{m}{n}}
\DeclareRobustCommand{\FAthree}{\usefont{U}{fontawesome3}{m}{n}}

% icon-specific commands
\input{fontawesomesymbols-pdftex.tex}

\fi

Antwort3

Der Paketautor hat das Paket korrigiert, um eine geeignete Konfiguration für LaTeX bereitzustellen, und das Paket unterstützt jetzt die Skalierung mit (pdf)TeX. Mit der aktuellen CTAN-Version (v4.4.0), die jetzt auch in TeX Live enthalten ist, lautet das MWE des OP:

\documentclass{article}
\usepackage{fontawesome}

\begin{document}

{Normal \faAdjust}
{\Huge Huge \faAdjust}

\end{document}

erzeugt die erwartete Ausgabe:

erwartete Ausgabe

Wenn Sie also eine aktualisierte Kopie des Pakets installiert haben, sind die in den anderen Antworten hier besprochenen manuellen Korrekturen nicht mehr erforderlich ;).

Antwort4

AlsUlrike Fischer sagte, das Paket richtet die Schriftarten für pdfLaTeX nicht richtig ein. Daher können sie nicht mit den normalen Befehlen zur Schriftgrößenanpassung skaliert werden. Dies ist spezifisch für die Verwendung von pdfLaTeX und hat keine Auswirkungen auf XeLaTeX/LuaLaTeX.

Ulrike Fischer hat ihre Antwort gepostet, während ich meine geschrieben habe. Da meine eine vollständigere Konfiguration enthält, hoffe ich, dass sie nichts dagegen hat, wenn ich sie poste.

\documentclass{article}
\usepackage{fontawesome}
\DeclareFontFamily{U}{FontAwesomeOne}{}
\DeclareFontShape{U}{FontAwesomeOne}{m}{n}{<-> FontAwesome--fontawesomeone}{}
\DeclareRobustCommand\FAone{\fontencoding{U}\fontfamily{FontAwesomeOne}\fontseries{m}\fontshape{n}\selectfont}
\DeclareFontFamily{U}{FontAwesomeTwo}{}
\DeclareFontShape{U}{FontAwesomeTwo}{m}{n}{<-> FontAwesome--fontawesometwo}{}
\DeclareRobustCommand\FAtwo{\fontencoding{U}\fontfamily{FontAwesomeTwo}\fontseries{m}\fontshape{n}\selectfont}
\DeclareFontFamily{U}{FontAwesomeThree}{}
\DeclareFontShape{U}{FontAwesomeThree}{m}{n}{<-> FontAwesome--fontawesomethree}{}
\DeclareRobustCommand\FAthree{\fontencoding{U}\fontfamily{FontAwesomeThree}\fontseries{m}\fontshape{n}\selectfont}

\begin{document}

{Normal \faAdjust}
{\Huge Huge \faAdjust}

\end{document}

Demonstration

Es ist auch erwähnenswert, dass es – abgesehen von den Entscheidungen des Paketautors – keinen Grund gibt, warum die Schriftarten nicht auch mit der regulären TeX-Engine verwendet werden können. Allerdings gibt es meines Wissens nach nur eingeschränkte Unterstützung für pdfLaTeX und überhaupt keine für LaTeX.

verwandte Informationen