You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
834 lines
35 KiB
834 lines
35 KiB
\ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean]
|
|
|
|
\PolyglossiaSetup{korean}{
|
|
bcp47=ko,
|
|
script=Hangul,
|
|
scripttag=hang,
|
|
language=Korean,
|
|
langtag=KOR,
|
|
hyphennames={nohyphenation},
|
|
frenchspacing=true,
|
|
fontsetup=true
|
|
}
|
|
|
|
% BCP-47 compliant aliases
|
|
\setlanguagealias*{korean}{ko}
|
|
|
|
% variant : plain (0), classic (1), or modern (2)
|
|
\define@choicekey{korean}{variant}[\xpg@val\xpg@nr]{plain,classic,modern}[plain]{%
|
|
\let\xpg@korean@variant\xpg@nr
|
|
}
|
|
% captions : hangul (0) or hanja (1)
|
|
\define@choicekey{korean}{captions}[\xpg@val\xpg@nr]{hangul,hanja}[hangul]{%
|
|
\let\xpg@korean@captions\xpg@nr
|
|
}
|
|
% swapstrings: all (0), headings (1), headers (2), or none (3)
|
|
\newif\if@korean@swapheadings
|
|
\newif\if@korean@swapheaders
|
|
\define@choicekey*+{korean}{swapstrings}[\xpg@val\xpg@nr]{all,headings,headers,none}[all]{%
|
|
\ifcase\xpg@nr\relax
|
|
% all:
|
|
\@korean@swapheadingstrue%
|
|
\@korean@swapheaderstrue%
|
|
\or
|
|
% headings:
|
|
\@korean@swapheadingstrue%
|
|
\@korean@swapheadersfalse%
|
|
\or
|
|
% headers:
|
|
\@korean@swapheadingsfalse%
|
|
\@korean@swapheaderstrue%
|
|
\or
|
|
% none:
|
|
\@korean@swapheadingsfalse%
|
|
\@korean@swapheadersfalse%
|
|
\fi
|
|
\xpg@info{Option: Korean, swapstrings=\xpg@val}%
|
|
}{\xpg@warning{Unknown Korean swapstrings value `#1'}}
|
|
|
|
% Register default options
|
|
\xpg@initialize@gloss@options{korean}{variant=plain,swapstrings=all,captions=hangul}
|
|
|
|
\def\captionskorean{%
|
|
\ifcase\xpg@korean@captions\relax
|
|
\captions@korean@hangul
|
|
\else
|
|
\captions@korean@hanja
|
|
\fi
|
|
\def\seename{$\rightarrow$}%
|
|
\def\alsoname{$\Rightarrow$}%
|
|
}
|
|
\def\captions@korean@hangul{%
|
|
\def\koreanTHEname{제}%
|
|
\def\partname{편}%
|
|
\def\chaptername{장}%
|
|
\def\refname{참고문헌}%
|
|
\def\abstractname{요약}%
|
|
\def\bibname{참고문헌}%
|
|
\def\prefacename{서문}%
|
|
\def\appendixname{부록}%
|
|
\def\contentsname{차례}%
|
|
\def\listfigurename{그림 차례}%
|
|
\def\listtablename{표 차례}%
|
|
\def\indexname{찾아보기}%
|
|
\def\figurename{그림}%
|
|
\def\tablename{표}%
|
|
\def\pagename{페이지}%
|
|
\def\enclname{동봉}%
|
|
\def\proofname{증명}%
|
|
\def\headtoname{수신:}%
|
|
\def\ccname{사본}%
|
|
\def\glossaryname{용어집}%
|
|
}
|
|
\def\captions@korean@hanja{%
|
|
\def\koreanTHEname{第}%
|
|
\def\partname{篇}%
|
|
\def\chaptername{章}%
|
|
\def\refname{參考文獻}%
|
|
\def\abstractname{要約}%
|
|
\def\bibname{參考文獻}%
|
|
\def\prefacename{序文}%
|
|
\def\appendixname{附錄}%
|
|
\def\contentsname{目次}%
|
|
\def\listfigurename{圖版 目次}%
|
|
\def\listtablename{表 目次}%
|
|
\def\indexname{索引}%
|
|
\def\figurename{圖版}%
|
|
\def\tablename{表}%
|
|
\def\pagename{面}%
|
|
\def\enclname{同封}%
|
|
\def\proofname{證明}%
|
|
\def\headtoname{受信:}%
|
|
\def\ccname{寫本}%
|
|
\def\glossaryname{用語集}%
|
|
}
|
|
|
|
\def\korean@appendix@chapapp{\appendixname}% to exclude appendix
|
|
|
|
\def\korean@headingsformat{%
|
|
% change chapter and part headings
|
|
\if@korean@swapheadings
|
|
% With titlesec
|
|
\ifdefined\titleformat
|
|
\ifdefined\@part
|
|
\let\xpg@save@part@format\@part
|
|
\patchcmd{\@part}%
|
|
{\partname\nobreakspace\thepart}%
|
|
{\koreanTHEname\nobreakspace \thepart\nobreakspace \partname}%
|
|
{}%
|
|
{\xpg@warning{Failed to patch part for Korean}}%
|
|
\fi
|
|
\ifdefined\chapter
|
|
\titleformat\chapter[display]%
|
|
{\@ifundefined{ttl@fil}{\raggedright}{\ttl@fil}\ttl@fonts\ttl@sizes6}%
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\appendixname\space \thechapter
|
|
\else
|
|
\koreanTHEname\space \thechapter\space \@chapapp
|
|
\fi
|
|
}{.8\baselineskip}{\ttl@sizes\z@\ttl@passexplicit}%
|
|
\fi
|
|
\else % (not \ifdefined\titleformat)
|
|
% With KOMA
|
|
\ifdefined\sectionformat
|
|
\ifdefined\partformat
|
|
\let\xpg@save@part@format\partformat
|
|
\renewcommand*{\partformat}{\koreanTHEname~\thepart~\partname}%
|
|
\fi
|
|
\ifdefined\chapterformat
|
|
\let\xpg@save@chap@format\chapterformat
|
|
\renewcommand*{\chapterformat}{\mbox{%
|
|
\IfChapterUsesPrefixLine
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\chapappifchapterprefix\nobreakspace \thechapter\autodot
|
|
\else
|
|
\koreanTHEname\nobreakspace \thechapter\nobreakspace \chapappifchapterprefix{}%
|
|
\fi
|
|
}%
|
|
{\thechapter\autodot\enskip}%
|
|
}}%
|
|
\fi
|
|
\else % (not \ifdefined\sectionformat)
|
|
% With memoir
|
|
\ifdefined\@memptsize
|
|
\ifdefined\@makechapterhead
|
|
\let\xpg@save@chap@format\@makechapterhead
|
|
\patchcmd{\@makechapterhead}%
|
|
{\printchaptername \chapternamenum \printchapternum}%
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\printchaptername\relax\chapternamenum \printchapternum
|
|
\else
|
|
\printkoreanchapterthe \printchapternum\chapternamenum \printchaptername
|
|
\fi
|
|
}%
|
|
{}%
|
|
{\xpg@warning{Failed to patch chapter for Korean}}%
|
|
\ifdefined\printkoreanchapterthe\else
|
|
\def\printkoreanchapterthe{%
|
|
\ifpatchable\printchaptername\@chapapp
|
|
{\chapnamefont\koreanTHEname\chapternamenum}{}}%
|
|
\fi
|
|
\fi
|
|
\ifdefined\@part
|
|
\let\xpg@save@part@format\@part
|
|
\patchcmd{\@part}%
|
|
{\printpartname \partnamenum \printpartnum}%
|
|
{\printkoreanpartthe \printpartnum\partnamenum \printpartname}%
|
|
{}%
|
|
{\xpg@warning{Failed to patch part for Korean}}%
|
|
\ifdefined\printkoreanpartthe\else
|
|
\def\printkoreanpartthe{\partnamefont\koreanTHEname\partnamenum}%
|
|
\fi
|
|
\fi
|
|
\else % (not \ifdefined\@memptsize)
|
|
% With standard classes
|
|
\ifdefined\@makechapterhead
|
|
\let\xpg@save@chap@format\@makechapterhead
|
|
\patchcmd{\@makechapterhead}%
|
|
{\@chapapp\space \thechapter}%
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\appendixname\space \thechapter
|
|
\else
|
|
\koreanTHEname\space \thechapter\space \@chapapp
|
|
\fi
|
|
}%
|
|
{}%
|
|
{\xpg@warning{Failed to patch chapter for Korean}}%
|
|
\fi
|
|
\ifdefined\@part
|
|
\let\xpg@save@part@format\@part
|
|
\patchcmd{\@part}%
|
|
{\partname\nobreakspace\thepart}%
|
|
{\koreanTHEname\nobreakspace \thepart\nobreakspace \partname}%
|
|
{}%
|
|
{\xpg@warning{Failed to patch part for Korean}}%
|
|
\fi % (end \ifdefined\@part)
|
|
\fi % (end \ifdefined\@memptsize)
|
|
\fi % (end \ifdefined\sectionformat)
|
|
\fi % (end \ifdefined\titleformat)
|
|
\fi % (end \if@korean@swapheadings)
|
|
%
|
|
% Change running headers
|
|
\if@korean@swapheaders
|
|
\ifdefined\chapterformat
|
|
% With KOMA
|
|
\let\xpg@save@chaptermark@format\chaptermarkformat
|
|
\renewcommand*\chaptermarkformat{%
|
|
\IfChapterUsesPrefixLine
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\chapappifchapterprefix\ \thechapter\autodot
|
|
\else
|
|
\koreanTHEname\ \thechapter\ \chapappifchapterprefix{}%
|
|
\fi
|
|
}%
|
|
{\thechapter\autodot}%
|
|
\enskip
|
|
}%
|
|
\else % (not \ifdefined\chapterformat)
|
|
\ifdefined\@memptsize
|
|
% With memoir
|
|
\let\xpg@save@chaptermark@format\chaptermark
|
|
\patchcmd{\chaptermark}%
|
|
{\@chapapp\ \@nameuse{thechapter}}%
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\appendixname\ \@nameuse{thechapter}%
|
|
\else
|
|
\koreanTHEname\ \@nameuse{thechapter}\ \@chapapp
|
|
\fi
|
|
}%
|
|
{}%
|
|
{}%
|
|
\else % (not \ifdefined\@memptsize)
|
|
% With standard classes
|
|
\ifdefined\chaptermark
|
|
\let\xpg@save@chaptermark@format\chaptermark
|
|
\patchcmd{\chaptermark}%
|
|
{\@chapapp\ \thechapter}%
|
|
{%
|
|
\ifx\@chapapp\korean@appendix@chapapp
|
|
\appendixname\ \thechapter
|
|
\else
|
|
\koreanTHEname\ \thechapter\ \@chapapp
|
|
\fi
|
|
}%
|
|
{}%
|
|
{}%
|
|
\fi % (end \ifdefined\chaptermark)
|
|
\fi % (end \ifdefined\@memptsize)
|
|
\fi % (end \ifdefined\chapterformat)
|
|
\fi % (end \if@korean@swapheaders)
|
|
}
|
|
|
|
\def\nokorean@headingsformat{%
|
|
% Reset chapter and part heading
|
|
\ifdefined\titleformat
|
|
% With titlesec
|
|
\ifdefined\xpg@save@part@format
|
|
\let\@part\xpg@save@part@format
|
|
\fi
|
|
\ifdefined\chapter
|
|
\titleformat\chapter[display]%
|
|
{\@ifundefined{ttl@fil}{\raggedright}{\ttl@fil}\ttl@fonts\ttl@sizes6}%
|
|
{\@chapapp\space\thechapter}{.8\baselineskip}{\ttl@sizes\z@\ttl@passexplicit}%
|
|
\fi
|
|
\else % (not \ifdefined\titleformat)
|
|
\ifdefined\sectionformat
|
|
% With KOMA
|
|
\ifdefined\xpg@save@part@format
|
|
\let\partformat\xpg@save@part@format
|
|
\fi
|
|
\ifdefined\xpg@save@chap@format
|
|
\let\chapterformat\xpg@save@chap@format
|
|
\fi
|
|
\else
|
|
% With memoir and standard classes
|
|
\ifdefined\xpg@save@part@format
|
|
\let\@part\xpg@save@part@format
|
|
\fi
|
|
\ifdefined\xpg@save@chap@format
|
|
\let\@makechapterhead\xpg@save@chap@format
|
|
\fi
|
|
\fi % (end \ifdefined\sectionformat)
|
|
\fi % (end \ifdefined\titleformat)
|
|
%
|
|
% Reset headers
|
|
\ifdefined\chaptermarkformat
|
|
% With KOMA
|
|
\ifdefined\xpg@save@chaptermark@format
|
|
\let\chaptermarkformat\xpg@save@chaptermark@format
|
|
\fi
|
|
\else
|
|
\ifdefined\chaptermark
|
|
% With memoir and standard classes
|
|
\ifdefined\xpg@save@chaptermark@format
|
|
\let\chaptermark\xpg@save@chaptermark@format
|
|
\fi
|
|
\fi % (end \ifdefined\chaptermark)
|
|
\fi % (end \ifdefined\chapterformat)
|
|
}
|
|
|
|
\def\datekorean{%
|
|
\ifcase\xpg@korean@captions\relax
|
|
\def\today{\the\year 년 \the\month 월 \the\day 일}%
|
|
\else
|
|
\def\today{\the\year 年 \the\month 月 \the\day 日}%
|
|
\fi
|
|
}
|
|
|
|
\def\koreanAlph#1{\expandafter\@koreanAlph\csname c@#1\endcsname}
|
|
\def\@koreanAlph#1{%
|
|
\ifcase#1\or 가\or 나\or 다\or 라\or 마\or 바\or 사\or 아\or 자\or
|
|
차\or 카\or 타\or 파\or 하\else\xpg@ill@value{#1}{@koreanAlph}\fi
|
|
}
|
|
|
|
\def\koreanalph#1{\expandafter\@koreanalph\csname c@#1\endcsname}
|
|
\def\@koreanalph#1{%
|
|
\ifcase#1\or ㄱ\or ㄴ\or ㄷ\or ㄹ\or ㅁ\or ㅂ\or ㅅ\or ㅇ\or ㅈ\or
|
|
ㅊ\or ㅋ\or ㅌ\or ㅍ\or ㅎ\else\xpg@ill@value{#1}{@koreanalph}\fi
|
|
}
|
|
|
|
\def\korean@numbers{%
|
|
\let\@alph\@koreanalph
|
|
\let\@Alph\@koreanAlph
|
|
}
|
|
\def\nokorean@numbers{%
|
|
\let\@alph\latin@alph
|
|
\let\@Alph\latin@Alph
|
|
}
|
|
\let\nokorean@globalnumbers\nokorean@numbers
|
|
|
|
\ifxetex
|
|
\def\inlineextras@korean{%
|
|
\ifcase\xpg@korean@variant\relax
|
|
\XeTeXinterchartokenstate\z@
|
|
\XeTeXlinebreakpenalty 50
|
|
\or
|
|
\setvariantkoreaninterchartoks
|
|
\setvariantkoreancharclasses
|
|
\def\XPGKOhalfdim{\dimexpr.5em\relax}%
|
|
\XeTeXinterchartokenstate\@ne
|
|
\XeTeXlinebreakpenalty \z@
|
|
\else
|
|
\setvariantkoreaninterchartoks
|
|
\setvariantkoreancharclasses
|
|
\def\XPGKOhalfdim{\dimexpr.5\fontdimen\tw@\font\relax}%
|
|
\XeTeXinterchartokenstate\@ne
|
|
\XeTeXlinebreakpenalty 50
|
|
\fi
|
|
\XeTeXlinebreakskip 0pt plus.05em minus .01em
|
|
\XeTeXlinebreaklocale "ko"
|
|
}
|
|
\def\noextras@korean{%
|
|
\ifcase\xpg@korean@variant\relax
|
|
\else
|
|
\unsetvariantkoreaninterchartoks
|
|
\unsetvariantkoreancharclasses
|
|
\fi
|
|
\XeTeXinterchartokenstate\z@
|
|
\XeTeXlinebreakpenalty\z@
|
|
\XeTeXlinebreakskip\z@skip
|
|
\XeTeXlinebreaklocale "en"
|
|
\noextras@korean@common
|
|
}
|
|
\else % luatex
|
|
\def\inlineextras@korean{\xpg@attr@korean\xpg@korean@variant\relax}
|
|
\def\noextras@korean{%
|
|
\unsetattribute\xpg@attr@korean
|
|
\noextras@korean@common
|
|
}
|
|
\fi
|
|
|
|
\def\blockextras@korean{%
|
|
\inlineextras@korean
|
|
\korean@headingsformat
|
|
}
|
|
|
|
\def\noextras@korean@common{%
|
|
\nokorean@headingsformat
|
|
}
|
|
|
|
\ifluatex % luatex
|
|
\protected\def\inhibitglue{\hskip\z@skip}
|
|
\ifdefined\newattribute\else
|
|
\let\newattribute\newluatexattribute
|
|
\let\unsetattribute\unsetluatexattribute
|
|
\fi
|
|
\newattribute\xpg@attr@korean
|
|
\newattribute\xpg@attr@autojosa
|
|
% user commands for Josa
|
|
% Josa : particles in Korean grammar that immediately follow a noun or pronoun.
|
|
% Josa might vary depending on previous character.
|
|
\protected\def\rieul{\global\let\xpg@josa@zwang\@ne}
|
|
\protected\def\jung {\global\let\xpg@josa@zwang\tw@}
|
|
\protected\def\jong {\global\let\xpg@josa@zwang\thr@@}
|
|
\protected\def\은{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 은\endgroup\xpg@reset@josa}
|
|
\let\는\은
|
|
\protected\def\을{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 을\endgroup\xpg@reset@josa}
|
|
\let\를\을
|
|
\protected\def\와{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 와\endgroup\xpg@reset@josa}
|
|
\let\과\와
|
|
\protected\def\가{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 가\endgroup\xpg@reset@josa}
|
|
\protected\def\이{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 이\endgroup\xpg@reset@josa}
|
|
\protected\def\라{\이 라}
|
|
\protected\def\으{\begingroup\xpg@attr@autojosa\xpg@josa@zwang 으\endgroup\xpg@reset@josa}
|
|
\protected\def\로{\으 로}
|
|
\def\xpg@reset@josa {\global\let\xpg@josa@zwang\z@}\xpg@reset@josa
|
|
% load lua file for korean
|
|
\directlua{ require "polyglossia-korean" }
|
|
\endinput\fi
|
|
|
|
% XeTeX
|
|
% user commands for Josa
|
|
\protected\def\jong {\global\let\XPGKO@let@josa=0}\jong
|
|
\protected\def\rieul{\global\let\XPGKO@let@josa=1}
|
|
\protected\def\jung {\global\let\XPGKO@let@josa=2}
|
|
\protected\def\가{\xpg@make@josa 가이}
|
|
\protected\def\이{\futurelet\@let@token\xpg@make@josa@I}
|
|
\protected\def\은{\xpg@make@josa 는은} \let\는\은
|
|
\protected\def\을{\xpg@make@josa 를을} \let\를\을
|
|
\protected\def\와{\xpg@make@josa 와과} \let\과\와
|
|
\protected\def\으{\xpg@make@josa \empty 으}
|
|
\protected\def\로{\으 로}
|
|
\protected\def\라{\xpg@make@josa 라{이라}}
|
|
\def\xpg@make@josa@II{\xpg@make@josa\relax 이}
|
|
\def\xpg@make@josa@I{%
|
|
\ifcat\@let@token\xpg@catcode@letter
|
|
\expandafter\expandafter\expandafter\count@\expandafter
|
|
\xpg@letter@to@num\meaning\@let@token\relax
|
|
\ifnum 0\ifnum\count@>"ABFF \ifnum\count@<"D7A4 1\fi\fi>\z@
|
|
\expandafter\expandafter\expandafter\xpg@make@josa@II
|
|
\else
|
|
\expandafter\expandafter\expandafter\가
|
|
\fi
|
|
\else
|
|
\expandafter\가
|
|
\fi
|
|
}
|
|
\def\xpg@make@josa#1#2{%
|
|
\ifcat\xpg@catcode@letter\XPGKO@let@josa
|
|
\expandafter\expandafter\expandafter\count@\expandafter
|
|
\xpg@letter@to@num\meaning\XPGKO@let@josa\relax
|
|
\else\ifcat\xpg@catcode@other\XPGKO@let@josa
|
|
\expandafter\expandafter\expandafter\count@\expandafter
|
|
\xpg@character@to@num\meaning\XPGKO@let@josa\relax
|
|
\fi\fi
|
|
\ifnum\count@<"3260
|
|
\else\ifnum\count@<"3280 \advance\count@-"60
|
|
\else\ifnum\count@<"AC00
|
|
\else\ifnum\count@<"D7A4 % Hangul syllables
|
|
\advance\count@-"AC00
|
|
\@tempcnta\count@ \divide\@tempcnta28 \multiply\@tempcnta28
|
|
\advance\count@-\@tempcnta \advance\count@"11A7
|
|
\else\ifnum\count@<"FF00
|
|
\else\ifnum\count@<"FF5B \advance\count@-"FEE0
|
|
\fi\fi\fi\fi\fi \fi
|
|
\ifnum\count@<"11A8
|
|
\ifnum "30=\count@ \count@\z@ % 0
|
|
\else\ifnum "31=\count@ \count@\@ne % 1
|
|
\else\ifnum "33=\count@ \count@\z@ % 3
|
|
\else\ifnum "36=\count@ \count@\z@ % 6
|
|
\else\ifnum "37=\count@ \count@\@ne % 7
|
|
\else\ifnum "38=\count@ \count@\@ne % 8
|
|
\else\ifnum "4C=\count@ \count@\@ne % L
|
|
\else\ifnum "4D=\count@ \count@\z@ % M
|
|
\else\ifnum "4E=\count@ \count@\z@ % N
|
|
\else\ifnum "6C=\count@ \count@\@ne % l
|
|
\else\ifnum "6D=\count@ \count@\z@ % m
|
|
\else\ifnum "6E=\count@ \count@\z@ % n
|
|
\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi
|
|
\else\ifnum\count@<"1200
|
|
\ifnum\count@="11AF \count@\@ne \else \count@\z@ \fi
|
|
\else\ifnum\count@<"3131
|
|
\else\ifnum\count@<"318F
|
|
\ifnum \count@="3139 \count@\@ne
|
|
\else\ifnum\count@<"314F \count@\z@
|
|
\else\ifnum\count@>"3164
|
|
\ifnum\count@<"3187 \count@\z@ \fi
|
|
\fi\fi\fi
|
|
\else\ifnum\count@<"3200
|
|
\else\ifnum\count@<"321F
|
|
\ifnum \count@="3203 \count@\@ne
|
|
\else\ifnum\count@<"320E \count@\z@
|
|
\fi\fi
|
|
\else\ifnum\count@<"D7CB
|
|
\else\ifnum\count@<"D7FC \count@\z@
|
|
\fi\fi\fi\fi\fi \fi\fi\fi
|
|
\ifcase\count@ #2% jong
|
|
\or \ifx#1\empty\else#2\fi% rieul
|
|
\else #1% jung
|
|
\fi
|
|
}
|
|
\expandafter\def\expandafter\xpg@character@to@num\detokenize{the character} #1#2\relax{`#1\relax}
|
|
\expandafter\def\expandafter\xpg@letter@to@num\detokenize{the letter} #1#2\relax{`#1\relax}
|
|
\begingroup
|
|
\catcode`A=11 \catcode`0=12
|
|
\global\let\xpg@catcode@letter=A \global\let\xpg@catcode@other=0
|
|
\endgroup
|
|
% macros for interchartoks (Josa selection)
|
|
\def\XPGKOstartID{\global\futurelet\XPGKO@let@josa\XPGKO@skipID}
|
|
\def\XPGKOstartAA{\global\futurelet\XPGKO@let@josa\XPGKO@skipAA}
|
|
\def\XPGKO@skipID{\XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassID{\empty}}
|
|
\def\XPGKO@skipAA{\XeTeXinterchartoks\XeTeXcharclassBoundary\XPGKOcharclassAA{\empty}}
|
|
\def\XPGKOstopID {\XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassID{\XPGKOstartID}}
|
|
\def\XPGKOstopAA {\XeTeXinterchartoks\XeTeXcharclassBoundary\XPGKOcharclassAA{\XPGKOstartAA}}
|
|
% macros for interchartoks (CJK punctuations)
|
|
\def\XPGKOstartOP{\leavevmode\hbox to.5em\bgroup\hss}%
|
|
\def\XPGKOstopOP {\egroup}%
|
|
\def\XPGKOstartCL{\leavevmode\hbox to.5em\bgroup}%
|
|
\def\XPGKOstopCL {\hss\egroup}%
|
|
\let\XPGKOstartFS\XPGKOstartCL \let\XPGKOstopFS\XPGKOstopCL
|
|
\let\XPGKOstartMD\XPGKOstartOP \let\XPGKOstopMD\XPGKOstopCL
|
|
\let\XPGKOnobreak \nobreak
|
|
\def\XPGKOhalfzero {\hskip \XPGKOhalfdim \relax}%
|
|
\def\XPGKOhalfhalf {\hskip \XPGKOhalfdim minus \XPGKOhalfdim \relax}%
|
|
\def\XPGKOhalfquarter {\hskip \XPGKOhalfdim minus.5\XPGKOhalfdim \relax}%
|
|
\def\XPGKOquarterquarter {\hskip .5\XPGKOhalfdim minus.5\XPGKOhalfdim \relax}%
|
|
\def\XPGKOiiiquarterquarter{\hskip1.5\XPGKOhalfdim minus.5\XPGKOhalfdim \relax}%
|
|
\def\XPGKOlatincjk {\hskip .5\XPGKOhalfdim plus.25\XPGKOhalfdim minus.125\XPGKOhalfdim}%
|
|
% user macro to force zero skip
|
|
\let\inhibitglue\relax
|
|
% initialize interchartoks and classes
|
|
\ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
|
|
\let\XeTeXcharclassIgnore \@cclvi
|
|
\let\XeTeXcharclassBoundary\@cclv
|
|
\else
|
|
\chardef\XeTeXcharclassIgnore =4096
|
|
\chardef\XeTeXcharclassBoundary=4095
|
|
\fi
|
|
\ifdefined\XeTeXcharclassID\else
|
|
\ifdefined\xtxHanGlue
|
|
\let\XeTeXcharclassID\@ne
|
|
\let\XeTeXcharclassOP\tw@
|
|
\let\XeTeXcharclassCL\thr@@
|
|
\else % email from JW
|
|
\newXeTeXintercharclass\XeTeXcharclassID
|
|
\newXeTeXintercharclass\XeTeXcharclassOP
|
|
\newXeTeXintercharclass\XeTeXcharclassCL
|
|
\global\let\XeTeXcharclassCJ\XeTeXcharclassID
|
|
\global\let\XeTeXcharclassEX\XeTeXcharclassCL
|
|
\global\let\XeTeXcharclassIS\XeTeXcharclassCL
|
|
\global\let\XeTeXcharclassNS\XeTeXcharclassCL
|
|
\global\let\XeTeXcharclassCM\XeTeXcharclassIgnore
|
|
\input load-unicode-xetex-classes %
|
|
\fi
|
|
\fi
|
|
% assign Hangul
|
|
\count@="AC00 \loop
|
|
\XeTeXcharclass\count@\XeTeXcharclassID
|
|
\ifnum\count@<"D7A3
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@="1100 \loop
|
|
\XeTeXcharclass\count@\XeTeXcharclassID
|
|
\ifnum\count@<"11FF
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@="A960 \loop
|
|
\XeTeXcharclass\count@\XeTeXcharclassID
|
|
\ifnum\count@<"A97C
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@="D7B0 \loop
|
|
\XeTeXcharclass\count@\XeTeXcharclassID
|
|
\ifnum\count@<"D7FB
|
|
\advance\count@\@ne
|
|
\repeat
|
|
% more classes
|
|
\newXeTeXintercharclass\XPGKOcharclassMD % ・ : ;
|
|
\newXeTeXintercharclass\XPGKOcharclassFS % 。 .
|
|
\newXeTeXintercharclass\XPGKOcharclassLD % ― … ‥
|
|
\newXeTeXintercharclass\XPGKOcharclassEX % ? !
|
|
\newXeTeXintercharclass\XPGKOcharclassAO % ascii (
|
|
\newXeTeXintercharclass\XPGKOcharclassAC % ascii )
|
|
\newXeTeXintercharclass\XPGKOcharclassAA % ascii letters/numbers
|
|
% unset all interchartoks
|
|
\def\unsetvariantkoreaninterchartoks{%
|
|
\@tfor\@tmpa :=\XeTeXcharclassID\XeTeXcharclassOP\XeTeXcharclassCL\XPGKOcharclassMD\XPGKOcharclassFS
|
|
\XPGKOcharclassLD\XPGKOcharclassEX\XPGKOcharclassAO\XPGKOcharclassAC\XPGKOcharclassAA
|
|
\do{\count@\XeTeXcharclassBoundary \loop
|
|
\XeTeXinterchartoks\@tmpa\count@{}%
|
|
\XeTeXinterchartoks\count@\@tmpa{}%
|
|
\ifnum\count@=\XeTeXcharclassBoundary \count@\m@ne \fi
|
|
\ifnum\count@<\xe@alloc@intercharclass
|
|
\advance\count@\@ne
|
|
\repeat
|
|
}%
|
|
}
|
|
% interchartoks for classic/modern variants
|
|
\def\setvariantkoreaninterchartoks{%
|
|
\count@\XeTeXcharclassBoundary \loop
|
|
\ifnum\count@=\XeTeXcharclassID\else
|
|
\ifnum\count@=\XeTeXcharclassOP\else
|
|
\ifnum\count@=\XeTeXcharclassCL\else
|
|
\ifnum\count@=\XPGKOcharclassMD\else
|
|
\ifnum\count@=\XPGKOcharclassFS\else
|
|
\ifnum\count@=\XPGKOcharclassAA\else
|
|
\XeTeXinterchartoks\count@\XeTeXcharclassID{\XPGKOstartID}%
|
|
\XeTeXinterchartoks\count@\XeTeXcharclassOP{\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\count@\XeTeXcharclassCL{\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\count@\XPGKOcharclassMD{\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\count@\XPGKOcharclassFS{\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\count@\XPGKOcharclassAA{\XPGKOstartAA}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\count@{\XPGKOstopID}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\count@{\XPGKOstopOP}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\count@{\XPGKOstopCL}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\count@{\XPGKOstopMD}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\count@{\XPGKOstopFS}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\count@{\XPGKOstopAA}%
|
|
\fi\fi\fi\fi\fi\fi
|
|
\ifnum\count@=\XeTeXcharclassBoundary \count@\m@ne \fi
|
|
\ifnum\count@<\xe@alloc@intercharclass
|
|
\advance\count@\@ne
|
|
\repeat
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassID{\XPGKOstopAA\XPGKOlatincjk\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassOP{\XPGKOstopAA\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassCL{\XPGKOstopAA\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassMD{\XPGKOstopAA\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassFS{\XPGKOstopAA\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassAA{\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XeTeXcharclassID{\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XeTeXcharclassOP{\XPGKOstopID\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XeTeXcharclassCL{\XPGKOstopID\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassMD{\XPGKOstopID\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassFS{\XPGKOstopID\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassAO{\XPGKOstopID\XPGKOlatincjk}%
|
|
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassAA{\XPGKOstopID\XPGKOlatincjk\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XeTeXcharclassID{\XPGKOstopOP\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XeTeXcharclassOP{\XPGKOstopOP\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XeTeXcharclassCL{\XPGKOstopOP\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XPGKOcharclassMD{\XPGKOstopOP\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XPGKOcharclassFS{\XPGKOstopOP\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XeTeXcharclassOP\XPGKOcharclassAA{\XPGKOstopOP\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XeTeXcharclassID{\XPGKOstopCL\XPGKOhalfhalf\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XeTeXcharclassOP{\XPGKOstopCL\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XeTeXcharclassCL{\XPGKOstopCL\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassMD{\XPGKOstopCL\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassFS{\XPGKOstopCL\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassLD{\XPGKOstopCL\XPGKOnobreak\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassEX{\XPGKOstopCL\XPGKOnobreak\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAO{\XPGKOstopCL\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAC{\XPGKOstopCL\XPGKOnobreak\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAA{\XPGKOstopCL\XPGKOhalfhalf\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XeTeXcharclassID{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XeTeXcharclassOP{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XeTeXcharclassCL{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassMD{\XPGKOstopMD\XPGKOnobreak\XPGKOhalfquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassFS{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassLD{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassEX{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAO{\XPGKOstopMD\XPGKOquarterquarter}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAC{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter}%
|
|
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAA{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XeTeXcharclassID{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XeTeXcharclassOP{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XeTeXcharclassCL{\XPGKOstopFS\XPGKOstartCL}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassMD{\XPGKOstopFS\XPGKOnobreak\XPGKOiiiquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassFS{\XPGKOstopFS\XPGKOstartFS}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassLD{\XPGKOstopFS\XPGKOnobreak\XPGKOhalfzero}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassEX{\XPGKOstopFS\XPGKOnobreak\XPGKOhalfzero}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAO{\XPGKOstopFS\XPGKOhalfzero}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAC{\XPGKOstopFS\XPGKOnobreak\XPGKOhalfzero}%
|
|
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAA{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassLD\XeTeXcharclassOP{\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassLD\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XeTeXcharclassID{\XPGKOhalfhalf\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XeTeXcharclassOP{\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAO{\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAC{\XPGKOnobreak\XPGKOhalfhalf}%
|
|
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAA{\XPGKOhalfhalf\XPGKOstartAA}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassAO\XeTeXcharclassOP{\XPGKOnobreak\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAO\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
%
|
|
\XeTeXinterchartoks\XPGKOcharclassAC\XeTeXcharclassID{\XPGKOlatincjk\XPGKOstartID}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAC\XeTeXcharclassOP{\XPGKOhalfhalf\XPGKOstartOP}%
|
|
\XeTeXinterchartoks\XPGKOcharclassAC\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
|
|
}
|
|
% char classes for classic/modern variants
|
|
\def\setvariantkoreancharclasses{}
|
|
\def\unsetvariantkoreancharclasses{}
|
|
\def\@tmpa#1=#2{%
|
|
\edef\setvariantkoreancharclasses{%
|
|
\unexpanded\expandafter{\setvariantkoreancharclasses
|
|
\XeTeXcharclass#1=#2}}%
|
|
\edef\unsetvariantkoreancharclasses{%
|
|
\noexpand\XeTeXcharclass#1=\the\XeTeXcharclass#1\relax
|
|
\unexpanded\expandafter{\unsetvariantkoreancharclasses}}%
|
|
}
|
|
\count@"30 \loop % 0 .. 9
|
|
\expandafter\@tmpa\the\count@=\XPGKOcharclassAA
|
|
\ifnum\count@<"39
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@"41 \loop % A .. Z
|
|
\expandafter\@tmpa\the\count@=\XPGKOcharclassAA
|
|
\ifnum\count@<"5A
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@"61 \loop % a .. z
|
|
\expandafter\@tmpa\the\count@=\XPGKOcharclassAA
|
|
\ifnum\count@<"7A
|
|
\advance\count@\@ne
|
|
\repeat
|
|
% NS
|
|
\@tmpa "3005=\XeTeXcharclassID % 々 IDEOGRAPHIC ITERATION MARK
|
|
\@tmpa "301C=\XeTeXcharclassID % 〜 WAVE DASH
|
|
\@tmpa "303B=\XeTeXcharclassID % 〻 VERTICAL IDEOGRAPHIC ITERATION MARK
|
|
\@tmpa "303C=\XeTeXcharclassID % 〼 MASU MARK
|
|
\@tmpa "309B=\XeTeXcharclassID % ゛ KATAKANA-HIRAGANA VOICED SOUND MARK
|
|
\@tmpa "309C=\XeTeXcharclassID % ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
|
|
\@tmpa "309D=\XeTeXcharclassID % ゝ HIRAGANA ITERATION MARK
|
|
\@tmpa "309E=\XeTeXcharclassID % ゞ HIRAGANA VOICED ITERATION MARK
|
|
\@tmpa "30A0=\XeTeXcharclassID % ゠ KATAKANA-HIRAGANA DOUBLE HYPHEN
|
|
\@tmpa "30FD=\XeTeXcharclassID % ヽ KATAKANA ITERATION MARK
|
|
\@tmpa "30FE=\XeTeXcharclassID % ヾ KATAKANA VOICED ITERATION MARK
|
|
\@tmpa "A015=\XeTeXcharclassID % ꀕ YI SYLLABLE ITERATION MARK
|
|
\@tmpa "FF9E=\XeTeXcharclassID % ゙ HALFWIDTH KATAKANA VOICED SOUND MARK
|
|
\@tmpa "FF9F=\XeTeXcharclassID % ゚ HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
|
|
% IS
|
|
\@tmpa "FE13=\XeTeXcharclassID % ︓ PRESENTATION FORM FOR VERTICAL COLON
|
|
\@tmpa "FE14=\XeTeXcharclassID % ︔ PRESENTATION FORM FOR VERTICAL SEMICOLON
|
|
% CJ
|
|
\ifnum\the\XeTeXcharclass"3041=\XeTeXcharclassID \else
|
|
\@tmpa "3041=\XeTeXcharclassID % ぁ HIRAGANA LETTER SMALL A
|
|
\@tmpa "3043=\XeTeXcharclassID % ぃ HIRAGANA LETTER SMALL I
|
|
\@tmpa "3045=\XeTeXcharclassID % ぅ HIRAGANA LETTER SMALL U
|
|
\@tmpa "3047=\XeTeXcharclassID % ぇ HIRAGANA LETTER SMALL E
|
|
\@tmpa "3049=\XeTeXcharclassID % ぉ HIRAGANA LETTER SMALL O
|
|
\@tmpa "3063=\XeTeXcharclassID % っ HIRAGANA LETTER SMALL TU
|
|
\@tmpa "3083=\XeTeXcharclassID % ゃ HIRAGANA LETTER SMALL YA
|
|
\@tmpa "3085=\XeTeXcharclassID % ゅ HIRAGANA LETTER SMALL YU
|
|
\@tmpa "3087=\XeTeXcharclassID % ょ HIRAGANA LETTER SMALL YO
|
|
\@tmpa "308E=\XeTeXcharclassID % ゎ HIRAGANA LETTER SMALL WA
|
|
\@tmpa "3095=\XeTeXcharclassID % ゕ HIRAGANA LETTER SMALL KA
|
|
\@tmpa "3096=\XeTeXcharclassID % ゖ HIRAGANA LETTER SMALL KE
|
|
\@tmpa "30A1=\XeTeXcharclassID % ァ KATAKANA LETTER SMALL A
|
|
\@tmpa "30A3=\XeTeXcharclassID % ィ KATAKANA LETTER SMALL I
|
|
\@tmpa "30A5=\XeTeXcharclassID % ゥ KATAKANA LETTER SMALL U
|
|
\@tmpa "30A7=\XeTeXcharclassID % ェ KATAKANA LETTER SMALL E
|
|
\@tmpa "30A9=\XeTeXcharclassID % ォ KATAKANA LETTER SMALL O
|
|
\@tmpa "30C3=\XeTeXcharclassID % ッ KATAKANA LETTER SMALL TU
|
|
\@tmpa "30E3=\XeTeXcharclassID % ャ KATAKANA LETTER SMALL YA
|
|
\@tmpa "30E5=\XeTeXcharclassID % ュ KATAKANA LETTER SMALL YU
|
|
\@tmpa "30E7=\XeTeXcharclassID % ョ KATAKANA LETTER SMALL YO
|
|
\@tmpa "30EE=\XeTeXcharclassID % ヮ KATAKANA LETTER SMALL WA
|
|
\@tmpa "30F5=\XeTeXcharclassID % ヵ KATAKANA LETTER SMALL KA
|
|
\@tmpa "30F6=\XeTeXcharclassID % ヶ KATAKANA LETTER SMALL KE
|
|
\@tmpa "30FC=\XeTeXcharclassID % ー KATAKANA-HIRAGANA PROLONGED SOUND MARK
|
|
\count@"31F0 \loop
|
|
\expandafter\@tmpa\the\count@=\XeTeXcharclassID
|
|
\ifnum\count@<"31FF
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\count@"FF67 \loop
|
|
\expandafter\@tmpa\the\count@=\XeTeXcharclassID
|
|
\ifnum\count@<"FF70
|
|
\advance\count@\@ne
|
|
\repeat
|
|
\fi
|
|
%
|
|
\@tmpa "28=\XPGKOcharclassAO % ( LEFT PARENTHESIS
|
|
\@tmpa "5B=\XPGKOcharclassAO % [ LEFT SQUARE BRACKET
|
|
\@tmpa "60=\XPGKOcharclassAO % ` GRAVE ACCENT
|
|
\@tmpa "7B=\XPGKOcharclassAO % { LEFT CURLY BRACKET
|
|
\@tmpa "AB=\XPGKOcharclassAO % « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
%
|
|
\@tmpa "21=\XPGKOcharclassAC % ! EXCLAMATION MARK
|
|
\@tmpa "27=\XPGKOcharclassAC % ' APOSTROPHE
|
|
\@tmpa "29=\XPGKOcharclassAC % ) RIGHT PARENTHESIS
|
|
\@tmpa "2C=\XPGKOcharclassAC % , COMMA
|
|
\@tmpa "2E=\XPGKOcharclassAC % . FULL STOP
|
|
\@tmpa "3B=\XPGKOcharclassAC % ; SEMICOLON
|
|
\@tmpa "3F=\XPGKOcharclassAC % ? QUESTION MARK
|
|
\@tmpa "5D=\XPGKOcharclassAC % ] RIGHT SQUARE BRACKET
|
|
\@tmpa "7D=\XPGKOcharclassAC % } RIGHT CURLY BRACKET
|
|
\@tmpa "BB=\XPGKOcharclassAC % » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
%
|
|
\@tmpa "2018=\XeTeXcharclassOP % ‘ LEFT SINGLE QUOTATION MARK
|
|
\@tmpa "201C=\XeTeXcharclassOP % “ LEFT DOUBLE QUOTATION MARK
|
|
%
|
|
\@tmpa "2019=\XeTeXcharclassCL % ’ RIGHT SINGLE QUOTATION MARK
|
|
\@tmpa "201D=\XeTeXcharclassCL % ” RIGHT DOUBLE QUOTATION MARK
|
|
% NS
|
|
\@tmpa "00B7=\XPGKOcharclassMD % · MIDDLE DOT
|
|
\@tmpa "30FB=\XPGKOcharclassMD % ・ KATAKANA MIDDLE DOT
|
|
\@tmpa "FE54=\XPGKOcharclassMD % ﹔ SMALL SEMICOLON
|
|
\@tmpa "FE55=\XPGKOcharclassMD % ﹕ SMALL COLON
|
|
\@tmpa "FF1A=\XPGKOcharclassMD % : FULLWIDTH COLON
|
|
\@tmpa "FF1B=\XPGKOcharclassMD % ; FULLWIDTH SEMICOLON
|
|
\@tmpa "FF65=\XPGKOcharclassMD % ・ HALFWIDTH KATAKANA MIDDLE DOT
|
|
%
|
|
\@tmpa "3002=\XPGKOcharclassFS % 。 IDEOGRAPHIC FULL STOP
|
|
\@tmpa "FE12=\XPGKOcharclassFS % ︒ PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
|
|
\@tmpa "FE52=\XPGKOcharclassFS % ﹒ SMALL FULL STOP
|
|
\@tmpa "FF0E=\XPGKOcharclassFS % . FULLWIDTH FULL STOP
|
|
\@tmpa "FF61=\XPGKOcharclassFS % 。 HALFWIDTH IDEOGRAPHIC FULL STOP
|
|
%
|
|
\@tmpa "2014=\XPGKOcharclassLD % — EM DASH
|
|
\@tmpa "2015=\XPGKOcharclassLD % ― HORIZONTAL BAR
|
|
\@tmpa "2025=\XPGKOcharclassLD % ‥ TWO DOT LEADER
|
|
\@tmpa "2026=\XPGKOcharclassLD % … HORIZONTAL ELLIPSIS
|
|
% EX
|
|
\@tmpa "FE15=\XPGKOcharclassEX % ︕ PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
|
|
\@tmpa "FE16=\XPGKOcharclassEX % ︖ PRESENTATION FORM FOR VERTICAL QUESTION MARK
|
|
\@tmpa "FE56=\XPGKOcharclassEX % ﹖ SMALL QUESTION MARK
|
|
\@tmpa "FE57=\XPGKOcharclassEX % ﹗ SMALL EXCLAMATION MARK
|
|
\@tmpa "FF01=\XPGKOcharclassEX % ! FULLWIDTH EXCLAMATION MARK
|
|
\@tmpa "FF1F=\XPGKOcharclassEX % ? FULLWIDTH QUESTION MARK
|
|
|
|
% vim:ft=tex:tw=0:sw=4:ts=4:expandtab
|
|
|