Skip to content

Instantly share code, notes, and snippets.

@9999years
Last active October 13, 2021 07:17
Show Gist options
  • Save 9999years/0135bc3de018aeeead4075807dec449a to your computer and use it in GitHub Desktop.
Save 9999years/0135bc3de018aeeead4075807dec449a to your computer and use it in GitHub Desktop.
Ligatures with PragmataPro 0.827, probably XeLaTeX or LuaTeX, and listings / fontspec
% setup
\usepackage{fontspec}
\setmonofont[
Contextuals=Alternate,
]{PragmataPro Liga}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily,
}
% alternatively, measure this at the beginning of the literate sequences...?
% this might not hold up for other font sizes
\newlength{\pprochar}
\settowidth{\pprochar}{\texttt{x}}
\lstset{
columns=flexible,
literate=%
{!!}{\makebox[2\pprochar][r]{\char"E900}}2
{!=}{\makebox[2\pprochar][r]{\char"E901}}2
{!≡}{\makebox[2\pprochar][r]{\char"E904}}2
{!>}{\makebox[2\pprochar][r]{\char"E906}}2
{\#(}{\makebox[2\pprochar][r]{\char"E920}}2
{\#\_}{\makebox[2\pprochar][r]{\char"E921}}2
{\#\{}{\makebox[2\pprochar][r]{\char"E922}}2
{\#?}{\makebox[2\pprochar][r]{\char"E923}}2
{\#>}{\makebox[2\pprochar][r]{\char"E924}}2
{\#\#}{\makebox[2\pprochar][r]{\char"E925}}2
{\%=}{\makebox[2\pprochar][r]{\char"E930}}2
{\%>}{\makebox[2\pprochar][r]{\char"E931}}2
{\&\%}{\makebox[2\pprochar][r]{\char"E940}}2
{\&\&}{\makebox[2\pprochar][r]{\char"E941}}2
{\&*}{\makebox[2\pprochar][r]{\char"E942}}2
{\&+}{\makebox[2\pprochar][r]{\char"E943}}2
{\&-}{\makebox[2\pprochar][r]{\char"E944}}2
{\&/}{\makebox[2\pprochar][r]{\char"E945}}2
{\&=}{\makebox[2\pprochar][r]{\char"E946}}2
{\&>}{\makebox[2\pprochar][r]{\char"E948}}2
{\$>}{\makebox[2\pprochar][r]{\char"E955}}2
{*=}{\makebox[2\pprochar][r]{\char"E961}}2
{*/}{\makebox[2\pprochar][r]{\char"E962}}2
{*>}{\makebox[2\pprochar][r]{\char"E963}}2
{++}{\makebox[2\pprochar][r]{\char"E970}}2
{+=}{\makebox[2\pprochar][r]{\char"E972}}2
{+>}{\makebox[2\pprochar][r]{\char"E973}}2
{--}{\makebox[2\pprochar][r]{\char"E980}}2
{-<}{\makebox[2\pprochar][r]{\char"E981}}2
{-=}{\makebox[2\pprochar][r]{\char"E983}}2
{->}{\makebox[2\pprochar][r]{\char"E984}}2
{..}{\makebox[2\pprochar][r]{\char"E990}}2
{.>}{\makebox[2\pprochar][r]{\char"E993}}2
{.~}{\makebox[2\pprochar][r]{\char"E994}}2
{.=}{\makebox[2\pprochar][r]{\char"E995}}2
{/*}{\makebox[2\pprochar][r]{\char"E9A0}}2
{//}{\makebox[2\pprochar][r]{\char"E9A1}}2
{/>}{\makebox[2\pprochar][r]{\char"E9A2}}2
{/=}{\makebox[2\pprochar][r]{\char"E9A3}}2
{::}{\makebox[2\pprochar][r]{\char"E9B0}}2
{:=}{\makebox[2\pprochar][r]{\char"E9B1}}2
{:≡}{\makebox[2\pprochar][r]{\char"E9B2}}2
{:>}{\makebox[2\pprochar][r]{\char"E9B3}}2
{:(}{\makebox[2\pprochar][r]{\char"E9B5}}2
{:)}{\makebox[2\pprochar][r]{\char"E9B7}}2
{:/}{\makebox[2\pprochar][r]{\char"E9B9}}2
{:\\}{\makebox[2\pprochar][r]{\char"E9BA}}2
{:3}{\makebox[2\pprochar][r]{\char"E9BB}}2
{:D}{\makebox[2\pprochar][r]{\char"E9BC}}2
{:P}{\makebox[2\pprochar][r]{\char"E9BD}}2
{<*}{\makebox[2\pprochar][r]{\char"E9C1}}2
{<-}{\makebox[2\pprochar][r]{\char"E9C4}}2
{<<}{\makebox[2\pprochar][r]{\char"E9C5}}2
{<=}{\makebox[2\pprochar][r]{\char"E9C8}}2
{<>}{\makebox[2\pprochar][r]{\char"E9CA}}2
{<|}{\makebox[2\pprochar][r]{\char"E9CD}}2
{<~}{\makebox[2\pprochar][r]{\char"E9CF}}2
{<\$}{\makebox[2\pprochar][r]{\char"E9D2}}2
{<+}{\makebox[2\pprochar][r]{\char"E9D3}}2
{<!}{\makebox[2\pprochar][r]{\char"E9E3}}2
{<@}{\makebox[2\pprochar][r]{\char"E9E4}}2
{<\#}{\makebox[2\pprochar][r]{\char"E9E5}}2
{<\%}{\makebox[2\pprochar][r]{\char"E9E6}}2
{<^}{\makebox[2\pprochar][r]{\char"E9E7}}2
{<\&}{\makebox[2\pprochar][r]{\char"E9E8}}2
{<?}{\makebox[2\pprochar][r]{\char"E9E9}}2
{<.}{\makebox[2\pprochar][r]{\char"E9EA}}2
{</}{\makebox[2\pprochar][r]{\char"E9EB}}2
{<\\}{\makebox[2\pprochar][r]{\char"E9EC}}2
{<"}{\makebox[2\pprochar][r]{\char"E9ED}}2
{<:}{\makebox[2\pprochar][r]{\char"E9EE}}2
{==}{\makebox[2\pprochar][r]{\char"EA01}}2
{=>}{\makebox[2\pprochar][r]{\char"EA04}}2
{=~}{\makebox[2\pprochar][r]{\char"EA05}}2
{≡≡}{\makebox[2\pprochar][r]{\char"EA10}}2
{>-}{\makebox[2\pprochar][r]{\char"EA20}}2
{>=}{\makebox[2\pprochar][r]{\char"EA21}}2
{>>}{\makebox[2\pprochar][r]{\char"EA22}}2
{??}{\makebox[2\pprochar][r]{\char"EA40}}2
{?~}{\makebox[2\pprochar][r]{\char"EA41}}2
{?=}{\makebox[2\pprochar][r]{\char"EA42}}2
{?>}{\makebox[2\pprochar][r]{\char"EA43}}2
{?.}{\makebox[2\pprochar][r]{\char"EA45}}2
{^=}{\makebox[2\pprochar][r]{\char"EA48}}2
{^.}{\makebox[2\pprochar][r]{\char"EA49}}2
{^?}{\makebox[2\pprochar][r]{\char"EA4A}}2
{^>}{\makebox[2\pprochar][r]{\char"EA4E}}2
{\\\\}{\makebox[2\pprochar][r]{\char"EA50}}2
{\\>}{\makebox[2\pprochar][r]{\char"EA51}}2
{@>}{\makebox[2\pprochar][r]{\char"EA57}}2
{|=}{\makebox[2\pprochar][r]{\char"EA60}}2
{||}{\makebox[2\pprochar][r]{\char"EA61}}2
{|>}{\makebox[2\pprochar][r]{\char"EA62}}2
{|-}{\makebox[2\pprochar][r]{\char"EA6D}}2
{~=}{\makebox[2\pprochar][r]{\char"EA70}}2
{~>}{\makebox[2\pprochar][r]{\char"EA71}}2
{[[}{\makebox[2\pprochar][r]{\char"EA80}}2
{]]}{\makebox[2\pprochar][r]{\char"EA81}}2
{">}{\makebox[2\pprochar][r]{\char"EA90}}2
{!==}{\makebox[3\pprochar][r]{\char"E902}}3
{!!!}{\makebox[3\pprochar][r]{\char"E903}}3
{!≡≡}{\makebox[3\pprochar][r]{\char"E905}}3
{!=<}{\makebox[3\pprochar][r]{\char"E907}}3
{\#\_(}{\makebox[3\pprochar][r]{\char"E926}}3
{\%>\%}{\makebox[3\pprochar][r]{\char"E932}}3
{\%<\%}{\makebox[3\pprochar][r]{\char"E933}}3
{\&\&\&}{\makebox[3\pprochar][r]{\char"E947}}3
{***}{\makebox[3\pprochar][r]{\char"E960}}3
{+++}{\makebox[3\pprochar][r]{\char"E971}}3
{++=}{\makebox[3\pprochar][r]{\char"E974}}3
{-<<}{\makebox[3\pprochar][r]{\char"E982}}3
{->>}{\makebox[3\pprochar][r]{\char"E985}}3
{---}{\makebox[3\pprochar][r]{\char"E986}}3
{-->}{\makebox[3\pprochar][r]{\char"E987}}3
{-+-}{\makebox[3\pprochar][r]{\char"E988}}3
{-\\/}{\makebox[3\pprochar][r]{\char"E989}}3
{-|>}{\makebox[3\pprochar][r]{\char"E98A}}3
{-<|}{\makebox[3\pprochar][r]{\char"E98B}}3
{...}{\makebox[3\pprochar][r]{\char"E991}}3
{..<}{\makebox[3\pprochar][r]{\char"E992}}3
{/==}{\makebox[3\pprochar][r]{\char"E9A4}}3
{///}{\makebox[3\pprochar][r]{\char"E9A5}}3
{/**}{\makebox[3\pprochar][r]{\char"E9A6}}3
{:::}{\makebox[3\pprochar][r]{\char"E9AF}}3
{:=>}{\makebox[3\pprochar][r]{\char"E9B4}}3
{:-(}{\makebox[3\pprochar][r]{\char"E9B6}}3
{:-)}{\makebox[3\pprochar][r]{\char"E9B8}}3
{:>:}{\makebox[3\pprochar][r]{\char"E9BE}}3
{:<:}{\makebox[3\pprochar][r]{\char"E9BF}}3
{<\$>}{\makebox[3\pprochar][r]{\char"E9C0}}3
{<*>}{\makebox[3\pprochar][r]{\char"E9C2}}3
{<+>}{\makebox[3\pprochar][r]{\char"E9C3}}3
{<<<}{\makebox[3\pprochar][r]{\char"E9C6}}3
{<<=}{\makebox[3\pprochar][r]{\char"E9C7}}3
{<=>}{\makebox[3\pprochar][r]{\char"E9C9}}3
{<|>}{\makebox[3\pprochar][r]{\char"E9CB}}3
{<<-}{\makebox[3\pprochar][r]{\char"E9CC}}3
{<=<}{\makebox[3\pprochar][r]{\char"E9CE}}3
{<~~}{\makebox[3\pprochar][r]{\char"E9D0}}3
{<<~}{\makebox[3\pprochar][r]{\char"E9D1}}3
{<!>}{\makebox[3\pprochar][r]{\char"E9D4}}3
{<@>}{\makebox[3\pprochar][r]{\char"E9D5}}3
{<\#>}{\makebox[3\pprochar][r]{\char"E9D6}}3
{<\%>}{\makebox[3\pprochar][r]{\char"E9D7}}3
{<^>}{\makebox[3\pprochar][r]{\char"E9D8}}3
{<\&>}{\makebox[3\pprochar][r]{\char"E9D9}}3
{<?>}{\makebox[3\pprochar][r]{\char"E9DA}}3
{<.>}{\makebox[3\pprochar][r]{\char"E9DB}}3
{</>}{\makebox[3\pprochar][r]{\char"E9DC}}3
{<\\>}{\makebox[3\pprochar][r]{\char"E9DD}}3
{<">}{\makebox[3\pprochar][r]{\char"E9DE}}3
{<:>}{\makebox[3\pprochar][r]{\char"E9DF}}3
{<~>}{\makebox[3\pprochar][r]{\char"E9E0}}3
{<<^}{\makebox[3\pprochar][r]{\char"E9E2}}3
{<->}{\makebox[3\pprochar][r]{\char"E9EF}}3
{<--}{\makebox[3\pprochar][r]{\char"E9F1}}3
{<~<}{\makebox[3\pprochar][r]{\char"E9F2}}3
{<|-}{\makebox[3\pprochar][r]{\char"E9F4}}3
{<<|}{\makebox[3\pprochar][r]{\char"E9F5}}3
{<-<}{\makebox[3\pprochar][r]{\char"E9F7}}3
{<==}{\makebox[3\pprochar][r]{\char"E9FA}}3
{==<}{\makebox[3\pprochar][r]{\char"EA00}}3
{===}{\makebox[3\pprochar][r]{\char"EA02}}3
{==>}{\makebox[3\pprochar][r]{\char"EA03}}3
{=>>}{\makebox[3\pprochar][r]{\char"EA06}}3
{=/=}{\makebox[3\pprochar][r]{\char"EA07}}3
{=~=}{\makebox[3\pprochar][r]{\char"EA08}}3
{≡≡≡}{\makebox[3\pprochar][r]{\char"EA11}}3
{≡:≡}{\makebox[3\pprochar][r]{\char"EA12}}3
{>>-}{\makebox[3\pprochar][r]{\char"EA23}}3
{>==}{\makebox[3\pprochar][r]{\char"EA24}}3
{>>>}{\makebox[3\pprochar][r]{\char"EA25}}3
{>=>}{\makebox[3\pprochar][r]{\char"EA26}}3
{>>^}{\makebox[3\pprochar][r]{\char"EA27}}3
{>>|}{\makebox[3\pprochar][r]{\char"EA28}}3
{>!=}{\makebox[3\pprochar][r]{\char"EA29}}3
{>->}{\makebox[3\pprochar][r]{\char"EA2A}}3
{???}{\makebox[3\pprochar][r]{\char"EA44}}3
{^..}{\makebox[3\pprochar][r]{\char"EA4B}}3
{^<<}{\makebox[3\pprochar][r]{\char"EA4C}}3
{^>>}{\makebox[3\pprochar][r]{\char"EA4D}}3
{\\/-}{\makebox[3\pprochar][r]{\char"EA52}}3
{|||}{\makebox[3\pprochar][r]{\char"EA63}}3
{|+|}{\makebox[3\pprochar][r]{\char"EA64}}3
{|->}{\makebox[3\pprochar][r]{\char"EA65}}3
{|=>}{\makebox[3\pprochar][r]{\char"EA67}}3
{|>-}{\makebox[3\pprochar][r]{\char"EA69}}3
{|<<}{\makebox[3\pprochar][r]{\char"EA6A}}3
{||>}{\makebox[3\pprochar][r]{\char"EA6B}}3
{|>>}{\makebox[3\pprochar][r]{\char"EA6C}}3
{||-}{\makebox[3\pprochar][r]{\char"EA6E}}3
{~~>}{\makebox[3\pprochar][r]{\char"EA72}}3
{~>>}{\makebox[3\pprochar][r]{\char"EA73}}3
{\_|\_}{\makebox[3\pprochar][r]{\char"EA97}}3
{<**>}{\makebox[4\pprochar][r]{\char"E9E1}}4
{<!--}{\makebox[4\pprochar][r]{\char"E9F0}}4
{<==>}{\makebox[4\pprochar][r]{\char"E9F3}}4
{<-->}{\makebox[4\pprochar][r]{\char"E9F8}}4
{<<==}{\makebox[4\pprochar][r]{\char"E9F9}}4
{==>>}{\makebox[4\pprochar][r]{\char"EA09}}4
{|-->}{\makebox[4\pprochar][r]{\char"EA66}}4
{|==>}{\makebox[4\pprochar][r]{\char"EA68}}4
{[ERR]}{\makebox[5\pprochar][r]{\char"E385}}5
{[BUG]}{\makebox[5\pprochar][r]{\char"E38A}}5
{[INFO]}{\makebox[6\pprochar][r]{\char"E382}}6
{[WARN]}{\makebox[6\pprochar][r]{\char"E383}}6
{[TODO]}{\makebox[6\pprochar][r]{\char"E389}}6
{[NOTE]}{\makebox[6\pprochar][r]{\char"E38B}}6
{[HACK]}{\makebox[6\pprochar][r]{\char"E38C}}6
{[MARK]}{\makebox[6\pprochar][r]{\char"E38D}}6
{[ERROR]}{\makebox[7\pprochar][r]{\char"E380}}7
{[DEBUG]}{\makebox[7\pprochar][r]{\char"E381}}7
{[FATAL]}{\makebox[7\pprochar][r]{\char"E386}}7
{[TRACE]}{\makebox[7\pprochar][r]{\char"E387}}7
{[FIXME]}{\makebox[7\pprochar][r]{\char"E388}}7
{[WARNING]}{\makebox[9\pprochar][r]{\char"E384}}9
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment