%% File `kotex-sections.tex` %% %% (C) 2014-2022 Kangsoo Kim %% %% 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. %% \ProvidesFile{kotex-sections} [2022/06/20 0.3.1 chapter/section styles from HLaTeX] %% konames-utf %\RequirePackage{konames-utf} \@ifpackageloaded{konames-utf}{}{% \RequirePackage{konames-utf} } \newdimen\kosecldim\kosecldim=2.3em %% 단원의 한글화 %% ============= %% %% Part I --> 제 I 편, 第 I 篇 %% Chapter 1 --> 제 1 장, 第 1 章 %% Section 1 --> 제 1 절, 第 1 節 %% Appendix A --> 부록 A, 附綠 A %% %% 위와 같은 단원의 한글화는 절(節)까지 영향을 미친다. 그러므로 우리는 %% 목차에 \subsubsection까지 단원이 번호와 함께 나오도록 한다. %% article에서는 이미 3으로 지정되었으나, 그외에서는 2로 지정되어 %% \subsection까지만 번호가 목차에 나오도록 되어 있다. \setcounter{secnumdepth}{\thr@@} \@ifclassloaded{article}{%
\renewcommand{\appendix}{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \def\@chapapp{\appendixname}% 부록의 한글화에 의해 필요. \kscntformat{section}{\appendixname~}{} \def\thesection{\@Alph\c@section}}% }{\@ifundefined{@chapapp}{}{% \renewcommand\thesection{\@arabic\c@section} \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \renewcommand\@chapapp{\appendixname}% \kscntformat{chapter}{\appendixname~}{} \renewcommand\thechapter{\@Alph\c@chapter}}% }} %% 위와같은 재정의로 다음과 같은 문제가 발생한다. %% 1. \part는 \partname~\thepart로 나오게 된다. 편~I %% 2. \chapter는 \@chapapp{} \thechapter로. 장~1 %% 3. \section은 \sectionname~\thesection으로. 절~1 %% 4. 목차작성의 들여쓰기가 우리말 환경에 적당하지 않다. %% 5. 페이지 heading의 글자체가 \slshape으로 바뀜으로서 우리말이 %% 불안정해진다. %% %% 이런 약점을 보완하기 위해 단원의 일련번호의 앞과 뒤에 끼워넣을 %% 모듬을 다음과 같이 설정한다. \def\kscntformat#1#2#3{\@namedef{pre@#1cnt}{#2} \@namedef{post@#1cnt}{#3}} \kscntformat{part}{\KSTHE~}{~\partname} \kscntformat{chapter}{\KSTHE~}{~\chaptername} \kscntformat{section}{\KSTHE~}{~\sectionname} \@ifclassloaded{article}{%
\def\@part[#1]#2{% \ifnum \c@secnumdepth >\m@ne \refstepcounter{part}% \addcontentsline{toc}{part}% {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% \else \addcontentsline{toc}{part}{#1}% \fi {\parindent \z@ \raggedright \interlinepenalty \@M \normalfont \ifnum \c@secnumdepth >\m@ne \Large\bfseries \pre@partcnt\thepart\post@partcnt \par\nobreak \fi \huge \bfseries #2% \markboth{}{}\par}% \nobreak \vskip 3ex \@afterheading} }{} \@ifclassloaded{report}{% \def\@part[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}% {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% \else \addcontentsline{toc}{part}{#1}% \fi \markboth{}{}% {\centering \interlinepenalty \@M \normalfont \ifnum \c@secnumdepth >-2\relax \huge\bfseries \pre@partcnt\thepart\post@partcnt \par \vskip 20\p@ \fi \Huge \bfseries #2\par}% \@endpart} }{} \@ifclassloaded{book}{% \def\@part[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}% {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% \else \addcontentsline{toc}{part}{#1}% \fi \markboth{}{}% {\centering \interlinepenalty \@M \normalfont \ifnum \c@secnumdepth >-2\relax \huge\bfseries \pre@partcnt\thepart\post@partcnt \par \vskip 20\p@ \fi \Huge \bfseries #2\par}% \@endpart} }{} \@ifclassloaded{book}{% \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter{chapter}% \typeout{\pre@chaptercnt\thechapter\post@chaptercnt}% \addcontentsline{toc}{chapter}% {\protect\numberline{% \pre@chaptercnt\thechapter\post@chaptercnt}#1}% \else \addcontentsline{toc}{chapter}{#1}% \fi \else \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \normalfont \ifnum \c@secnumdepth >\m@ne \if@mainmatter \huge\bfseries \pre@chaptercnt\thechapter\post@chaptercnt \par\nobreak \vskip 20\p@ \fi \fi \interlinepenalty\@M \Huge \bfseries #1\par\nobreak \vskip 40\p@ }} \renewcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} \setlength\@tempdima{1.5em} \advance\@tempdima\wd\z@ \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance\leftskip \@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} }{}% \@ifclassloaded{report}{% \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\pre@chaptercnt\thechapter\post@chaptercnt} \addcontentsline{toc}{chapter}% {\protect\numberline{% \pre@chaptercnt\thechapter\post@chaptercnt}#1}% \else \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \normalfont \ifnum \c@secnumdepth >\m@ne \huge\bfseries \pre@chaptercnt\thechapter\post@chaptercnt \par\nobreak \vskip 20\p@ \fi \interlinepenalty\@M \Huge \bfseries #1\par\nobreak \vskip 40\p@ }} \renewcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} \setlength\@tempdima{1.5em} \advance\@tempdima\wd\z@ \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance\leftskip \@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} }{} %%%%% make compatible with tex4ht ? \def\dhucs@seccntformat#1#2{% \ifnum#2=\@ne\pre@sectioncnt\fi \csname the#1\endcsname \ifnum#2=\@ne\post@sectioncnt\fi \quad} \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty \else \refstepcounter{#1}% \protected@edef\@svsec{\dhucs@seccntformat{#1}{#2}\relax}% \fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6{% \@hangfrom{\hskip #3\relax\@svsec}% \interlinepenalty \@M #8\@@par}% \endgroup \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth \else \ifnum #2=1 % in case of section \protect\numberline{\pre@sectioncnt \csname the#1\endcsname\post@sectioncnt}% \else \protect\numberline{\csname the#1\endcsname}% \fi \fi #7}% \else \def\@svsechd{% #6{\hskip #3\relax \@svsec #8}% \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}% \fi #7}}% \fi \@xsect{#5}} %%%%% \@ifclassloaded{article}{% \renewcommand*\l@section[2]{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty% \addvspace{1.0em \@plus\p@}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% \addtolength{\@tempdima}{1.5em}% \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup \fi} }{} \@ifclassloaded{book}{ \renewcommand*\l@section{% \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% \addtolength{\@tempdima}{\kosecldim}% \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em }{} \@ifclassloaded{report}{ \renewcommand*\l@section{% \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% \addtolength{\@tempdima}{\kosecldim}% \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em }{} %% 다음은 \ps@headings과 \ps@myheadings를 한글에 맞게 수정한 것이다. %% 각각의 class들이 서로 다른 방식으로 페이지 머리를 짜므로 우리는 %% 여기서 각각을 따로따로 정의해 주어야 한다. \@ifclassloaded{article}{% \if@twoside \renewcommand\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\sectionmark##1{% \markboth {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \pre@sectioncnt\thesection\post@sectioncnt\quad \fi ##1}}{}}% \def\subsectionmark##1{% \markright {% \ifnum \c@secnumdepth >\@ne \thesubsection\quad \fi ##1}}} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \pre@sectioncnt\thesection\post@sectioncnt\quad \fi ##1}}}} \fi }{} \@ifclassloaded{book}{% \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \pre@chaptercnt\thechapter\post@chaptercnt\quad% \fi \fi ##1}}{}}% \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \pre@sectioncnt\thesection\post@sectioncnt\quad% \fi ##1}}}} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \pre@chaptercnt\thechapter\post@chaptercnt\quad% \fi \fi ##1}}}} \fi \pagestyle{headings} }{} \@ifclassloaded{report}{% \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \pre@chaptercnt\thechapter\post@chaptercnt\quad% \fi ##1}}{}}% \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \pre@sectioncnt\thesection\post@sectioncnt\quad% \fi ##1}}}} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \pre@chaptercnt\thechapter\post@chaptercnt\quad% \fi ##1}}}} \fi }{} %%% from xetexko.sty \AtBeginDocument{% \@ifpackageloaded{hyperref}{% \pdfstringdefDisableCommands{% \def\는{는}% \def\은{은}% \def\을{을}% \def\를{를}% \def\와{와}% \def\과{과}% \def\가{가}% \def\이{이}% \def\라{라}% \def\으{으}% \def\로{로}% }}{} } \endinput