summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty')
-rw-r--r--Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty88
1 files changed, 88 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty b/Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty
new file mode 100644
index 00000000000..62591cfad7f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fontawesome5/fontawesome5-utex-helper.sty
@@ -0,0 +1,88 @@
+% Copyright 2018 Marcel Krueger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Marcel Krueger
+%
+\@ifpackageloaded{fontawesome5}{}{\PackageError{fontawesome5-utex-helper}{This package should not be loaded individually. Load fontawesome5 instead.}{}}
+
+\ProvidesExplPackage{fontawesome5-utex-helper}{2018/02/08}{5.0.6}{uTeX helper for fontawesome5}
+
+\sys_if_engine_luatex:TF{
+ \RequirePackage{luatexbase}
+ \directlua{require('fontawesome5')}
+
+ \cs_new:Nn\__fontawesome_analyze_font:nn{
+ \group_begin:
+ \usefont{TU}{fontawesome#1}{#2}{n}
+ \lua_now_x:n{fontawesome5_analyze_current_font(\luatex_fontid:D\tex_font:D)}
+ \group_end:
+ }
+ \cs_set:Nn\__fontawesome_glyphindex:n{
+ \lua_now_x:n{tex.sprint(font.getfont(font.current()).resources.unicodes["\lua_escape_x:n{#1}"]~or~0)}
+ }
+ \cs_set_eq:NN\__fontawesome_glyph:w\tex_char:D
+}{
+ \seq_set_from_clist:Nn\c__fontawesome_invalid_tokens_seq{\fa,\faH,\faRepeat}
+ \regex_const:Nn\c__fontawesome_alt_regex{-alt\Z}
+ \cs_generate_variant:Nn\regex_match:NnF{NVF}
+ \cs_new:Nn\__fontawesome_analyze_font:nn{
+ \group_begin:
+ \usefont{TU}{fontawesome#1}{#2}{n}
+ \int_step_inline:nnnn{67}1{\XeTeXcountglyphs\font-1}{
+ \tl_set:No\l_tmpa_tl{\XeTeXglyphname\font##1}
+ \regex_match:NVF\c__fontawesome_alt_regex\l_tmpa_tl{
+ \tl_set:NV\l_tmpb_tl\l_tmpa_tl
+ \tl_put_left:No\l_tmpb_tl{\char_generate:nn{92}{12}fa-}
+ \tl_replace_all:Nnn\l_tmpb_tl{-}{\str_upper_case:n}
+ \tl_set_rescan:Nnx\l_tmpb_tl{\ExplSyntaxOn}{\l_tmpb_tl}
+ \seq_if_in:NxF\c__fontawesome_invalid_tokens_seq{\tl_head:N\l_tmpb_tl}{
+ \exp_last_unbraced:NV\cs_new:Npx\l_tmpb_tl{\exp_not:N\faPreselectedIcon{\l_tmpa_tl}}
+ }
+ }
+ }
+ \group_end:
+ }
+ \cs_set:Nn\__fontawesome_glyphindex:n{
+ \the\xetex_glyphindex:D"#1"\scan_stop:
+ }
+ \cs_set_eq:NN\__fontawesome_glyph:w\xetex_glyph:D
+}
+\__fontawesome_analyze_font:nn{\c__fontawesome_kind_tl}{solid}
+\__fontawesome_analyze_font:nn{brands}{regular}
+
+\cs_new:Nn\fontawesome_use_icon:nn{
+ \group_begin:
+ \usefont
+ {TU}
+ {fontawesome\c__fontawesome_kind_tl}
+ {#1}
+ {n}
+ \int_set:Nn\l_tmpa_int{\__fontawesome_glyphindex:n{#2}}
+ \int_compare:nNnT{\l_tmpa_int}={0}{
+ \fontseries{solid}
+ \selectfont
+ \int_set:Nn\l_tmpa_int{\__fontawesome_glyphindex:n{#2}}
+ \int_compare:nNnTF{\l_tmpa_int}={0}{
+ \fontfamily{fontawesomebrands}
+ \fontseries{regular}
+ \selectfont
+ \int_set:Nn\l_tmpa_int{\__fontawesome_glyphindex:n{#2}}
+ \int_compare:nNnT{\l_tmpa_int}={0}{
+ \msg_error:nnxx{fontawesome5}{icon-not-found}{#2}{#1}
+ }
+ }{
+ \msg_warning:nnxx{fontawesome5}{style-substitution}{#2}{#1}
+ }
+ }
+ \__fontawesome_glyph:w\l_tmpa_int
+ \group_end:
+}