diff options
author | Karl Berry <karl@freefriends.org> | 2016-05-17 21:26:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-05-17 21:26:14 +0000 |
commit | 089e7e2b5f7b92b6dfc6c6bf0c73b582c503eaaf (patch) | |
tree | 6151809a662d36591ae995e12cd6a8d7240dca71 /Master/texmf-dist/tex/context/base/mkiv | |
parent | 0c7ddd509036cc608279b743a5ca46a5003b0251 (diff) |
context, from current (17may16)
git-svn-id: svn://tug.org/texlive/trunk@41222 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/context-todo.tex | 13 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/context.mkiv | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua | 58 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/node-rul.lua | 77 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv | 51 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv | 37 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/status-files.pdf | bin | 9237 -> 9209 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf | bin | 266724 -> 266761 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv | 758 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv | 16 | ||||
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua | 44 |
14 files changed, 952 insertions, 114 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua index fef1a8474f6..2d36c53e609 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua @@ -437,8 +437,8 @@ local function setregionbox(n,tag) local h = getfield(box,"height") local d = getfield(box,"depth") tobesaved[tag] = { - p = true, - x = true, + p = true, -- not enhanced + x = true, -- not enhanced y = getvpos(), -- true, w = w ~= 0 and w or nil, h = h ~= 0 and h or nil, diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv index 8634266926c..13050577d3b 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2016.05.15 20:46} +\newcontextversion{2016.05.17 19:20} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex b/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex index 9569e5352ff..0cbd94814bd 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex +++ b/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex @@ -28,6 +28,19 @@ \startitem get rid of \type {temp} node in hyphenator i.e. postpone to when needed \stopitem + \startitem + remove local par in head of line when done with linebreak + \stopitem + \startitem + check why leftskip doesn't always inherit attributes (maybe dir notes don't have them) + (also check redundant \type {delete_attribute_ref} after \type {new_glue}) + \stopitem + \startitem + implement \type {\hyphenationbounds} + \stopitem + \startitem + only return nil when we expect multiple calls in in one line + \stopitem \stopitemize \subsubject{\CONTEXT} diff --git a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv index 7cce1c958ea..032682a1df6 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv @@ -39,8 +39,8 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2016.05.15 20:46} -\edef\contextkind {beta} +\edef\contextversion{2016.05.17 19:20} +\edef\contextkind {current} %D For those who want to use this: diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua index e6b10cce669..55676381256 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua @@ -29,6 +29,7 @@ local report_mp = logs.reporter("rules","mp") local floor = math.floor local random = math.random +local formatters = string.formatters do @@ -36,6 +37,7 @@ do local cachesize = 0 local maxcachesize = 256*1024 local cachethreshold = 1024 + local caching = false -- otherwise random issues so we need a dedicated randomizer first -- local maxcachesize = 8*1024 -- local cachethreshold = 1024/2 @@ -66,6 +68,7 @@ do FakeWord(%width%,%height%,%depth%,%line%,%color%); ]], ["fake:rule"] = replacer[[ +%initializations% FakeRule(%width%,%height%,%depth%,%line%,%color%); ]], ["fake:rest"] = replacer [[ @@ -82,26 +85,34 @@ def RuleColor = %color% enddef ; ]] } + local initialized = false ; + ruleactions.mp = function(p,h,v,i,n) local name = p.name or "fake:rest" local code = (predefined[name] or predefined["fake:rest"]) { - data = p.data or "", - width = p.width * bpfactor, - height = p.height * bpfactor, - depth = p.depth * bpfactor, - factor = (p.factor or 0) * bpfactor, -- needs checking - offset = p.offset or 0, - line = (p.line or 65536) * bpfactor, - color = mpcolor(p.ma,p.ca,p.ta), - option = p.option or "", - direction = p.direction or "TLT", + data = p.data or "", + width = p.width * bpfactor, + height = p.height * bpfactor, + depth = p.depth * bpfactor, + factor = (p.factor or 0) * bpfactor, -- needs checking + offset = p.offset or 0, + line = (p.line or 65536) * bpfactor, + color = mpcolor(p.ma,p.ca,p.ta), + option = p.option or "", + direction = p.direction or "TLT", + } - local m = cache[code] + if not initialized then + initialized = true + simplemetapost("rulefun",formatters["randomseed := %s;"](random(0,4095))) + end + local pdf = caching and cache[code] or simplemetapost("rulefun",code) -- w, h, d if trace_mp then - report_mp(m) + report_mp("code: %s",code) + report_mp("pdf : %s",pdf) end - if m and m ~= "" then - pdfprint("direct",m) + if pdf and pdf ~= "" then + pdfprint("direct",pdf) end end @@ -109,8 +120,8 @@ end do - local f_rectangle = string.formatters["%F w %F %F %F %F re %s"] - local f_radtangle = string.formatters[ [[ + local f_rectangle = formatters["%F w %F %F %F %F re %s"] + local f_radtangle = formatters[ [[ %F w %F %F m %F %F l %F %F %F %F y %F %F l %F %F %F %F y @@ -157,12 +168,19 @@ interfaces.implement { { "name", "string" }, } } , actions = function(t) + local r = userrule(t) + local ma = getattribute(a_colorspace) or 1 + local ca = getattribute(a_color) + local ta = getattribute(a_transparency) if t.type == "mp" then - t.ma = getattribute(a_colorspace) or 1 - t.ca = getattribute(a_color) - t.ta = getattribute(a_transparency) + t.ma = ma + t.ca = ca + t.ta = ta + else + r[a_colorspace] = ma + r[a_color] = ca + r[a_transparency] = ta end - local r = userrule(t) context(r) end } diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua index 6c722aa4017..e7ab2c0712a 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua @@ -106,7 +106,7 @@ return { -- "remapcolors", "normalcolors", "resetcolormap", "remapcolor", "remappedcolor", -- "recolor", "refill", "redraw", "retext", "untext", "restroke", "reprocess", "repathed", "tensecircle", "roundedsquare", - "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", + "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", "complemented", -- -- "swappointlabels", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua index a1ac67657a6..63991813ead 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua @@ -13,34 +13,36 @@ if not modules then modules = { } end modules ['node-rul'] = { local attributes, nodes, node = attributes, nodes, node -local nuts = nodes.nuts -local tonode = nuts.tonode -local tonut = nuts.tonut - -local getfield = nuts.getfield -local setfield = nuts.setfield -local setnext = nuts.setnext -local setprev = nuts.setprev -local setlink = nuts.setlink -local getnext = nuts.getnext -local getprev = nuts.getprev -local getid = nuts.getid -local getattr = nuts.getattr -local setattr = nuts.setattr -local getfont = nuts.getfont -local getsubtype = nuts.getsubtype -local getlist = nuts.getlist -local setlist = nuts.setlist - -local nodecodes = nodes.nodecodes -local tasks = nodes.tasks - -local properties = nodes.properties -local attribs = node.current_attr - -local glyph_code = nodecodes.glyph -local disc_code = nodecodes.disc -local rule_code = nodecodes.rule +local nuts = nodes.nuts +local tonode = nuts.tonode +local tonut = nuts.tonut + +local getfield = nuts.getfield +local setfield = nuts.setfield +local setnext = nuts.setnext +local setprev = nuts.setprev +local setlink = nuts.setlink +local getnext = nuts.getnext +local getprev = nuts.getprev +local getid = nuts.getid +local getattr = nuts.getattr +local setattr = nuts.setattr +local getfont = nuts.getfont +local getsubtype = nuts.getsubtype +local getlist = nuts.getlist +local setlist = nuts.setlist + +local nodecodes = nodes.nodecodes +local tasks = nodes.tasks + +local properties = nodes.properties +local attribs = node.current_attr + +local glyph_code = nodecodes.glyph +local disc_code = nodecodes.disc +local rule_code = nodecodes.rule +local boundary_code = nodecodes.boundary +local dir_code = nodecodes.dir function nodes.striprange(first,last) -- todo: dir if first and last then -- just to be sure @@ -49,7 +51,7 @@ function nodes.striprange(first,last) -- todo: dir end while first and first ~= last do local id = getid(first) - if id == glyph_code or id == disc_code then -- or id == rule_code + if id == glyph_code or id == disc_code or id == dir_code or id == boundary_code then -- or id == rule_code break else first = getnext(first) @@ -62,7 +64,7 @@ function nodes.striprange(first,last) -- todo: dir end while last and last ~= first do local id = getid(last) - if id == glyph_code or id == disc_code then -- or id == rule_code + if id == glyph_code or id == disc_code or id == dir_code or id == boundary_code then -- or id == rule_code break else local prev = getprev(last) -- luatex < 0.70 has italic correction kern not prev'd @@ -123,6 +125,7 @@ local kern_code = nodecodes.kern local hlist_code = nodecodes.hlist local vlist_code = nodecodes.vlist local rule_code = nodecodes.rule +local boundary_code = nodecodes.boundary local dir_code = nodecodes.dir local userskip_code = skipcodes.userskip @@ -198,7 +201,7 @@ local function processwords(attribute,data,flush,head,parent) -- we have hlistdi end f, l, a = nil, nil, nil end - elseif id == disc_code then + elseif id == disc_code or id == boundary_code then if f then l = n end @@ -215,8 +218,12 @@ local function processwords(attribute,data,flush,head,parent) -- we have hlistdi if list then setlist(n,(processwords(attribute,data,flush,list,n))) -- watch () end - elseif checkdir and id == dir_code then -- only changes in dir, we assume proper boundaries - if f and a then +-- elseif checkdir and id == dir_code then -- only changes in dir, we assume proper boundaries +-- if f and a then +-- l = n +-- end + elseif id == dir_code then -- only changes in dir, we assume proper boundaries + if f then l = n end elseif f then @@ -467,10 +474,10 @@ local function flush_shifted(head,first,last,data,level,parent,strip) -- not tha head = list end if prev then - setlink(prev,list) + setlink(prev,list) end if next then - setlink(next,list) + setlink(list,next) end local raise = data.dy * dimenfactor(data.unit,fontdata[getfont(first)]) setfield(list,"shift",raise) diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv index 8c7f1d08bd4..130ac967134 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv @@ -38,9 +38,7 @@ %D \getbuffer %D \stoplines %D -%D The next macros are derived from the \PLAIN\ \TEX\ one, but also supports -%D nesting. The \type{$} keeps us in horizontal mode and at the same time -%D applies grouping. +%D The formal definitions are: %D %D \showsetup{underbar} %D \showsetup{underbars} @@ -49,11 +47,9 @@ %D \showsetup{overstrike} %D \showsetup{overstrikes} %D -%D \showsetup{setupunderbar} +%D \showsetup{setupbars} %D -%D Nested bars can be configured by appending \type {:<index>} to the category. -%D Normally units in combination with a unitless thickness specification but -%D there units can be used too. +%D Units can be any normal \TEX\ unit: %D %D \startbuffer %D \setupbars[unit=mm,rulethickness=1] bar\startbar[underbar]foo\stopbar bar\blank @@ -105,7 +101,9 @@ \else \expandafter\newcount\csname\??barindex\currentbar\endcsname \fi - \normalexpanded{\t_node_rules_checklist{\node_rules_redefine{\currentbar}\the\t_node_rules_checklist}}% +% \normalexpanded{\t_node_rules_checklist{\node_rules_redefine{\currentbar}\the\t_node_rules_checklist}}% + \normalexpanded{\t_node_rules_checklist{\the\t_node_rules_checklist\node_rules_redefine{\currentbar}}}% +% \etoksapp\t_node_rules_checklist{\node_rules_redefine{\currentbar}}% \node_rules_define \setuevalue\currentbar{\node_rules_direct{\currentbar}}% \to \everydefinebar @@ -134,16 +132,10 @@ \unexpanded\def\node_rules_direct#1% {\groupedcommand{\node_rules_set{#1}}\relax} -% \unexpanded\def\node_rules_set -% {\clf_enablerules % will be moved to lua -% \glet\node_rules_set\node_rules_set_indeed -% \node_rules_set} -% -%\unexpanded\def\node_rules_set_indeed#1% maybe reverse the 1000 (also maybe use more attributes instead of settings) - \unexpanded\def\node_rules_set#1% maybe reverse the 1000 (also maybe use more attributes instead of settings) {\edef\currentbar{#1}% \usebarstyleandcolor\c!foregroundstyle\c!foregroundcolor + % maybe: \usebarstyleandcolor\c!textgroundstyle\c!textcolor % todo: move this to lua .. we callout anyway \expandafter\let\expandafter\c_node_rules_index\csname\??barindex#1\endcsname \advance\c_node_rules_index\plusone @@ -156,10 +148,12 @@ \unexpanded\def\startbar[#1]% {\begingroup - \node_rules_set{#1}} + \node_rules_set{#1}% + \ignorespaces} \unexpanded\def\stopbar - {\endgroup} + {\removeunwantedspaces + \endgroup} \unexpanded\def\setbar[#1]% {\node_rules_set{#1}} @@ -277,7 +271,7 @@ \startuseMPgraphic{rules:under:dash} draw - ((0,RuleDepth) ... (RuleWidth,RuleDepth)) + ((0,RuleDepth) -- (RuleWidth,RuleDepth)) shifted (0,RuleFactor*RuleOffset) dashed dashpattern(on RuleFactor/2 off RuleFactor/2) withpen pencircle scaled RuleThickness @@ -286,10 +280,13 @@ \stopuseMPgraphic \startuseMPgraphic{rules:under:dots} + path p ; p := (0,RuleDepth) -- (RuleWidth,RuleDepth) ; + numeric l ; l := arclength(p); + l := l mod RuleThickness/4; draw - ((0,RuleDepth) ... (RuleWidth,RuleDepth)) - shifted (0,RuleFactor*RuleOffset) - dashed dashpattern(off 3/RuleFactor on 0 off 3/RuleFactor) + p + shifted (l,RuleFactor*RuleOffset) + dashed dashpattern(off 2RuleThickness+l on 0 off 2RuleThickness) withpen pencircle scaled 2RuleThickness withcolor RuleColor ; setbounds currentpicture to unitsquare xysized(RuleWidth,RuleHeight) ; @@ -372,22 +369,24 @@ +\csname\??shiftattribute#1\ifcsname\??shift#1:\number\c_node_shifts_index\s!parent\endcsname:\number\c_node_shifts_index\fi\endcsname \relax \useshiftstyleandcolor\c!style\c!color - \dosetupisolatedalign{\shiftparameter\c!align}} + \dosetupisolatedalign{\shiftparameter\c!align}} % weird feature that i probably needed once \unexpanded\def\startshift[#1]% {\begingroup - \node_shifts_set{#1}} + \node_shifts_set{#1}% + \ignorespaces} \unexpanded\def\stopshift - {\endgroup} + {\removeunwantedspaces + \endgroup} % \unexpanded\def\node_shifts_direct#1% % {\doisolatedgroupedalign{\node_shifts_set{#1}}\donothing} \unexpanded\def\node_shifts_direct#1% {\groupedcommand - {\begingroup\dostartisolation\begingroup\node_shifts_set{#1}} - {\endgroup\dostopisolation\endgroup}} + {\begingroup\dostartisolation\begingroup\node_shifts_set{#1}\ignorespaces} + {\removeunwantedspaces\endgroup\dostopisolation\endgroup}} \setupshifts [\c!method=0, diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv index 649b29fa6e6..85aa3ad04ed 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv @@ -56,10 +56,14 @@ \setstrut \fi\fi \useblackrulesstyleandcolor\c!style\c!color - \vrule - \ifx\p_width \v!max\s!width \emwidth\else\ifx\p_width \empty\else\s!width \p_width \fi\fi - \ifx\p_height\v!max\s!height\strutht\else\ifx\p_height\empty\else\s!height\p_height\fi\fi - \ifx\p_depth \v!max\s!depth \strutdp\else\ifx\p_depth \empty\else\s!depth \p_depth \fi\fi + \ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname + \lastnamedcs + \else + \vrule + \fi + \ifx\p_width \v!max\s!width \emwidth\else\ifx\p_width \empty\else\s!width \p_width \fi\fi + \ifx\p_height\v!max\s!height\strutht\else\ifx\p_height\empty\else\s!height\p_height\fi\fi + \ifx\p_depth \v!max\s!depth \strutdp\else\ifx\p_depth \empty\else\s!depth \p_depth \fi\fi \egroup} \setupblackrules @@ -109,7 +113,7 @@ \scratchdistance\directblackrulesparameter\c!distance \scratchcounter \directblackrulesparameter\c!n \edef\p_alternative{\blackrulesparameter\c!alternative}% - \ifx\p_alternative\c!b + \ifx\p_alternative\c!b % why not just check distance \ifnum\scratchcounter=\plusone \scratchdistance\zeropoint \else @@ -117,15 +121,34 @@ \fi \fi \useblackrulesstyleandcolor\c!style\c!color + \edef\brule + {\ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname + \lastnamedcs + \else + \vrule + \fi}% \dorecurse\scratchcounter % a typical case of where we can use a simple loop - {\vrule + {\brule \s!width \scratchwidth \s!height\scratchheight \s!depth \scratchdepth - \hskip\scratchdistance}% + \ifzeropt\scratchdistance\else + \hskip\scratchdistance + \fi}% \unskip \egroup} +\installcorenamespace{blackruletype} + +\setvalue{\??blackruletype mp}% + {\frule + type {mp}% + data {\includeMPgraphic{\directblackrulesparameter\c!mp}}} + +\letvalue{\??blackruletype\s!no }\novrule +%letvalue{\??blackruletype\s!yes}\vrule + + \setupblackrules [\c!n=3, \c!alternative=\c!a, diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf Binary files differindex 761ce692edd..2df57c9f6ed 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf +++ b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf Binary files differindex d805ec46315..07fdd4da472 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf +++ b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv new file mode 100644 index 00000000000..145adc46c04 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv @@ -0,0 +1,758 @@ +%D \module +%D [ file=symb-imp-fontawesome, +%D version=2016.05.16, +%D title=\CONTEXT\ Symbol Libraries, +%D subtitle=FontAwesome Symbols (4.6), +%D author=Wolfgang Schuster, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] + +\definefontsynonym [FontAwesome] [file:FontAwesome.otf] + +%def\FontAwesomeSymbol#1{\getglyphstyled{FontAwesome}{\utfchar{0x#1}}} +\def\FontAwesomeSymbol#1{\getglyphstyled{FontAwesome}{\tochar{x:#1}}} + +\startsymbolset [fontawesome] + + \definesymbol [500px] [\FontAwesomeSymbol{f26e}] + \definesymbol [adjust] [\FontAwesomeSymbol{f042}] + \definesymbol [adn] [\FontAwesomeSymbol{f170}] + \definesymbol [align-center] [\FontAwesomeSymbol{f037}] + \definesymbol [align-justify] [\FontAwesomeSymbol{f039}] + \definesymbol [align-left] [\FontAwesomeSymbol{f036}] + \definesymbol [align-right] [\FontAwesomeSymbol{f038}] + \definesymbol [amazon] [\FontAwesomeSymbol{f270}] + \definesymbol [ambulance] [\FontAwesomeSymbol{f0f9}] + \definesymbol [american-sign-language-interpreting] [\FontAwesomeSymbol{f2a3}] + \definesymbol [anchor] [\FontAwesomeSymbol{f13d}] + \definesymbol [android] [\FontAwesomeSymbol{f17b}] + \definesymbol [angellist] [\FontAwesomeSymbol{f209}] + \definesymbol [angle-double-down] [\FontAwesomeSymbol{f103}] + \definesymbol [angle-double-left] [\FontAwesomeSymbol{f100}] + \definesymbol [angle-double-right] [\FontAwesomeSymbol{f101}] + \definesymbol [angle-double-up] [\FontAwesomeSymbol{f102}] + \definesymbol [angle-down] [\FontAwesomeSymbol{f107}] + \definesymbol [angle-left] [\FontAwesomeSymbol{f104}] + \definesymbol [angle-right] [\FontAwesomeSymbol{f105}] + \definesymbol [angle-up] [\FontAwesomeSymbol{f106}] + \definesymbol [apple] [\FontAwesomeSymbol{f179}] + \definesymbol [archive] [\FontAwesomeSymbol{f187}] + \definesymbol [area-chart] [\FontAwesomeSymbol{f1fe}] + \definesymbol [arrow-circle-down] [\FontAwesomeSymbol{f0ab}] + \definesymbol [arrow-circle-left] [\FontAwesomeSymbol{f0a8}] + \definesymbol [arrow-circle-o-down] [\FontAwesomeSymbol{f01a}] + \definesymbol [arrow-circle-o-left] [\FontAwesomeSymbol{f190}] + \definesymbol [arrow-circle-o-right] [\FontAwesomeSymbol{f18e}] + \definesymbol [arrow-circle-o-up] [\FontAwesomeSymbol{f01b}] + \definesymbol [arrow-circle-right] [\FontAwesomeSymbol{f0a9}] + \definesymbol [arrow-circle-up] [\FontAwesomeSymbol{f0aa}] + \definesymbol [arrow-down] [\FontAwesomeSymbol{f063}] + \definesymbol [arrow-left] [\FontAwesomeSymbol{f060}] + \definesymbol [arrow-right] [\FontAwesomeSymbol{f061}] + \definesymbol [arrow-up] [\FontAwesomeSymbol{f062}] + \definesymbol [arrows] [\FontAwesomeSymbol{f047}] + \definesymbol [arrows-alt] [\FontAwesomeSymbol{f0b2}] + \definesymbol [arrows-h] [\FontAwesomeSymbol{f07e}] + \definesymbol [arrows-v] [\FontAwesomeSymbol{f07d}] + \definesymbol [asl-interpreting] [\FontAwesomeSymbol{f2a3}] + \definesymbol [assistive-listening-systems] [\FontAwesomeSymbol{f2a2}] + \definesymbol [asterisk] [\FontAwesomeSymbol{f069}] + \definesymbol [at] [\FontAwesomeSymbol{f1fa}] + \definesymbol [audio-description] [\FontAwesomeSymbol{f29e}] + \definesymbol [automobile] [\FontAwesomeSymbol{f1b9}] + \definesymbol [backward] [\FontAwesomeSymbol{f04a}] + \definesymbol [balance-scale] [\FontAwesomeSymbol{f24e}] + \definesymbol [ban] [\FontAwesomeSymbol{f05e}] + \definesymbol [bank] [\FontAwesomeSymbol{f19c}] + \definesymbol [bar-chart] [\FontAwesomeSymbol{f080}] + \definesymbol [bar-chart-o] [\FontAwesomeSymbol{f080}] + \definesymbol [barcode] [\FontAwesomeSymbol{f02a}] + \definesymbol [bars] [\FontAwesomeSymbol{f0c9}] + \definesymbol [battery-0] [\FontAwesomeSymbol{f244}] + \definesymbol [battery-1] [\FontAwesomeSymbol{f243}] + \definesymbol [battery-2] [\FontAwesomeSymbol{f242}] + \definesymbol [battery-3] [\FontAwesomeSymbol{f241}] + \definesymbol [battery-4] [\FontAwesomeSymbol{f240}] + \definesymbol [battery-empty] [\FontAwesomeSymbol{f244}] + \definesymbol [battery-full] [\FontAwesomeSymbol{f240}] + \definesymbol [battery-half] [\FontAwesomeSymbol{f242}] + \definesymbol [battery-quarter] [\FontAwesomeSymbol{f243}] + \definesymbol [battery-three-quarters] [\FontAwesomeSymbol{f241}] + \definesymbol [bed] [\FontAwesomeSymbol{f236}] + \definesymbol [beer] [\FontAwesomeSymbol{f0fc}] + \definesymbol [behance] [\FontAwesomeSymbol{f1b4}] + \definesymbol [behance-square] [\FontAwesomeSymbol{f1b5}] + \definesymbol [bell] [\FontAwesomeSymbol{f0f3}] + \definesymbol [bell-o] [\FontAwesomeSymbol{f0a2}] + \definesymbol [bell-slash] [\FontAwesomeSymbol{f1f6}] + \definesymbol [bell-slash-o] [\FontAwesomeSymbol{f1f7}] + \definesymbol [bicycle] [\FontAwesomeSymbol{f206}] + \definesymbol [binoculars] [\FontAwesomeSymbol{f1e5}] + \definesymbol [birthday-cake] [\FontAwesomeSymbol{f1fd}] + \definesymbol [bitbucket] [\FontAwesomeSymbol{f171}] + \definesymbol [bitbucket-square] [\FontAwesomeSymbol{f172}] + \definesymbol [bitcoin] [\FontAwesomeSymbol{f15a}] + \definesymbol [black-tie] [\FontAwesomeSymbol{f27e}] + \definesymbol [blind] [\FontAwesomeSymbol{f29d}] + \definesymbol [bluetooth] [\FontAwesomeSymbol{f293}] + \definesymbol [bluetooth-b] [\FontAwesomeSymbol{f294}] + \definesymbol [bold] [\FontAwesomeSymbol{f032}] + \definesymbol [bolt] [\FontAwesomeSymbol{f0e7}] + \definesymbol [bomb] [\FontAwesomeSymbol{f1e2}] + \definesymbol [book] [\FontAwesomeSymbol{f02d}] + \definesymbol [bookmark] [\FontAwesomeSymbol{f02e}] + \definesymbol [bookmark-o] [\FontAwesomeSymbol{f097}] + \definesymbol [braille] [\FontAwesomeSymbol{f2a1}] + \definesymbol [briefcase] [\FontAwesomeSymbol{f0b1}] + \definesymbol [btc] [\FontAwesomeSymbol{f15a}] + \definesymbol [bug] [\FontAwesomeSymbol{f188}] + \definesymbol [building] [\FontAwesomeSymbol{f1ad}] + \definesymbol [building-o] [\FontAwesomeSymbol{f0f7}] + \definesymbol [bullhorn] [\FontAwesomeSymbol{f0a1}] + \definesymbol [bullseye] [\FontAwesomeSymbol{f140}] + \definesymbol [bus] [\FontAwesomeSymbol{f207}] + \definesymbol [buysellads] [\FontAwesomeSymbol{f20d}] + \definesymbol [cab] [\FontAwesomeSymbol{f1ba}] + \definesymbol [calculator] [\FontAwesomeSymbol{f1ec}] + \definesymbol [calendar] [\FontAwesomeSymbol{f073}] + \definesymbol [calendar-check-o] [\FontAwesomeSymbol{f274}] + \definesymbol [calendar-minus-o] [\FontAwesomeSymbol{f272}] + \definesymbol [calendar-o] [\FontAwesomeSymbol{f133}] + \definesymbol [calendar-plus-o] [\FontAwesomeSymbol{f271}] + \definesymbol [calendar-times-o] [\FontAwesomeSymbol{f273}] + \definesymbol [camera] [\FontAwesomeSymbol{f030}] + \definesymbol [camera-retro] [\FontAwesomeSymbol{f083}] + \definesymbol [car] [\FontAwesomeSymbol{f1b9}] + \definesymbol [caret-down] [\FontAwesomeSymbol{f0d7}] + \definesymbol [caret-left] [\FontAwesomeSymbol{f0d9}] + \definesymbol [caret-right] [\FontAwesomeSymbol{f0da}] + \definesymbol [caret-square-o-down] [\FontAwesomeSymbol{f150}] + \definesymbol [caret-square-o-left] [\FontAwesomeSymbol{f191}] + \definesymbol [caret-square-o-right] [\FontAwesomeSymbol{f152}] + \definesymbol [caret-square-o-up] [\FontAwesomeSymbol{f151}] + \definesymbol [caret-up] [\FontAwesomeSymbol{f0d8}] + \definesymbol [cart-arrow-down] [\FontAwesomeSymbol{f218}] + \definesymbol [cart-plus] [\FontAwesomeSymbol{f217}] + \definesymbol [cc] [\FontAwesomeSymbol{f20a}] + \definesymbol [cc-amex] [\FontAwesomeSymbol{f1f3}] + \definesymbol [cc-diners-club] [\FontAwesomeSymbol{f24c}] + \definesymbol [cc-discover] [\FontAwesomeSymbol{f1f2}] + \definesymbol [cc-jcb] [\FontAwesomeSymbol{f24b}] + \definesymbol [cc-mastercard] [\FontAwesomeSymbol{f1f1}] + \definesymbol [cc-paypal] [\FontAwesomeSymbol{f1f4}] + \definesymbol [cc-stripe] [\FontAwesomeSymbol{f1f5}] + \definesymbol [cc-visa] [\FontAwesomeSymbol{f1f0}] + \definesymbol [certificate] [\FontAwesomeSymbol{f0a3}] + \definesymbol [chain] [\FontAwesomeSymbol{f0c1}] + \definesymbol [chain-broken] [\FontAwesomeSymbol{f127}] + \definesymbol [check] [\FontAwesomeSymbol{f00c}] + \definesymbol [check-circle] [\FontAwesomeSymbol{f058}] + \definesymbol [check-circle-o] [\FontAwesomeSymbol{f05d}] + \definesymbol [check-square] [\FontAwesomeSymbol{f14a}] + \definesymbol [check-square-o] [\FontAwesomeSymbol{f046}] + \definesymbol [chevron-circle-down] [\FontAwesomeSymbol{f13a}] + \definesymbol [chevron-circle-left] [\FontAwesomeSymbol{f137}] + \definesymbol [chevron-circle-right] [\FontAwesomeSymbol{f138}] + \definesymbol [chevron-circle-up] [\FontAwesomeSymbol{f139}] + \definesymbol [chevron-down] [\FontAwesomeSymbol{f078}] + \definesymbol [chevron-left] [\FontAwesomeSymbol{f053}] + \definesymbol [chevron-right] [\FontAwesomeSymbol{f054}] + \definesymbol [chevron-up] [\FontAwesomeSymbol{f077}] + \definesymbol [child] [\FontAwesomeSymbol{f1ae}] + \definesymbol [chrome] [\FontAwesomeSymbol{f268}] + \definesymbol [circle] [\FontAwesomeSymbol{f111}] + \definesymbol [circle-o] [\FontAwesomeSymbol{f10c}] + \definesymbol [circle-o-notch] [\FontAwesomeSymbol{f1ce}] + \definesymbol [circle-thin] [\FontAwesomeSymbol{f1db}] + \definesymbol [clipboard] [\FontAwesomeSymbol{f0ea}] + \definesymbol [clock-o] [\FontAwesomeSymbol{f017}] + \definesymbol [clone] [\FontAwesomeSymbol{f24d}] + \definesymbol [close] [\FontAwesomeSymbol{f00d}] + \definesymbol [cloud] [\FontAwesomeSymbol{f0c2}] + \definesymbol [cloud-download] [\FontAwesomeSymbol{f0ed}] + \definesymbol [cloud-upload] [\FontAwesomeSymbol{f0ee}] + \definesymbol [cny] [\FontAwesomeSymbol{f157}] + \definesymbol [code] [\FontAwesomeSymbol{f121}] + \definesymbol [code-fork] [\FontAwesomeSymbol{f126}] + \definesymbol [codepen] [\FontAwesomeSymbol{f1cb}] + \definesymbol [codiepie] [\FontAwesomeSymbol{f284}] + \definesymbol [coffee] [\FontAwesomeSymbol{f0f4}] + \definesymbol [cog] [\FontAwesomeSymbol{f013}] + \definesymbol [cogs] [\FontAwesomeSymbol{f085}] + \definesymbol [columns] [\FontAwesomeSymbol{f0db}] + \definesymbol [comment] [\FontAwesomeSymbol{f075}] + \definesymbol [comment-o] [\FontAwesomeSymbol{f0e5}] + \definesymbol [commenting] [\FontAwesomeSymbol{f27a}] + \definesymbol [commenting-o] [\FontAwesomeSymbol{f27b}] + \definesymbol [comments] [\FontAwesomeSymbol{f086}] + \definesymbol [comments-o] [\FontAwesomeSymbol{f0e6}] + \definesymbol [compass] [\FontAwesomeSymbol{f14e}] + \definesymbol [compress] [\FontAwesomeSymbol{f066}] + \definesymbol [connectdevelop] [\FontAwesomeSymbol{f20e}] + \definesymbol [contao] [\FontAwesomeSymbol{f26d}] + \definesymbol [copy] [\FontAwesomeSymbol{f0c5}] + \definesymbol [copyright] [\FontAwesomeSymbol{f1f9}] + \definesymbol [creative-commons] [\FontAwesomeSymbol{f25e}] + \definesymbol [credit-card] [\FontAwesomeSymbol{f09d}] + \definesymbol [credit-card-alt] [\FontAwesomeSymbol{f283}] + \definesymbol [crop] [\FontAwesomeSymbol{f125}] + \definesymbol [crosshairs] [\FontAwesomeSymbol{f05b}] + \definesymbol [css3] [\FontAwesomeSymbol{f13c}] + \definesymbol [cube] [\FontAwesomeSymbol{f1b2}] + \definesymbol [cubes] [\FontAwesomeSymbol{f1b3}] + \definesymbol [cut] [\FontAwesomeSymbol{f0c4}] + \definesymbol [cutlery] [\FontAwesomeSymbol{f0f5}] + \definesymbol [dashboard] [\FontAwesomeSymbol{f0e4}] + \definesymbol [dashcube] [\FontAwesomeSymbol{f210}] + \definesymbol [database] [\FontAwesomeSymbol{f1c0}] + \definesymbol [deaf] [\FontAwesomeSymbol{f2a4}] + \definesymbol [deafness] [\FontAwesomeSymbol{f2a4}] + \definesymbol [dedent] [\FontAwesomeSymbol{f03b}] + \definesymbol [delicious] [\FontAwesomeSymbol{f1a5}] + \definesymbol [desktop] [\FontAwesomeSymbol{f108}] + \definesymbol [deviantart] [\FontAwesomeSymbol{f1bd}] + \definesymbol [diamond] [\FontAwesomeSymbol{f219}] + \definesymbol [digg] [\FontAwesomeSymbol{f1a6}] + \definesymbol [dollar] [\FontAwesomeSymbol{f155}] + \definesymbol [dot-circle-o] [\FontAwesomeSymbol{f192}] + \definesymbol [download] [\FontAwesomeSymbol{f019}] + \definesymbol [dribbble] [\FontAwesomeSymbol{f17d}] + \definesymbol [dropbox] [\FontAwesomeSymbol{f16b}] + \definesymbol [drupal] [\FontAwesomeSymbol{f1a9}] + \definesymbol [edge] [\FontAwesomeSymbol{f282}] + \definesymbol [edit] [\FontAwesomeSymbol{f044}] + \definesymbol [eject] [\FontAwesomeSymbol{f052}] + \definesymbol [ellipsis-h] [\FontAwesomeSymbol{f141}] + \definesymbol [ellipsis-v] [\FontAwesomeSymbol{f142}] + \definesymbol [empire] [\FontAwesomeSymbol{f1d1}] + \definesymbol [envelope] [\FontAwesomeSymbol{f0e0}] + \definesymbol [envelope-o] [\FontAwesomeSymbol{f003}] + \definesymbol [envelope-square] [\FontAwesomeSymbol{f199}] + \definesymbol [envira] [\FontAwesomeSymbol{f299}] + \definesymbol [eraser] [\FontAwesomeSymbol{f12d}] + \definesymbol [eur] [\FontAwesomeSymbol{f153}] + \definesymbol [euro] [\FontAwesomeSymbol{f153}] + \definesymbol [exchange] [\FontAwesomeSymbol{f0ec}] + \definesymbol [exclamation] [\FontAwesomeSymbol{f12a}] + \definesymbol [exclamation-circle] [\FontAwesomeSymbol{f06a}] + \definesymbol [exclamation-triangle] [\FontAwesomeSymbol{f071}] + \definesymbol [expand] [\FontAwesomeSymbol{f065}] + \definesymbol [expeditedssl] [\FontAwesomeSymbol{f23e}] + \definesymbol [external-link] [\FontAwesomeSymbol{f08e}] + \definesymbol [external-link-square] [\FontAwesomeSymbol{f14c}] + \definesymbol [eye] [\FontAwesomeSymbol{f06e}] + \definesymbol [eye-slash] [\FontAwesomeSymbol{f070}] + \definesymbol [eyedropper] [\FontAwesomeSymbol{f1fb}] + \definesymbol [fa] [\FontAwesomeSymbol{f2b4}] + \definesymbol [facebook] [\FontAwesomeSymbol{f09a}] + \definesymbol [facebook-f] [\FontAwesomeSymbol{f09a}] + \definesymbol [facebook-official] [\FontAwesomeSymbol{f230}] + \definesymbol [facebook-square] [\FontAwesomeSymbol{f082}] + \definesymbol [fast-backward] [\FontAwesomeSymbol{f049}] + \definesymbol [fast-forward] [\FontAwesomeSymbol{f050}] + \definesymbol [fax] [\FontAwesomeSymbol{f1ac}] + \definesymbol [feed] [\FontAwesomeSymbol{f09e}] + \definesymbol [female] [\FontAwesomeSymbol{f182}] + \definesymbol [fighter-jet] [\FontAwesomeSymbol{f0fb}] + \definesymbol [file] [\FontAwesomeSymbol{f15b}] + \definesymbol [file-archive-o] [\FontAwesomeSymbol{f1c6}] + \definesymbol [file-audio-o] [\FontAwesomeSymbol{f1c7}] + \definesymbol [file-code-o] [\FontAwesomeSymbol{f1c9}] + \definesymbol [file-excel-o] [\FontAwesomeSymbol{f1c3}] + \definesymbol [file-image-o] [\FontAwesomeSymbol{f1c5}] + \definesymbol [file-movie-o] [\FontAwesomeSymbol{f1c8}] + \definesymbol [file-o] [\FontAwesomeSymbol{f016}] + \definesymbol [file-pdf-o] [\FontAwesomeSymbol{f1c1}] + \definesymbol [file-photo-o] [\FontAwesomeSymbol{f1c5}] + \definesymbol [file-picture-o] [\FontAwesomeSymbol{f1c5}] + \definesymbol [file-powerpoint-o] [\FontAwesomeSymbol{f1c4}] + \definesymbol [file-sound-o] [\FontAwesomeSymbol{f1c7}] + \definesymbol [file-text] [\FontAwesomeSymbol{f15c}] + \definesymbol [file-text-o] [\FontAwesomeSymbol{f0f6}] + \definesymbol [file-video-o] [\FontAwesomeSymbol{f1c8}] + \definesymbol [file-word-o] [\FontAwesomeSymbol{f1c2}] + \definesymbol [file-zip-o] [\FontAwesomeSymbol{f1c6}] + \definesymbol [files-o] [\FontAwesomeSymbol{f0c5}] + \definesymbol [film] [\FontAwesomeSymbol{f008}] + \definesymbol [filter] [\FontAwesomeSymbol{f0b0}] + \definesymbol [fire] [\FontAwesomeSymbol{f06d}] + \definesymbol [fire-extinguisher] [\FontAwesomeSymbol{f134}] + \definesymbol [firefox] [\FontAwesomeSymbol{f269}] + \definesymbol [first-order] [\FontAwesomeSymbol{f2b0}] + \definesymbol [flag] [\FontAwesomeSymbol{f024}] + \definesymbol [flag-checkered] [\FontAwesomeSymbol{f11e}] + \definesymbol [flag-o] [\FontAwesomeSymbol{f11d}] + \definesymbol [flash] [\FontAwesomeSymbol{f0e7}] + \definesymbol [flask] [\FontAwesomeSymbol{f0c3}] + \definesymbol [flickr] [\FontAwesomeSymbol{f16e}] + \definesymbol [floppy-o] [\FontAwesomeSymbol{f0c7}] + \definesymbol [folder] [\FontAwesomeSymbol{f07b}] + \definesymbol [folder-o] [\FontAwesomeSymbol{f114}] + \definesymbol [folder-open] [\FontAwesomeSymbol{f07c}] + \definesymbol [folder-open-o] [\FontAwesomeSymbol{f115}] + \definesymbol [font] [\FontAwesomeSymbol{f031}] + \definesymbol [font-awesome] [\FontAwesomeSymbol{f2b4}] + \definesymbol [fonticons] [\FontAwesomeSymbol{f280}] + \definesymbol [fort-awesome] [\FontAwesomeSymbol{f286}] + \definesymbol [forumbee] [\FontAwesomeSymbol{f211}] + \definesymbol [forward] [\FontAwesomeSymbol{f04e}] + \definesymbol [foursquare] [\FontAwesomeSymbol{f180}] + \definesymbol [frown-o] [\FontAwesomeSymbol{f119}] + \definesymbol [futbol-o] [\FontAwesomeSymbol{f1e3}] + \definesymbol [gamepad] [\FontAwesomeSymbol{f11b}] + \definesymbol [gavel] [\FontAwesomeSymbol{f0e3}] + \definesymbol [gbp] [\FontAwesomeSymbol{f154}] + \definesymbol [ge] [\FontAwesomeSymbol{f1d1}] + \definesymbol [gear] [\FontAwesomeSymbol{f013}] + \definesymbol [gears] [\FontAwesomeSymbol{f085}] + \definesymbol [genderless] [\FontAwesomeSymbol{f22d}] + \definesymbol [get-pocket] [\FontAwesomeSymbol{f265}] + \definesymbol [gg] [\FontAwesomeSymbol{f260}] + \definesymbol [gg-circle] [\FontAwesomeSymbol{f261}] + \definesymbol [gift] [\FontAwesomeSymbol{f06b}] + \definesymbol [git] [\FontAwesomeSymbol{f1d3}] + \definesymbol [git-square] [\FontAwesomeSymbol{f1d2}] + \definesymbol [github] [\FontAwesomeSymbol{f09b}] + \definesymbol [github-alt] [\FontAwesomeSymbol{f113}] + \definesymbol [github-square] [\FontAwesomeSymbol{f092}] + \definesymbol [gitlab] [\FontAwesomeSymbol{f296}] + \definesymbol [gittip] [\FontAwesomeSymbol{f184}] + \definesymbol [glass] [\FontAwesomeSymbol{f000}] + \definesymbol [glide] [\FontAwesomeSymbol{f2a5}] + \definesymbol [glide-g] [\FontAwesomeSymbol{f2a6}] + \definesymbol [globe] [\FontAwesomeSymbol{f0ac}] + \definesymbol [google] [\FontAwesomeSymbol{f1a0}] + \definesymbol [google-plus] [\FontAwesomeSymbol{f0d5}] + \definesymbol [google-plus-circle] [\FontAwesomeSymbol{f2b3}] + \definesymbol [google-plus-official] [\FontAwesomeSymbol{f2b3}] + \definesymbol [google-plus-square] [\FontAwesomeSymbol{f0d4}] + \definesymbol [google-wallet] [\FontAwesomeSymbol{f1ee}] + \definesymbol [graduation-cap] [\FontAwesomeSymbol{f19d}] + \definesymbol [gratipay] [\FontAwesomeSymbol{f184}] + \definesymbol [group] [\FontAwesomeSymbol{f0c0}] + \definesymbol [h-square] [\FontAwesomeSymbol{f0fd}] + \definesymbol [hacker-news] [\FontAwesomeSymbol{f1d4}] + \definesymbol [hand-grab-o] [\FontAwesomeSymbol{f255}] + \definesymbol [hand-lizard-o] [\FontAwesomeSymbol{f258}] + \definesymbol [hand-o-down] [\FontAwesomeSymbol{f0a7}] + \definesymbol [hand-o-left] [\FontAwesomeSymbol{f0a5}] + \definesymbol [hand-o-right] [\FontAwesomeSymbol{f0a4}] + \definesymbol [hand-o-up] [\FontAwesomeSymbol{f0a6}] + \definesymbol [hand-paper-o] [\FontAwesomeSymbol{f256}] + \definesymbol [hand-peace-o] [\FontAwesomeSymbol{f25b}] + \definesymbol [hand-pointer-o] [\FontAwesomeSymbol{f25a}] + \definesymbol [hand-rock-o] [\FontAwesomeSymbol{f255}] + \definesymbol [hand-scissors-o] [\FontAwesomeSymbol{f257}] + \definesymbol [hand-spock-o] [\FontAwesomeSymbol{f259}] + \definesymbol [hand-stop-o] [\FontAwesomeSymbol{f256}] + \definesymbol [hard-of-hearing] [\FontAwesomeSymbol{f2a4}] + \definesymbol [hashtag] [\FontAwesomeSymbol{f292}] + \definesymbol [hdd-o] [\FontAwesomeSymbol{f0a0}] + \definesymbol [header] [\FontAwesomeSymbol{f1dc}] + \definesymbol [headphones] [\FontAwesomeSymbol{f025}] + \definesymbol [heart] [\FontAwesomeSymbol{f004}] + \definesymbol [heart-o] [\FontAwesomeSymbol{f08a}] + \definesymbol [heartbeat] [\FontAwesomeSymbol{f21e}] + \definesymbol [history] [\FontAwesomeSymbol{f1da}] + \definesymbol [home] [\FontAwesomeSymbol{f015}] + \definesymbol [hospital-o] [\FontAwesomeSymbol{f0f8}] + \definesymbol [hotel] [\FontAwesomeSymbol{f236}] + \definesymbol [hourglass] [\FontAwesomeSymbol{f254}] + \definesymbol [hourglass-1] [\FontAwesomeSymbol{f251}] + \definesymbol [hourglass-2] [\FontAwesomeSymbol{f252}] + \definesymbol [hourglass-3] [\FontAwesomeSymbol{f253}] + \definesymbol [hourglass-end] [\FontAwesomeSymbol{f253}] + \definesymbol [hourglass-half] [\FontAwesomeSymbol{f252}] + \definesymbol [hourglass-o] [\FontAwesomeSymbol{f250}] + \definesymbol [hourglass-start] [\FontAwesomeSymbol{f251}] + \definesymbol [houzz] [\FontAwesomeSymbol{f27c}] + \definesymbol [html5] [\FontAwesomeSymbol{f13b}] + \definesymbol [i-cursor] [\FontAwesomeSymbol{f246}] + \definesymbol [ils] [\FontAwesomeSymbol{f20b}] + \definesymbol [image] [\FontAwesomeSymbol{f03e}] + \definesymbol [inbox] [\FontAwesomeSymbol{f01c}] + \definesymbol [indent] [\FontAwesomeSymbol{f03c}] + \definesymbol [industry] [\FontAwesomeSymbol{f275}] + \definesymbol [info] [\FontAwesomeSymbol{f129}] + \definesymbol [info-circle] [\FontAwesomeSymbol{f05a}] + \definesymbol [inr] [\FontAwesomeSymbol{f156}] + \definesymbol [instagram] [\FontAwesomeSymbol{f16d}] + \definesymbol [institution] [\FontAwesomeSymbol{f19c}] + \definesymbol [internet-explorer] [\FontAwesomeSymbol{f26b}] + \definesymbol [intersex] [\FontAwesomeSymbol{f224}] + \definesymbol [ioxhost] [\FontAwesomeSymbol{f208}] + \definesymbol [italic] [\FontAwesomeSymbol{f033}] + \definesymbol [joomla] [\FontAwesomeSymbol{f1aa}] + \definesymbol [jpy] [\FontAwesomeSymbol{f157}] + \definesymbol [jsfiddle] [\FontAwesomeSymbol{f1cc}] + \definesymbol [key] [\FontAwesomeSymbol{f084}] + \definesymbol [keyboard-o] [\FontAwesomeSymbol{f11c}] + \definesymbol [krw] [\FontAwesomeSymbol{f159}] + \definesymbol [language] [\FontAwesomeSymbol{f1ab}] + \definesymbol [laptop] [\FontAwesomeSymbol{f109}] + \definesymbol [lastfm] [\FontAwesomeSymbol{f202}] + \definesymbol [lastfm-square] [\FontAwesomeSymbol{f203}] + \definesymbol [leaf] [\FontAwesomeSymbol{f06c}] + \definesymbol [leanpub] [\FontAwesomeSymbol{f212}] + \definesymbol [legal] [\FontAwesomeSymbol{f0e3}] + \definesymbol [lemon-o] [\FontAwesomeSymbol{f094}] + \definesymbol [level-down] [\FontAwesomeSymbol{f149}] + \definesymbol [level-up] [\FontAwesomeSymbol{f148}] + \definesymbol [life-bouy] [\FontAwesomeSymbol{f1cd}] + \definesymbol [life-buoy] [\FontAwesomeSymbol{f1cd}] + \definesymbol [life-ring] [\FontAwesomeSymbol{f1cd}] + \definesymbol [life-saver] [\FontAwesomeSymbol{f1cd}] + \definesymbol [lightbulb-o] [\FontAwesomeSymbol{f0eb}] + \definesymbol [line-chart] [\FontAwesomeSymbol{f201}] + \definesymbol [link] [\FontAwesomeSymbol{f0c1}] + \definesymbol [linkedin] [\FontAwesomeSymbol{f0e1}] + \definesymbol [linkedin-square] [\FontAwesomeSymbol{f08c}] + \definesymbol [linux] [\FontAwesomeSymbol{f17c}] + \definesymbol [list] [\FontAwesomeSymbol{f03a}] + \definesymbol [list-alt] [\FontAwesomeSymbol{f022}] + \definesymbol [list-ol] [\FontAwesomeSymbol{f0cb}] + \definesymbol [list-ul] [\FontAwesomeSymbol{f0ca}] + \definesymbol [location-arrow] [\FontAwesomeSymbol{f124}] + \definesymbol [lock] [\FontAwesomeSymbol{f023}] + \definesymbol [long-arrow-down] [\FontAwesomeSymbol{f175}] + \definesymbol [long-arrow-left] [\FontAwesomeSymbol{f177}] + \definesymbol [long-arrow-right] [\FontAwesomeSymbol{f178}] + \definesymbol [long-arrow-up] [\FontAwesomeSymbol{f176}] + \definesymbol [low-vision] [\FontAwesomeSymbol{f2a8}] + \definesymbol [magic] [\FontAwesomeSymbol{f0d0}] + \definesymbol [magnet] [\FontAwesomeSymbol{f076}] + \definesymbol [mail-forward] [\FontAwesomeSymbol{f064}] + \definesymbol [mail-reply] [\FontAwesomeSymbol{f112}] + \definesymbol [mail-reply-all] [\FontAwesomeSymbol{f122}] + \definesymbol [male] [\FontAwesomeSymbol{f183}] + \definesymbol [map] [\FontAwesomeSymbol{f279}] + \definesymbol [map-marker] [\FontAwesomeSymbol{f041}] + \definesymbol [map-o] [\FontAwesomeSymbol{f278}] + \definesymbol [map-pin] [\FontAwesomeSymbol{f276}] + \definesymbol [map-signs] [\FontAwesomeSymbol{f277}] + \definesymbol [mars] [\FontAwesomeSymbol{f222}] + \definesymbol [mars-double] [\FontAwesomeSymbol{f227}] + \definesymbol [mars-stroke] [\FontAwesomeSymbol{f229}] + \definesymbol [mars-stroke-h] [\FontAwesomeSymbol{f22b}] + \definesymbol [mars-stroke-v] [\FontAwesomeSymbol{f22a}] + \definesymbol [maxcdn] [\FontAwesomeSymbol{f136}] + \definesymbol [meanpath] [\FontAwesomeSymbol{f20c}] + \definesymbol [medium] [\FontAwesomeSymbol{f23a}] + \definesymbol [medkit] [\FontAwesomeSymbol{f0fa}] + \definesymbol [meh-o] [\FontAwesomeSymbol{f11a}] + \definesymbol [mercury] [\FontAwesomeSymbol{f223}] + \definesymbol [microphone] [\FontAwesomeSymbol{f130}] + \definesymbol [microphone-slash] [\FontAwesomeSymbol{f131}] + \definesymbol [minus] [\FontAwesomeSymbol{f068}] + \definesymbol [minus-circle] [\FontAwesomeSymbol{f056}] + \definesymbol [minus-square] [\FontAwesomeSymbol{f146}] + \definesymbol [minus-square-o] [\FontAwesomeSymbol{f147}] + \definesymbol [mixcloud] [\FontAwesomeSymbol{f289}] + \definesymbol [mobile] [\FontAwesomeSymbol{f10b}] + \definesymbol [mobile-phone] [\FontAwesomeSymbol{f10b}] + \definesymbol [modx] [\FontAwesomeSymbol{f285}] + \definesymbol [money] [\FontAwesomeSymbol{f0d6}] + \definesymbol [moon-o] [\FontAwesomeSymbol{f186}] + \definesymbol [mortar-board] [\FontAwesomeSymbol{f19d}] + \definesymbol [motorcycle] [\FontAwesomeSymbol{f21c}] + \definesymbol [mouse-pointer] [\FontAwesomeSymbol{f245}] + \definesymbol [music] [\FontAwesomeSymbol{f001}] + \definesymbol [navicon] [\FontAwesomeSymbol{f0c9}] + \definesymbol [neuter] [\FontAwesomeSymbol{f22c}] + \definesymbol [newspaper-o] [\FontAwesomeSymbol{f1ea}] + \definesymbol [object-group] [\FontAwesomeSymbol{f247}] + \definesymbol [object-ungroup] [\FontAwesomeSymbol{f248}] + \definesymbol [odnoklassniki] [\FontAwesomeSymbol{f263}] + \definesymbol [odnoklassniki-square] [\FontAwesomeSymbol{f264}] + \definesymbol [opencart] [\FontAwesomeSymbol{f23d}] + \definesymbol [openid] [\FontAwesomeSymbol{f19b}] + \definesymbol [opera] [\FontAwesomeSymbol{f26a}] + \definesymbol [optin-monster] [\FontAwesomeSymbol{f23c}] + \definesymbol [outdent] [\FontAwesomeSymbol{f03b}] + \definesymbol [pagelines] [\FontAwesomeSymbol{f18c}] + \definesymbol [paint-brush] [\FontAwesomeSymbol{f1fc}] + \definesymbol [paper-plane] [\FontAwesomeSymbol{f1d8}] + \definesymbol [paper-plane-o] [\FontAwesomeSymbol{f1d9}] + \definesymbol [paperclip] [\FontAwesomeSymbol{f0c6}] + \definesymbol [paragraph] [\FontAwesomeSymbol{f1dd}] + \definesymbol [paste] [\FontAwesomeSymbol{f0ea}] + \definesymbol [pause] [\FontAwesomeSymbol{f04c}] + \definesymbol [pause-circle] [\FontAwesomeSymbol{f28b}] + \definesymbol [pause-circle-o] [\FontAwesomeSymbol{f28c}] + \definesymbol [paw] [\FontAwesomeSymbol{f1b0}] + \definesymbol [paypal] [\FontAwesomeSymbol{f1ed}] + \definesymbol [pencil] [\FontAwesomeSymbol{f040}] + \definesymbol [pencil-square] [\FontAwesomeSymbol{f14b}] + \definesymbol [pencil-square-o] [\FontAwesomeSymbol{f044}] + \definesymbol [percent] [\FontAwesomeSymbol{f295}] + \definesymbol [phone] [\FontAwesomeSymbol{f095}] + \definesymbol [phone-square] [\FontAwesomeSymbol{f098}] + \definesymbol [photo] [\FontAwesomeSymbol{f03e}] + \definesymbol [picture-o] [\FontAwesomeSymbol{f03e}] + \definesymbol [pie-chart] [\FontAwesomeSymbol{f200}] + \definesymbol [pied-piper] [\FontAwesomeSymbol{f2ae}] + \definesymbol [pied-piper-alt] [\FontAwesomeSymbol{f1a8}] + \definesymbol [pied-piper-pp] [\FontAwesomeSymbol{f1a7}] + \definesymbol [pinterest] [\FontAwesomeSymbol{f0d2}] + \definesymbol [pinterest-p] [\FontAwesomeSymbol{f231}] + \definesymbol [pinterest-square] [\FontAwesomeSymbol{f0d3}] + \definesymbol [plane] [\FontAwesomeSymbol{f072}] + \definesymbol [play] [\FontAwesomeSymbol{f04b}] + \definesymbol [play-circle] [\FontAwesomeSymbol{f144}] + \definesymbol [play-circle-o] [\FontAwesomeSymbol{f01d}] + \definesymbol [plug] [\FontAwesomeSymbol{f1e6}] + \definesymbol [plus] [\FontAwesomeSymbol{f067}] + \definesymbol [plus-circle] [\FontAwesomeSymbol{f055}] + \definesymbol [plus-square] [\FontAwesomeSymbol{f0fe}] + \definesymbol [plus-square-o] [\FontAwesomeSymbol{f196}] + \definesymbol [power-off] [\FontAwesomeSymbol{f011}] + \definesymbol [print] [\FontAwesomeSymbol{f02f}] + \definesymbol [product-hunt] [\FontAwesomeSymbol{f288}] + \definesymbol [puzzle-piece] [\FontAwesomeSymbol{f12e}] + \definesymbol [qq] [\FontAwesomeSymbol{f1d6}] + \definesymbol [qrcode] [\FontAwesomeSymbol{f029}] + \definesymbol [question] [\FontAwesomeSymbol{f128}] + \definesymbol [question-circle] [\FontAwesomeSymbol{f059}] + \definesymbol [question-circle-o] [\FontAwesomeSymbol{f29c}] + \definesymbol [quote-left] [\FontAwesomeSymbol{f10d}] + \definesymbol [quote-right] [\FontAwesomeSymbol{f10e}] + \definesymbol [ra] [\FontAwesomeSymbol{f1d0}] + \definesymbol [random] [\FontAwesomeSymbol{f074}] + \definesymbol [rebel] [\FontAwesomeSymbol{f1d0}] + \definesymbol [recycle] [\FontAwesomeSymbol{f1b8}] + \definesymbol [reddit] [\FontAwesomeSymbol{f1a1}] + \definesymbol [reddit-alien] [\FontAwesomeSymbol{f281}] + \definesymbol [reddit-square] [\FontAwesomeSymbol{f1a2}] + \definesymbol [refresh] [\FontAwesomeSymbol{f021}] + \definesymbol [registered] [\FontAwesomeSymbol{f25d}] + \definesymbol [remove] [\FontAwesomeSymbol{f00d}] + \definesymbol [renren] [\FontAwesomeSymbol{f18b}] + \definesymbol [reorder] [\FontAwesomeSymbol{f0c9}] + \definesymbol [repeat] [\FontAwesomeSymbol{f01e}] + \definesymbol [reply] [\FontAwesomeSymbol{f112}] + \definesymbol [reply-all] [\FontAwesomeSymbol{f122}] + \definesymbol [resistance] [\FontAwesomeSymbol{f1d0}] + \definesymbol [retweet] [\FontAwesomeSymbol{f079}] + \definesymbol [rmb] [\FontAwesomeSymbol{f157}] + \definesymbol [road] [\FontAwesomeSymbol{f018}] + \definesymbol [rocket] [\FontAwesomeSymbol{f135}] + \definesymbol [rotate-left] [\FontAwesomeSymbol{f0e2}] + \definesymbol [rotate-right] [\FontAwesomeSymbol{f01e}] + \definesymbol [rouble] [\FontAwesomeSymbol{f158}] + \definesymbol [rss] [\FontAwesomeSymbol{f09e}] + \definesymbol [rss-square] [\FontAwesomeSymbol{f143}] + \definesymbol [rub] [\FontAwesomeSymbol{f158}] + \definesymbol [ruble] [\FontAwesomeSymbol{f158}] + \definesymbol [rupee] [\FontAwesomeSymbol{f156}] + \definesymbol [safari] [\FontAwesomeSymbol{f267}] + \definesymbol [save] [\FontAwesomeSymbol{f0c7}] + \definesymbol [scissors] [\FontAwesomeSymbol{f0c4}] + \definesymbol [scribd] [\FontAwesomeSymbol{f28a}] + \definesymbol [search] [\FontAwesomeSymbol{f002}] + \definesymbol [search-minus] [\FontAwesomeSymbol{f010}] + \definesymbol [search-plus] [\FontAwesomeSymbol{f00e}] + \definesymbol [sellsy] [\FontAwesomeSymbol{f213}] + \definesymbol [send] [\FontAwesomeSymbol{f1d8}] + \definesymbol [send-o] [\FontAwesomeSymbol{f1d9}] + \definesymbol [server] [\FontAwesomeSymbol{f233}] + \definesymbol [share] [\FontAwesomeSymbol{f064}] + \definesymbol [share-alt] [\FontAwesomeSymbol{f1e0}] + \definesymbol [share-alt-square] [\FontAwesomeSymbol{f1e1}] + \definesymbol [share-square] [\FontAwesomeSymbol{f14d}] + \definesymbol [share-square-o] [\FontAwesomeSymbol{f045}] + \definesymbol [shekel] [\FontAwesomeSymbol{f20b}] + \definesymbol [sheqel] [\FontAwesomeSymbol{f20b}] + \definesymbol [shield] [\FontAwesomeSymbol{f132}] + \definesymbol [ship] [\FontAwesomeSymbol{f21a}] + \definesymbol [shirtsinbulk] [\FontAwesomeSymbol{f214}] + \definesymbol [shopping-bag] [\FontAwesomeSymbol{f290}] + \definesymbol [shopping-basket] [\FontAwesomeSymbol{f291}] + \definesymbol [shopping-cart] [\FontAwesomeSymbol{f07a}] + \definesymbol [sign-in] [\FontAwesomeSymbol{f090}] + \definesymbol [sign-language] [\FontAwesomeSymbol{f2a7}] + \definesymbol [sign-out] [\FontAwesomeSymbol{f08b}] + \definesymbol [signal] [\FontAwesomeSymbol{f012}] + \definesymbol [signing] [\FontAwesomeSymbol{f2a7}] + \definesymbol [simplybuilt] [\FontAwesomeSymbol{f215}] + \definesymbol [sitemap] [\FontAwesomeSymbol{f0e8}] + \definesymbol [skyatlas] [\FontAwesomeSymbol{f216}] + \definesymbol [skype] [\FontAwesomeSymbol{f17e}] + \definesymbol [slack] [\FontAwesomeSymbol{f198}] + \definesymbol [sliders] [\FontAwesomeSymbol{f1de}] + \definesymbol [slideshare] [\FontAwesomeSymbol{f1e7}] + \definesymbol [smile-o] [\FontAwesomeSymbol{f118}] + \definesymbol [snapchat] [\FontAwesomeSymbol{f2ab}] + \definesymbol [snapchat-ghost] [\FontAwesomeSymbol{f2ac}] + \definesymbol [snapchat-square] [\FontAwesomeSymbol{f2ad}] + \definesymbol [soccer-ball-o] [\FontAwesomeSymbol{f1e3}] + \definesymbol [sort] [\FontAwesomeSymbol{f0dc}] + \definesymbol [sort-alpha-asc] [\FontAwesomeSymbol{f15d}] + \definesymbol [sort-alpha-desc] [\FontAwesomeSymbol{f15e}] + \definesymbol [sort-amount-asc] [\FontAwesomeSymbol{f160}] + \definesymbol [sort-amount-desc] [\FontAwesomeSymbol{f161}] + \definesymbol [sort-asc] [\FontAwesomeSymbol{f0de}] + \definesymbol [sort-desc] [\FontAwesomeSymbol{f0dd}] + \definesymbol [sort-down] [\FontAwesomeSymbol{f0dd}] + \definesymbol [sort-numeric-asc] [\FontAwesomeSymbol{f162}] + \definesymbol [sort-numeric-desc] [\FontAwesomeSymbol{f163}] + \definesymbol [sort-up] [\FontAwesomeSymbol{f0de}] + \definesymbol [soundcloud] [\FontAwesomeSymbol{f1be}] + \definesymbol [space-shuttle] [\FontAwesomeSymbol{f197}] + \definesymbol [spinner] [\FontAwesomeSymbol{f110}] + \definesymbol [spoon] [\FontAwesomeSymbol{f1b1}] + \definesymbol [spotify] [\FontAwesomeSymbol{f1bc}] + \definesymbol [square] [\FontAwesomeSymbol{f0c8}] + \definesymbol [square-o] [\FontAwesomeSymbol{f096}] + \definesymbol [stack-exchange] [\FontAwesomeSymbol{f18d}] + \definesymbol [stack-overflow] [\FontAwesomeSymbol{f16c}] + \definesymbol [star] [\FontAwesomeSymbol{f005}] + \definesymbol [star-half] [\FontAwesomeSymbol{f089}] + \definesymbol [star-half-empty] [\FontAwesomeSymbol{f123}] + \definesymbol [star-half-full] [\FontAwesomeSymbol{f123}] + \definesymbol [star-half-o] [\FontAwesomeSymbol{f123}] + \definesymbol [star-o] [\FontAwesomeSymbol{f006}] + \definesymbol [steam] [\FontAwesomeSymbol{f1b6}] + \definesymbol [steam-square] [\FontAwesomeSymbol{f1b7}] + \definesymbol [step-backward] [\FontAwesomeSymbol{f048}] + \definesymbol [step-forward] [\FontAwesomeSymbol{f051}] + \definesymbol [stethoscope] [\FontAwesomeSymbol{f0f1}] + \definesymbol [sticky-note] [\FontAwesomeSymbol{f249}] + \definesymbol [sticky-note-o] [\FontAwesomeSymbol{f24a}] + \definesymbol [stop] [\FontAwesomeSymbol{f04d}] + \definesymbol [stop-circle] [\FontAwesomeSymbol{f28d}] + \definesymbol [stop-circle-o] [\FontAwesomeSymbol{f28e}] + \definesymbol [street-view] [\FontAwesomeSymbol{f21d}] + \definesymbol [strikethrough] [\FontAwesomeSymbol{f0cc}] + \definesymbol [stumbleupon] [\FontAwesomeSymbol{f1a4}] + \definesymbol [stumbleupon-circle] [\FontAwesomeSymbol{f1a3}] + \definesymbol [subscript] [\FontAwesomeSymbol{f12c}] + \definesymbol [subway] [\FontAwesomeSymbol{f239}] + \definesymbol [suitcase] [\FontAwesomeSymbol{f0f2}] + \definesymbol [sun-o] [\FontAwesomeSymbol{f185}] + \definesymbol [superscript] [\FontAwesomeSymbol{f12b}] + \definesymbol [support] [\FontAwesomeSymbol{f1cd}] + \definesymbol [table] [\FontAwesomeSymbol{f0ce}] + \definesymbol [tablet] [\FontAwesomeSymbol{f10a}] + \definesymbol [tachometer] [\FontAwesomeSymbol{f0e4}] + \definesymbol [tag] [\FontAwesomeSymbol{f02b}] + \definesymbol [tags] [\FontAwesomeSymbol{f02c}] + \definesymbol [tasks] [\FontAwesomeSymbol{f0ae}] + \definesymbol [taxi] [\FontAwesomeSymbol{f1ba}] + \definesymbol [television] [\FontAwesomeSymbol{f26c}] + \definesymbol [tencent-weibo] [\FontAwesomeSymbol{f1d5}] + \definesymbol [terminal] [\FontAwesomeSymbol{f120}] + \definesymbol [text-height] [\FontAwesomeSymbol{f034}] + \definesymbol [text-width] [\FontAwesomeSymbol{f035}] + \definesymbol [th] [\FontAwesomeSymbol{f00a}] + \definesymbol [th-large] [\FontAwesomeSymbol{f009}] + \definesymbol [th-list] [\FontAwesomeSymbol{f00b}] + \definesymbol [themeisle] [\FontAwesomeSymbol{f2b2}] + \definesymbol [thumb-tack] [\FontAwesomeSymbol{f08d}] + \definesymbol [thumbs-down] [\FontAwesomeSymbol{f165}] + \definesymbol [thumbs-o-down] [\FontAwesomeSymbol{f088}] + \definesymbol [thumbs-o-up] [\FontAwesomeSymbol{f087}] + \definesymbol [thumbs-up] [\FontAwesomeSymbol{f164}] + \definesymbol [ticket] [\FontAwesomeSymbol{f145}] + \definesymbol [times] [\FontAwesomeSymbol{f00d}] + \definesymbol [times-circle] [\FontAwesomeSymbol{f057}] + \definesymbol [times-circle-o] [\FontAwesomeSymbol{f05c}] + \definesymbol [tint] [\FontAwesomeSymbol{f043}] + \definesymbol [toggle-down] [\FontAwesomeSymbol{f150}] + \definesymbol [toggle-left] [\FontAwesomeSymbol{f191}] + \definesymbol [toggle-off] [\FontAwesomeSymbol{f204}] + \definesymbol [toggle-on] [\FontAwesomeSymbol{f205}] + \definesymbol [toggle-right] [\FontAwesomeSymbol{f152}] + \definesymbol [toggle-up] [\FontAwesomeSymbol{f151}] + \definesymbol [trademark] [\FontAwesomeSymbol{f25c}] + \definesymbol [train] [\FontAwesomeSymbol{f238}] + \definesymbol [transgender] [\FontAwesomeSymbol{f224}] + \definesymbol [transgender-alt] [\FontAwesomeSymbol{f225}] + \definesymbol [trash] [\FontAwesomeSymbol{f1f8}] + \definesymbol [trash-o] [\FontAwesomeSymbol{f014}] + \definesymbol [tree] [\FontAwesomeSymbol{f1bb}] + \definesymbol [trello] [\FontAwesomeSymbol{f181}] + \definesymbol [tripadvisor] [\FontAwesomeSymbol{f262}] + \definesymbol [trophy] [\FontAwesomeSymbol{f091}] + \definesymbol [truck] [\FontAwesomeSymbol{f0d1}] + \definesymbol [try] [\FontAwesomeSymbol{f195}] + \definesymbol [tty] [\FontAwesomeSymbol{f1e4}] + \definesymbol [tumblr] [\FontAwesomeSymbol{f173}] + \definesymbol [tumblr-square] [\FontAwesomeSymbol{f174}] + \definesymbol [turkish-lira] [\FontAwesomeSymbol{f195}] + \definesymbol [tv] [\FontAwesomeSymbol{f26c}] + \definesymbol [twitch] [\FontAwesomeSymbol{f1e8}] + \definesymbol [twitter] [\FontAwesomeSymbol{f099}] + \definesymbol [twitter-square] [\FontAwesomeSymbol{f081}] + \definesymbol [umbrella] [\FontAwesomeSymbol{f0e9}] + \definesymbol [underline] [\FontAwesomeSymbol{f0cd}] + \definesymbol [undo] [\FontAwesomeSymbol{f0e2}] + \definesymbol [universal-access] [\FontAwesomeSymbol{f29a}] + \definesymbol [university] [\FontAwesomeSymbol{f19c}] + \definesymbol [unlink] [\FontAwesomeSymbol{f127}] + \definesymbol [unlock] [\FontAwesomeSymbol{f09c}] + \definesymbol [unlock-alt] [\FontAwesomeSymbol{f13e}] + \definesymbol [unsorted] [\FontAwesomeSymbol{f0dc}] + \definesymbol [upload] [\FontAwesomeSymbol{f093}] + \definesymbol [usb] [\FontAwesomeSymbol{f287}] + \definesymbol [usd] [\FontAwesomeSymbol{f155}] + \definesymbol [user] [\FontAwesomeSymbol{f007}] + \definesymbol [user-md] [\FontAwesomeSymbol{f0f0}] + \definesymbol [user-plus] [\FontAwesomeSymbol{f234}] + \definesymbol [user-secret] [\FontAwesomeSymbol{f21b}] + \definesymbol [user-times] [\FontAwesomeSymbol{f235}] + \definesymbol [users] [\FontAwesomeSymbol{f0c0}] + \definesymbol [venus] [\FontAwesomeSymbol{f221}] + \definesymbol [venus-double] [\FontAwesomeSymbol{f226}] + \definesymbol [venus-mars] [\FontAwesomeSymbol{f228}] + \definesymbol [viacoin] [\FontAwesomeSymbol{f237}] + \definesymbol [viadeo] [\FontAwesomeSymbol{f2a9}] + \definesymbol [viadeo-square] [\FontAwesomeSymbol{f2aa}] + \definesymbol [video-camera] [\FontAwesomeSymbol{f03d}] + \definesymbol [vimeo] [\FontAwesomeSymbol{f27d}] + \definesymbol [vimeo-square] [\FontAwesomeSymbol{f194}] + \definesymbol [vine] [\FontAwesomeSymbol{f1ca}] + \definesymbol [vk] [\FontAwesomeSymbol{f189}] + \definesymbol [volume-control-phone] [\FontAwesomeSymbol{f2a0}] + \definesymbol [volume-down] [\FontAwesomeSymbol{f027}] + \definesymbol [volume-off] [\FontAwesomeSymbol{f026}] + \definesymbol [volume-up] [\FontAwesomeSymbol{f028}] + \definesymbol [warning] [\FontAwesomeSymbol{f071}] + \definesymbol [wechat] [\FontAwesomeSymbol{f1d7}] + \definesymbol [weibo] [\FontAwesomeSymbol{f18a}] + \definesymbol [weixin] [\FontAwesomeSymbol{f1d7}] + \definesymbol [whatsapp] [\FontAwesomeSymbol{f232}] + \definesymbol [wheelchair] [\FontAwesomeSymbol{f193}] + \definesymbol [wheelchair-alt] [\FontAwesomeSymbol{f29b}] + \definesymbol [wifi] [\FontAwesomeSymbol{f1eb}] + \definesymbol [wikipedia-w] [\FontAwesomeSymbol{f266}] + \definesymbol [windows] [\FontAwesomeSymbol{f17a}] + \definesymbol [won] [\FontAwesomeSymbol{f159}] + \definesymbol [wordpress] [\FontAwesomeSymbol{f19a}] + \definesymbol [wpbeginner] [\FontAwesomeSymbol{f297}] + \definesymbol [wpforms] [\FontAwesomeSymbol{f298}] + \definesymbol [wrench] [\FontAwesomeSymbol{f0ad}] + \definesymbol [xing] [\FontAwesomeSymbol{f168}] + \definesymbol [xing-square] [\FontAwesomeSymbol{f169}] + \definesymbol [y-combinator] [\FontAwesomeSymbol{f23b}] + \definesymbol [y-combinator-square] [\FontAwesomeSymbol{f1d4}] + \definesymbol [yahoo] [\FontAwesomeSymbol{f19e}] + \definesymbol [yc] [\FontAwesomeSymbol{f23b}] + \definesymbol [yc-square] [\FontAwesomeSymbol{f1d4}] + \definesymbol [yelp] [\FontAwesomeSymbol{f1e9}] + \definesymbol [yen] [\FontAwesomeSymbol{f157}] + \definesymbol [yoast] [\FontAwesomeSymbol{f2b1}] + \definesymbol [youtube] [\FontAwesomeSymbol{f167}] + \definesymbol [youtube-play] [\FontAwesomeSymbol{f16a}] + \definesymbol [youtube-square] [\FontAwesomeSymbol{f166}] + +\stopsymbolset + +\continueifinputfile{symb-imp-fontawesome.mkiv} + +% \usesymbols[fontawesome] + +\starttext + + \showsymbolset[fontawesome] + +\stoptext diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv index c8d7d5aae6d..4cd839bd6dd 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv @@ -1723,9 +1723,13 @@ \unexpanded\def\tabl_tabulate_HQ_first{\tabl_tabulate_column_equal \plustwo} %unexpanded\def\tabl_tabulate_NG_first{\NC\tabl_tabulate_charalign} -\unexpanded\def\tabl_tabulate_NG_first{\NC} -\unexpanded\def\tabl_tabulate_NN_first{\NC\tabl_tabulate_digits} % new, undocumented, test first -\unexpanded\def\tabl_tabulate_ND_first{\NC\tabl_tabulate_digits} % same, for old times sake +%unexpanded\def\tabl_tabulate_NG_first{\NC} +%unexpanded\def\tabl_tabulate_NN_first{\NC\tabl_tabulate_digits} % new, undocumented, test first +%unexpanded\def\tabl_tabulate_ND_first{\NC\tabl_tabulate_digits} % same, for old times sake + +\unexpanded\def\tabl_tabulate_NG_first{\tabl_tabulate_column_normal\zerocount} +\unexpanded\def\tabl_tabulate_NN_first{\tabl_tabulate_column_normal\zerocount\tabl_tabulate_digits} % new, undocumented, test first +\unexpanded\def\tabl_tabulate_ND_first{\tabl_tabulate_column_normal\zerocount\tabl_tabulate_digits} % same, for old times sake \unexpanded\def\tabl_tabulate_NR_first {\tabl_tabulate_NR_common\conditionaltrue \tabl_tabulate_check_penalties} % next row \unexpanded\def\tabl_tabulate_NB_first {\tabl_tabulate_NR_common\conditionaltrue \tabl_tabulate_nobreak_inject } % next row no break @@ -1738,9 +1742,15 @@ \unexpanded\def\tabl_tabulate_CM_first{\global\c_tabl_tabulate_localcolorspan\plustwo \tabl_tabulate_set_color_column\zerocount} \unexpanded\def\tabl_tabulate_CR_first{\global\c_tabl_tabulate_localcolorspan\plusthree\tabl_tabulate_set_color_column\zerocount} +%D The following shortcut is handy for tables where one needs bold headers: + +%unexpanded\def\tabl_tabulate_BC_first{\NC\let\fontstyle\globalfontstyle\bf} +\unexpanded\def\tabl_tabulate_BC_first{\tabl_tabulate_column_normal\zerocount\let\fontstyle\globalfontstyle\bf} + \appendtoks \let\VL\tabl_tabulate_VL_first \let\NC\tabl_tabulate_NC_first + \let\BC\tabl_tabulate_BC_first \let\RC\tabl_tabulate_RC_first \let\HC\tabl_tabulate_HC_first \let\EQ\tabl_tabulate_EQ_first diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua index cdb4d544cee..cbac9f851d4 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua @@ -74,7 +74,7 @@ if not modules then modules = { } end modules ['typo-mar'] = { -- so far local format, validstring = string.format, string.valid -local insert, remove = table.insert, table.remove +local insert, remove, sortedkeys = table.insert, table.remove, table.sortedkeys local setmetatable, next = setmetatable, next local formatters = string.formatters local toboolean = toboolean @@ -275,6 +275,11 @@ setattr(content,a_specialcontent,1) -- todo: a property local scope = t.scope local name = t.name local option = t.option + local stack = t.stack + if stack == v_yes or stack == v_continue then + inline = false + t.inline = false + end if option then option = settings_to_hash(option) t.option = option @@ -313,7 +318,7 @@ setattr(content,a_specialcontent,1) -- todo: a property end if name and name ~= "" then if inlinestore then -- todo: inline store has to be done differently (not sparse) - local t = table.sortedkeys(store) for j=#t,1,-1 do local i = t[j] + local t = sortedkeys(store) for j=#t,1,-1 do local i = t[j] local si = store[i] if si.name == name then local s = remove(store,i) @@ -539,6 +544,9 @@ local function markovershoot(current) -- todo: alleen als offset > line local list = hpack_nodes(linked_nodes(anchor,getlist(current)),getfield(current,"width"),"exactly")-- -- why not: -- local list = linked_nodes(anchor,getlist(current)) + if trace_marginstack then + report_margindata("marking anchor %a",v_anchors) + end setlist(current,list) end @@ -546,15 +554,17 @@ local function getovershoot(location) local p = getposition("md:v",v_anchors) local c = getposition("md:v",v_anchors+1) if p and c and p.p and p.p == c.p then - local distance = p.y - c.y - local offset = p[location] or 0 + local distance = p.y - c.y + local offset = p[location] or 0 local overshoot = offset - distance if trace_marginstack then - report_margindata("location %a, distance %p, offset %p, overshoot %p",location,distance,offset,overshoot) + report_margindata("location %a, anchor %a, distance %p, offset %p, overshoot %p",location,v_anchors,distance,offset,overshoot) end if overshoot > 0 then return overshoot end + elseif trace_marginstack then + report_margindata("location %a, anchor %a, nothing to correct",location,v_anchors) end return 0 end @@ -601,7 +611,7 @@ local function inject(parent,head,candidate) candidate.hsize = getfield(parent,"width") -- we can also pass textwidth candidate.psubtype = psubtype if trace_margindata then - report_margindata("processing, index %s, height %p, depth %p, parent %s",candidate.n,height,depth,listcodes[psubtype]) + report_margindata("processing, index %s, height %p, depth %p, parent %a, method %a",candidate.n,height,depth,listcodes[psubtype],method) end if firstonstack then offset = 0 @@ -610,7 +620,7 @@ local function inject(parent,head,candidate) end if stack == v_yes then offset = offset + candidate.dy -- always - shift = shift + offset + shift = shift + offset elseif stack == v_continue then offset = offset + candidate.dy -- always if firstonstack then @@ -675,7 +685,7 @@ local function inject(parent,head,candidate) if trace_margindata then report_margindata("offset %p applied to line %s",delta,line) end - shift = shift + delta + shift = shift + delta offset = offset + delta end setfield(box,"shift",shift) @@ -842,9 +852,9 @@ local trialtypesetting = context.trialtypesetting function margins.localhandler(head,group) -- sometimes group is "" which is weird -if trialtypesetting() then - return head, false -end + if trialtypesetting() then + return head, false + end local inhibit = conditionals.inhibitmargindata if inhibit then @@ -864,9 +874,9 @@ end function margins.globalhandler(head,group) -- check group -if trialtypesetting() then - return head, false -end + if trialtypesetting() then + return head, false + end local inhibit = conditionals.inhibitmargindata if inhibit or nofstored == 0 then @@ -921,9 +931,9 @@ end function margins.finalhandler(head) if nofdelayed > 0 then - -- if trace_margindata then - -- report_margindata("flushing stage two, instore: %s, delayed: %s",nofstored,nofdelayed) - -- end + if trace_margindata then + report_margindata("flushing stage two, instore: %s, delayed: %s",nofstored,nofdelayed) + end head = tonut(head) local head, done = finalhandler(head) head = tonode(head) |