KTUG 한국 텍 사용자 그룹

Menu

KTUG :: 마당

저는 세로와 가로가 번갈아 나오기만 하면 되는 줄 알았습니다. 그리고 찾아보니 "0"은 그냥 동그라미로 나타내는가 봅니다. 그래서 이렇게 고쳤습니다.

tys_2.png

 

\documentclass{article}
\usepackage{xparse}
\usepackage{fontspec}

\ExplSyntaxOn
\NewDocumentCommand \Tys { >{\SplitList{~}} m }
{
  \ProcessList{#1}{ \SplitTys }
}

\NewDocumentCommand \SplitTys { m }

    \group_begin:
    \int_if_even:nTF { \tl_count:n {#1} }
    { \bool_set_true:N \l_tmpa_bool }
    { \bool_set_false:N \l_tmpa_bool }    
  \tl_map_inline:nn {#1} 
    { 
        \bool_if:NTF \l_tmpa_bool
        { 
            \PrintTys*{##1} 
            \bool_set_false:N \l_tmpa_bool
        }
        { 
            \PrintTys{##1} 
            \bool_set_true:N \l_tmpa_bool
        }
    }
    \group_end:    
    \space 
}

%% 1D360 = 119648 : 10, 1000, ...
%% 1D369 = 119657 : 1, 100, ...
\NewDocumentCommand \PrintTys { s m }
{    
    \group_begin:
    \fontspec{Apple Symbols}
    \tl_if_eq:nnTF {#2}{0}
    {
        \fontspec{Arial}
        \char"25CB
    }
    {
        \fontspec{Apple Symbols}
        \IfBooleanTF {#1}
        { \int_set:Nn \l_tmpa_int { #2 + 119656 } }
        { \int_set:Nn \l_tmpa_int { #2 + 119647 } }  
        \char"\int_to_Hex:n{\l_tmpa_int}
    }
    \group_end:
}
\ExplSyntaxOff

\begin{document}
\Tys{123 456} %% 여러 수 (number)

\SplitTys{8279} %% 한 수 (number)
\SplitTys{304}

\PrintTys{5} \PrintTys*{5} %% 한 숫자 (digit)
\end{document}
 

KTUG 한국 텍 사용자 그룹