%% File `dhucsfn.sty`
%%
%% (C) Copyright 2007-2013 Koaunghi Un <koaunghi at kornet net>
%%                         Dohyun Kim <nomos at ktug org>
%%                         Kangsoo Kim <karnes 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.
%%
%% -----------------------------------------------------
%%
%% 제공되는 선택 사항은 각주 번호 형식의 선택과 각주 판짜기 방식의
%% 선택으로 나뉜다.
%%
%% 각주 번호 형식
%% --------------
%% - 첨자: 라텍의 기본 방식이다.  각주 번호가 각주면에 첨자로 짜진다.
%%         [superscript]
%% - 괄호: 한글 문서에서 자주 접할 수 있는 방식이다.  각주 번호가
%%         각주면 글자체의 크기로 짜지며 각주 번호 다음에 닫는
%%         소괄호가 뒤따른다.  소괄호와 각주문의 사이에는 전각 넓이의
%%         간격이 각주 번호와 각주문을 구별하는데 효과적이다.
%%         [parenthesis]
%%
%% ``첨자''의 경우, 각주 번호와 각주문의 간격은 0pt이고
%% ``괄호''의 경우, 각주 번호와 각주문의 간격은 공간 문자의 넓이이다.
%% 이 간격을 달리 하고자 할 때는 다음과 같이 \footnumbersep의 길이를
%% 다시 준다.
%%   \setlength{\footnumbersep}{길이}
%%
%% 각주 판짜기 방식
%% ----------------
%% - 내어쓰기: 각주 번호가 본문의 왼쪽맞춤으로 짜지고 각주문은 첫
%%     글자의 위치로 왼쪽맞춤 된다. (hang)
%% - 다항이어쓰기: 각주가 새 행에서 시작하지 않고 앞의 각주에
%%     이어진다. 짧은 각줄고만 구성될 때 유용하다.  줄바꿈으로 새 행이
%%     시작하면 항상 새로운 각주가 시작되도록 짜여진다. (multipara}
%% - 단순이어쓰기: 다항이어쓰기와 같으나 새로운 각주가 행을 시작하도록
%%     하지 않는다.  앞의 각주가 끝나면 연이어 다음 각주가 시작한다. (para)
%% - 왼쪽맞춤: 들여쓰기나 내어쓰기에 의해 각주 번호가 구별되도록 하지
%%     않는다. 각주면 전체가 왼쪽맞춤으로 짜진다. (leftflush)
%% - 들여쓰기: 각주 번호가 있는 행이 왼쪽에서 2배각 들여 써진다.
%%     각주면의 각주 번호들은 오른쪽으로 정렬된다. (indent)
%% - 들여왼쪽맞춤: 왼쪽맞춤과 같으나 각주면 전체가 2배각 들어간다. (leftflushindent)
%% - 들여내어쓰기: 내어쓰기와 같으나 각주면 전체가 2배각 들어간다. (hangpar)
%% - 들여괄호맞춤: 들여내어쓰기와 같으나 줄바꿈으로 새로 시작하는 행의
%%     왼쪽 맞춤이 각주문의 첫 글자의 위치에서 왼쪽맞춤이 되지 않고
%%     각주 번호의 괄호가 끝나는 위치에서 왼쪽맞춤된다.  각주 번호
%%     형식은 ``괄호''가 애초값이다. (varhangpar)
%%
%% 기본 선택 사항
%% --------------
%% 선택 사항을 지정하지 않으면 ``첨자''와 ``내어쓰기''가 애초값이다.
%%

\def\filedate{2005/04/20}
\def\fileversion{1.0}

\ProvidesPackage{dhucsfn}[\filedate\space Korean footnote style]
\typeout{Korean footnote style `dhucsfn' (a variant of `hangulfn') <\filedate>.}

%% 주석 판짜기 설정

\setlength{\footnotesep}{3pt}
 
\def\footnoterule{\vfill\kern-3\p@
  \hrule \@width 2in \kern 2.6\p@\vspace{2pt}} % the \hrule is .4pt high

\newdimen\foot@parindent
\newdimen\footnumbersep

%% 라텍과 Λ를 구분하여 선택 사항 이름 규정

%\ifx\nullocplist\undefined
%\input hfn-k.tex
%\else
%\input hfn-u.tex
%\fi

%%% hfn-u.tex for hangul lambda

\DeclareOption{superscript}{
  \def\fn@markstyle{\@makefnmark}
  \footnumbersep0pt
}
\DeclareOption{parenthesis}{
  \def\fn@markstyle{\@thefnmark)}
  \settowidth{\footnumbersep}{~}
}

%% 각주 내어쓰기
%% ---------------------
%% 1) 첫번째 줄
%%    두번째 줄
\DeclareOption{hang}{%
  \long\def\@makefntext#1{
    \settowidth{\foot@parindent}{\fn@markstyle}
    \@setpar{\@@par\@tempdima \hsize
      \advance\@tempdima-\foot@parindent
      \parshape\@ne\foot@parindent \@tempdima}\par
    \parindent8\p@\noindent
    \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1}
}

%% 각주 다항이어쓰기
%% ---------------------
%% 1) 첫번째 각주  2) 두번째 각주
%% 3) 세번째 각주
\DeclareOption{multipara}{
  \input{fnpara.sty}
  \long\def\@makefntext#1{%
    \hbox{\fn@markstyle\hskip\footnumbersep #1}
  }%
}

%% 각주 단순이어쓰기
%% ---------------------
%% 1) 첫번째 각주  2) 두번째 각주  3) 세
%% 번째 각주
\DeclareOption{para}{
  \input{fnpara.sty}
  \long\def\@makefntext#1{%
    \fn@markstyle\ifdim\footnumbersep=\z@\else~\fi #1
  }%
}

%% 각주 왼쪽맞춤
%% ---------------------
%% 1) 첫번째 줄
%% 두번째 줄
%% \parindent: 본문의 별행 indent
\DeclareOption{leftflush}{
  \renewcommand\@makefntext[1]{%
    \settowidth{\foot@parindent}{\reset@font 각주}
    \parindent\foot@parindent\noindent%
    \fn@markstyle\hskip\footnumbersep #1}%
}

%% 각주 들여쓰기
%% ---------------------
%%     1) 첫번째 줄
%% 두번째 줄
%% \parindent: 본문 별행 indent의 일정 배수
%% 각주 번호 오른쪽 정렬
\DeclareOption{indent}{
  \renewcommand\@makefntext[1]{%
    \settowidth{\foot@parindent}{\reset@font 각주}
    \parindent\foot@parindent\noindent
    \hb@xt@1.5\foot@parindent{\hss\fn@markstyle}\hskip\footnumbersep #1}
}

%% 각주 들여왼쪽맞춤
%% ---------------------
%%     1) 첫번째 줄
%%     두번째 줄
\DeclareOption{leftflushindent}{
  \renewcommand\@makefntext[1]{%
    \settowidth{\foot@parindent}{\reset@font 각주}
    \leftskip\foot@parindent
    \parindent\z@\noindent
    \fn@markstyle\hskip\footnumbersep #1
  }
}

%% 각주 들여내어쓰기
%% ---------------------
%%     1) 첫번째 줄
%%        두번째 줄
\DeclareOption{hangpar}{
  \long\def\@makefntext#1{
    \settowidth{\foot@parindent}{\reset@font 각주}
    \settowidth{\footnumbersep}{\reset@font 주}
    \divide\footnumbersep by2
    \leftskip\foot@parindent
    \@setpar{\@@par\@tempdima \hsize
      \advance\@tempdima-\foot@parindent
      \parshape\@ne\foot@parindent \@tempdima}\par
    \parindent\z@\noindent
    \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1}
}

%% 각주 들여괄호맞춤
%% ---------------------
%%     1)  첫번째 줄
%%       두번째 줄
\DeclareOption{varhangpar}{
  \def\fn@markstyle{\@thefnmark)}
  \settowidth{\footnumbersep}{~}
  \long\def\@makefntext#1{
    \settowidth{\leftskip}{\reset@font 각주}
    \settowidth{\foot@parindent}{\fn@markstyle}
    \settowidth{\footnumbersep}{\reset@font 주}
    \@setpar{\@@par\@tempdima \hsize
      \advance\@tempdima-\foot@parindent
      \parshape\@ne\foot@parindent \@tempdima}\par
    \parindent=\footnumbersep\noindent
    \hb@xt@\z@{\hss\hss\fn@markstyle}\hskip\footnumbersep #1}
}

\ExecuteOptions{superscript,hang}

%% 선택된 각주 판짜기 형식 실행

\ProcessOptions

\endinput

%% end of dhucsfn.sty
