diff options
Diffstat (limited to 'Master/texmf-dist/tex/plain/kotex-plain/hangulcweb.tex')
-rw-r--r-- | Master/texmf-dist/tex/plain/kotex-plain/hangulcweb.tex | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/kotex-plain/hangulcweb.tex b/Master/texmf-dist/tex/plain/kotex-plain/hangulcweb.tex new file mode 100644 index 00000000000..84a0ee26b68 --- /dev/null +++ b/Master/texmf-dist/tex/plain/kotex-plain/hangulcweb.tex @@ -0,0 +1,232 @@ +%% File hangulcweb.tex +%% +%% (C) Copyright 2007-2013 Dohyun Kim <nomos at ktug org> +%% Soojin Nam <sjnam at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\input kotexplain + +\ifpdftex + \ifdefined\pdfgentounicode + \input glyphtounicode + \pdfgentounicode=1 + \fi +\fi + +\baselineskip 15pt + +% 기본 폰트를 한글을 포함하도록 다시 정의합니다. +\expandafter\def\expandafter\tt\expandafter{\tt\hfontname{nanumgtm}} +\expandafter\def\expandafter\sl\expandafter{\sl\hfontname{nanummjmo}} +\expandafter\def\expandafter\it\expandafter{\it\hfontname{nanummjmo}} +\expandafter\def\expandafter\bf\expandafter{\bf\hfontname{nanummjb}} + +% 각종 폰트를 한글을 포함하도록 재정의 +\let\otitlefont=\titlefont \def\titlefont{\hfont{nanummjm}{at 13pt}\otitlefont} +\let\ottitlefont=\ttitlefont \def\ttitlefont{\hfont{nanumgtm}{at 13pt}\ottitlefont} +\let\orgninerm=\ninerm \def\ninerm{\hfont{nanummjm}{at 9pt}\orgninerm} +\let\orgeightrm=\eightrm \def\eightrm{\hfont{nanummjm}{at 8pt}\orgeightrm} +\let\orgsc=\sc \def\sc{\hfont{nanummjm}{at 8pt}\orgsc} +\let\orgtentex=\tentex \def\tentex{\hfontname{nanumgtm}\orgtentex} + +\expandafter\edef\csname AT(@):catcode\endcsname + {\noexpand\catcode`@\the\catcode`@} +\catcode`\@=11 + +% names of the sections +\def\fin{\par\vfill\eject % this is done when we are ending the index + \ifpagesaved\null\vfill\eject\fi % output a null index column + \if L\lr\else\null\vfill\eject\fi % finish the current page + \parfillskip 0pt plus 1fil + \def\grouptitle{마디 목차} + \let\topsecno=\nullsec + \message{Section names:} + \output={\normaloutput\page\lheader\rheader} + \setpage + \def\note##1##2.{\quad{\eightrm\ifacro{\pdfnote##2.}\else{##2}\fi##1.}} + \def\Q{\note{번 마디에서 인용된다}} \let\Qs=\Q + \def\U{\note{번 마디에서 사용된다}} \let\Us=\U + \def\I{\par\hangindent 2em}\let\*=* + \ifacro \def\outsecname{\bschar376\bschar377\bschar271\bschar310\bschar265\bschar024\bschar000 \bschar272\bschar251\bschar314\bschar050}% 마디 목차 + \let\Xpdf\X + \ifpdftex + \edef\0{\string\0}% + \edef\1{\string\1}% + \edef\2{\string\2}% + \edef\3{\string\3}% + \makebookmarks \pdfdest name {NOS} fitb + \pdfoutline goto name {NOS} count -\secno {\outsecname} + \def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.% + {\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}% + \pdfoutline goto num \the\toksA \expandafter{\the\toksE}} + \else\ifpdf + \special{pdf: outline -1 << /Title (\outsecname) + /Dest [ @thispage /FitH @ypos ] >>} + \def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.% + {\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}% + \special{pdf: outline 0 << /Title (\the\toksE) + /A << /S /GoTo /D (\romannumeral\the\toksA) >> >>}} + \fi\fi\fi + \readsections} + +% CWEB USER MANUAL의 부록C 14.에 해당하는 모든 매크로를 재정의 +\def\inote#1#2#3.{\Y\noindent{\hangindent2em% + \baselineskip10pt\eightrm#1~\ifacro{\pdfnote#3.}\else#3\fi#2.\par}} +\def\rnote#1#2.{\Y\noindent{\hangindent2em% + \baselineskip10pt\eightrm\ifacro{\pdfnote#2.}\else#2\fi#1.\par}} +\def\A{\rnote{번 마디도 살펴보라}} \let\As=\A +\def\Q{\inote{이 코드는}{번 마디에서 인용된다}} \let\Qs=\Q +\def\U{\inote{이 코드는}{번 마디에서 사용된다}} \let\Us=\U +\def\ET{,~} \def\ETs{\ET} +\def\ATH{{\acrofalse\X\kern-.5em:전처리기 정의들\X}} +\def\ch{\note{Change 파일에서 변경된 마디들:} + \let\*=\relax} +\def\today{\number\year 년 \number\month 월 \number\day 일} +\def\datethis{\def\startsection{\leftline{\sc\today\ \ \hours}\bigskip + \let\startsection=\stsec\stsec}} +\def\datecontentspage{% changed in version 3.66 + \def\botofcontents{\vfill + \centerline{\covernote} + \bigskip + \leftline{\sc\today\ \hours}}} % timestamps the contents page + +% 단순한 한글화로 목차 재정의 +\def\con{\par\vfill\eject % finish the section names +% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers + \rightskip 0pt \hyphenpenalty 50 \tolerance 200 + \setpage \output={\normaloutput\page\lheader\rheader} + \titletrue % prepare to output the table of contents + \pageno=\contentspagenumber + \def\grouptitle{목차} + \message{Table of contents:} + \topofcontents \startpdf + \line{\hfil 마디\hbox to3em{\hss 쪽}} + \let\ZZ=\contentsline + \readcontents\relax % read the contents info + \botofcontents \end} % print the contents page(s) and terminate + +\ifacro\else\expandafter\endinput\fi % pdf mode에서만... +% ascii문자는 앞에 zero 붙여 ucs string으로 만든다. +\def\addF#1{\addtokens\toksF{\bschar000#1}\tokprocessedtrue} +\def\makeoutlinetoks{\Tnumfalse + % BOM(0xfeff)을 outline string 맨 앞에 첨가한다. + \addtokens\toksF{\bschar376\bschar377}% + % ucs 패키지의 \unichar 재정의; 그룹내이므로 안전. + \def\unihangulchar##1{\ucsoltooctal{##1}\makeolnexttok}% + \afterassignment\makeolproctok\let\nxt= +} +\def\makeolproctok{\tokprocessedfalse + \let\next\makeolnexttok % default + \ifx\nxt\outlinedone\let\next\outlinedone + \else\ifx{\nxt \else\ifx}\nxt \Tnumfalse \instrfalse % skip braces + \else\ifx$\nxt % or a $ sign + \else\ifx^\nxt \addF^\else\ifx_\nxt \addF_% sanitize ^ and _ + \else\ifx\nxt\spacechar \addF\space + \else\if\noexpand\nxt\relax % we have a control sequence; is it one we know? + \ifx\nxt~\addF\space + \else\ifx\nxt\onespace\addF\space + \else\the\usersanitizer + \iftokprocessed\else\makeolproctokctli + \iftokprocessed\else\makeolproctokctlii + \iftokprocessed\else\makeolproctokctliii % if not recognised, skip it + %%%%% skip 하지 않고 한글 처리!!! + %\iftokprocessed\else\let\next\nxt\fi + \iftokprocessed\else\makeolproctokhangul\fi + %%%%% + \fi\fi\fi\fi\fi + \else % we don't have a control sequence, it's an ordinary char + \ifx/\nxt \addF{\string\/}% quote chars special to PDF with backslash + \else\ifx(\nxt \addF{\string\(}\else\ifx)\nxt \addF{\string\)}% + \else\ifx[\nxt \addF{\string\[}\else\ifx]\nxt \addF{\string\]}% + \else\expandafter\makeolproctokchar\meaning\nxt + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \next +} +\def\makeolproctokhangul{% + % 음, 이렇게 단순무식하게 ifx 검사하는 것이 안전하긴 한데 + % 더 좋은 방법은 없을까? + \ifx^^c2\nxt\let\next\nxt\else + \ifx^^c3\nxt\let\next\nxt\else + \ifx^^c4\nxt\let\next\nxt\else + \ifx^^c5\nxt\let\next\nxt\else + \ifx^^c6\nxt\let\next\nxt\else + \ifx^^c7\nxt\let\next\nxt\else + \ifx^^c8\nxt\let\next\nxt\else + \ifx^^c9\nxt\let\next\nxt\else + \ifx^^ca\nxt\let\next\nxt\else + \ifx^^cb\nxt\let\next\nxt\else + \ifx^^cc\nxt\let\next\nxt\else + \ifx^^cd\nxt\let\next\nxt\else + \ifx^^ce\nxt\let\next\nxt\else + \ifx^^cf\nxt\let\next\nxt\else + \ifx^^d0\nxt\let\next\nxt\else + \ifx^^d1\nxt\let\next\nxt\else + \ifx^^d2\nxt\let\next\nxt\else + \ifx^^d3\nxt\let\next\nxt\else + \ifx^^d4\nxt\let\next\nxt\else + \ifx^^d5\nxt\let\next\nxt\else + \ifx^^d6\nxt\let\next\nxt\else + \ifx^^d7\nxt\let\next\nxt\else + \ifx^^d8\nxt\let\next\nxt\else + \ifx^^d9\nxt\let\next\nxt\else + \ifx^^da\nxt\let\next\nxt\else + \ifx^^db\nxt\let\next\nxt\else + \ifx^^dc\nxt\let\next\nxt\else + \ifx^^dd\nxt\let\next\nxt\else + \ifx^^de\nxt\let\next\nxt\else + \ifx^^df\nxt\let\next\nxt\else + \ifx^^e0\nxt\let\next\nxt\else + \ifx^^e1\nxt\let\next\nxt\else + \ifx^^e2\nxt\let\next\nxt\else + \ifx^^e3\nxt\let\next\nxt\else + \ifx^^e4\nxt\let\next\nxt\else + \ifx^^e5\nxt\let\next\nxt\else + \ifx^^e6\nxt\let\next\nxt\else + \ifx^^e7\nxt\let\next\nxt\else + \ifx^^e8\nxt\let\next\nxt\else + \ifx^^e9\nxt\let\next\nxt\else + \ifx^^ea\nxt\let\next\nxt\else + \ifx^^eb\nxt\let\next\nxt\else + \ifx^^ec\nxt\let\next\nxt\else + \ifx^^ed\nxt\let\next\nxt\else + \ifx^^ee\nxt\let\next\nxt\else + \ifx^^ef\nxt\let\next\nxt\else + \ifx^^f0\nxt\let\next\nxt\else + \ifx^^f1\nxt\let\next\nxt\else + \ifx^^f2\nxt\let\next\nxt\else + \ifx^^f3\nxt\let\next\nxt\else + \ifx^^f4\nxt\let\next\nxt\else + %%% really skip it. +\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +} +\def\ucsoltooctal#1{% + \count@\dimexpr.00006103515625\dimexpr#1sp\relax\relax + \edef\ucsoltempa{\number\count@}% + \@tempcnta\numexpr#1-'40000*\count@\relax + \count@\dimexpr.00048828125\dimexpr\@tempcnta sp\relax\relax + \edef\ucsoltempa{\ucsoltempa\number\count@}% + \@tempcnta\numexpr\@tempcnta-'4000*\count@\relax + \count@\dimexpr.00390625\dimexpr\@tempcnta sp\relax\relax + \edef\ucsoltempa{\ucsoltempa\number\count@}% + \@tempcnta\numexpr\@tempcnta-'400*\count@\relax + \count@\dimexpr.015625\dimexpr\@tempcnta sp\relax\relax + \edef\ucsoltempb{\number\count@}% + \@tempcnta\numexpr\@tempcnta-'100*\count@\relax + \count@\dimexpr.125\dimexpr\@tempcnta sp\relax\relax + \edef\ucsoltempb{\ucsoltempb\number\count@}% + \edef\ucsoltempb{\ucsoltempb\number\numexpr\@tempcnta-'10*\count@\relax}% + \addtokens\toksF{\bschar\ucsoltempa\bschar\ucsoltempb}\tokprocessedtrue +} + +\csname AT(@):catcode\endcsname + +\endinput + +%%% changes for ko.Tex 2.0, by Karnes. |