Skip to content

Instantly share code, notes, and snippets.

@dohyunkim
Created June 29, 2016 09:26
Show Gist options
  • Select an option

  • Save dohyunkim/9b5a72ca293bcdcc4f5d5a7cf8e6e343 to your computer and use it in GitHub Desktop.

Select an option

Save dohyunkim/9b5a72ca293bcdcc4f5d5a7cf8e6e343 to your computer and use it in GitHub Desktop.
xelatex + nanum type1
\newXeTeXintercharclass \XeTeXcharclassID
\let \XeTeXcharclassOP \XeTeXcharclassID
\let \XeTeXcharclassCL \XeTeXcharclassID
\input load-unicode-xetex-classes\relax
\XeTeXcharclass "B7 = \XeTeXcharclassID
\count@="AC00 \loop
\XeTeXcharclass\count@ = \XeTeXcharclassID
\ifnum\count@<"D7A3 \advance\count@\@ne
\repeat
\XeTeXinterchartoks 0 \XeTeXcharclassID = {\LAID}
\XeTeXinterchartoks 4095 \XeTeXcharclassID = {\LAID}
\def\LAID{\begingroup\afterassignment\xLAID\let\next= }
\def\xLAID{\expandafter\xxLAID\meaning\next}
\def\xxLAID#1 #2 #3{%
\@tempcntb=`#3
\def\prefix{nanumgt}%
\ifnum\strcmp{\f@family}{\rmdefault}=\z@
\ifnum\@tempcntb<"3400
\def\prefix{nanummj}%
\else\ifnum\@tempcntb<"AC00
\else\ifnum\@tempcntb<"D800
\def\prefix{nanummj}%
\else\ifnum\@tempcntb<"FF00
\else
\def\prefix{nanummj}%
\fi\fi\fi\fi
\fi
\ifnum\strcmp{\f@series}{\mddefault}=\z@
\edef\prefix{\unexpanded\expandafter{\prefix m}}%
\else
\edef\prefix{\unexpanded\expandafter{\prefix b}}%
\fi
\ifnum\strcmp{\f@shape}{\updefault}=\z@
\else
\edef\prefix{\unexpanded\expandafter{\prefix o}}%
\fi
\@tempcnta=\numexpr\dimexpr.00390625\dimexpr\@tempcntb sp\relax\relax\relax
\count@=\numexpr\dimexpr.0625\dimexpr\@tempcnta sp\relax\relax\relax
\edef\plane@plane{\plane@hexnumber@\count@}%
\count@=\numexpr\@tempcnta-16*\count@\relax
\edef\plane@plane{\plane@plane\plane@hexnumber@\count@}%
\font\ID@font=\prefix\plane@plane\space at \f@size\p@
\@tempcntb=\numexpr\@tempcntb-256*\@tempcnta\relax
\XeTeXinterchartokenstate=0
\ID@font \char\@tempcntb
\endgroup
}
\def\plane@hexnumber@#1{\ifcase#1%
0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
8\or 9\or a\or b\or c\or d\or e\or f\fi}
\XeTeXinterchartokenstate=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment