diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty | 587 |
1 files changed, 587 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty new file mode 100644 index 00000000000..a4353ab9715 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty @@ -0,0 +1,587 @@ +%% File `memucs-setspace.sty` +%% +%% Copyright (c) 2007-2013 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. +%% +%% ======================= +%% +%% 이 스타일은 setspace 6.7을 바탕으로, memoir의 +%% 출력루틴을 hooking하여 거의 동일하게 동작하도록 +%% 수정한 스타일이다. +%% memoir 클래스에서 memhangul 스타일을 사용했을 때 +%% 불린다. 다른 용도로는 사용할 수 없음. +%% +%% This style is a modified version of SETSTYLE ver 6.7 by Erica M. S. Harris +%% modified by Karnes Kim +%% +%% FEATURES: +%% all the features of setstyle package +%% +%% NEW FEATURES: +%% +%% 1. [nofloatspacing] option +%% disables the feature of SETSTYLE, turning off all the line spacing +%% in the floats(figures, tables) and footnotes. +%% \noadjustfloatfnspacing, \adjustfloatfnspacing +%% 2. [hangul] option +%% When [hangul] option is on, the basic line spreading is set to +%% a proper line spacing in Korean(Hangul) documents, which has +%% a wider gap between the lines. +%% \SetHangulspace +%% 3. quote and quotation environment +%% quote and quotation environment have the same line spacing +%% with the floats and footnotes, verse. +%% \noadjustquotespacing, \adjustquotespacing +%% 4. [adjustfootnotesep] option +%% this option is meaningful only when [hangul] is on and +%% [nofloatspacing] off. +%% 5. [adjustverbatim] option. +%% verbatim environment. +%% \SetHangulVerbatimSpace. +%% 6. \ResetHangulspace, \RestoreHangulspace +%% + +\NeedsTeXFormat {LaTeX2e}[1994/12/09] +\def \filename {memucs-setspace.sty} +\def \filedate {2007/09/21} +\def \fileversion {6.7-memucs8} +\ProvidesPackage {memucs-setspace}[\filedate\space\fileversion\space + Contributed and Supported LaTeX2e package] +\typeout {Package: `memucs-setspace', a modified version of `setspace', \fileversion\space <\filedate>} + +% BP: add nodisplayskipstretch option and \setdisplayskipstretch command. + +\providecommand{\displayskipstretch}{\baselinestretch} +\providecommand{\setdisplayskipstretch}[1]{\renewcommand{\displayskipstretch}{#1}} +\DeclareOption{nodisplayskipstretch}{\setdisplayskipstretch{1.0}} + +% GT: add George Pearsons' suggested options. + +%% Karnes' +\newif\if@singlespacefn +\DeclareOption{nofloatspacing}{\@singlespacefnfalse} +\newif\if@singlespacequote +\DeclareOption{quotespacing}{\@singlespacequotetrue} +\newif\if@hangul +\DeclareOption{hangul}{\@hangultrue\AtEndOfPackage{\hangulspacing}} +\newif\if@adjustfootnotesep +\DeclareOption{adjustfootnotesep}{\@adjustfootnoteseptrue} +\newif\if@adjustverbatim +\DeclareOption{adjustverbatim}{\@adjustverbatimtrue} + +\DeclareOption{singlespacing}{\AtEndOfPackage{\singlespacing}} +\DeclareOption{onehalfspacing}{\AtEndOfPackage{\onehalfspacing}} +\DeclareOption{doublespacing}{\AtEndOfPackage{\doublespacing}} + +\@singlespacefntrue +\@singlespacequotefalse +\@hangulfalse +\@adjustfootnotesepfalse +\@adjustverbatimfalse +\ProcessOptions + +%%% provide memucsfninterwordhook +\ifx\undefined\memucsfninterwordhook + \providecommand\memucsfninterwordhook{}% +\fi + +\def\@floatfnspacinghook{% + \if@singlespacefn + \hangulfspacing + \else + \hangulspacing + \fi +} + +\providecommand\noadjustquotespacing{% + \@singlespacequotefalse +} + +\providecommand\adjustquotespacing{% + \@singlespacequotetrue +} + +\providecommand\adjustfloatfnspacing{% + \@singlespacefntrue +} + +\providecommand\noadjustfloatfnspacing{% + \@singlespacefnfalse +} + +% GT: Sat 28 Sep 1996: Widely using \providecommand, \renewcommand, and +% \provideenvironment, instead of \def. + +% ** Line space commands. + +\providecommand{\setstretch}[1]{% + \def\baselinestretch{#1}% + \@currsize +} + +% GT: Sat 28 Sep 1996: spacing commands and environments modified to +% use \setstretch instead of \baselinestretch. +% +% GT: Sat 28 Sep 1996: No, I don't know understand the line spacing +% algorithms! If someone (LaTeX team) can enlighten me as to the +% general rule, please do! It would be very pleasant if setspace.sty +% were suited for document font sizes other than 10, 11 and 12 pt. +% +% GT: Tue 10 Dec 1996: Instead of fixing singlespacing to exact unity, +% allow user to redefine it (only slightly, please!) from its initial +% value of unity, in the case when a particular font is slightly larger +% or slightly smaller than its point size would indicate. This change +% affects setspace's single spacing commands, and LaTeX's footnote and +% float environments. The one and a half, double, and arbitrary +% spacing commands are unaltered. + +\providecommand{\SetSinglespace}[1]{% + \def\setspace@singlespace{#1}% +} + +%% Karnes. +\providecommand{\Set@Hangulspace}[2]{% + \def\setspace@hangulspace{#1}% + \def\setspace@hangulfspace{#2}% + \setstretch{#1}% +} + +\def\SetHangulspace#1#2{% + \AtBeginDocument{% + \gdef\setspace@hangulspace{#1}% + \gdef\setspace@hangulfspace{#2}% + }% + \setstretch{#1}% +} + +\providecommand{\SetHangulVerbatimSpace}[1]{% + \def\setspace@hangulverbspace{#1}% +} + +\let\tmp@current@hangulspace\setspace@hangulspace +\let\tmp@current@hangulfspace\setspace@hangulfspace + +\providecommand{\ResetHangulspace}[2]{% + \let\tmp@current@hangulspace\setspace@hangulspace% + \let\tmp@current@hangulfspace\setspace@hangulfspace% + \Set@Hangulspace{#1}{#2}% +} + +\providecommand{\RestoreHangulspace}{% + \Set@Hangulspace{\tmp@current@hangulspace}{\tmp@current@hangulfspace}% +} + +% Here's the default single line spacing value. +\SetSinglespace{1} + +%% Karnes. +\if@hangul +\Set@Hangulspace{1.333}{1.1} +\else +\Set@Hangulspace{1.0}{1.0} +\fi + +\providecommand{\singlespacing}{% + \setstretch {\setspace@singlespace}% normally 1 + \vskip \baselineskip % Correction for coming into singlespace +} + +%% Karnes. +\providecommand{\hangulspacing}{% + \setstretch{\setspace@hangulspace}% default +} + +\providecommand{\hangulfspacing}{% + \setstretch{\setspace@hangulfspace}% +} + +\providecommand{\hangulverbspacing}{% + \setstretch{\setspace@hangulverbspace}% +} + +\providecommand{\onehalfspacing}{% + \setstretch{1.25}% default + \ifcase \@ptsize \relax % 10pt + \setstretch {1.25}% + \or % 11pt + \setstretch {1.213}% + \or % 12pt + \setstretch {1.241}% + \fi +} + +\providecommand{\doublespacing}{% + \setstretch {1.667}% default + \ifcase \@ptsize \relax % 10pt + \setstretch {1.667}% + \or % 11pt + \setstretch {1.618}% + \or % 12pt + \setstretch {1.655}% + \fi +} + +%% adjust verbatim +%% if and only if [nofloatspacing] and [adjustverbatim] is on, +%% the verbatim will be the same to the main text linestretch. +%% if [hangul] it will adjust the linestretch to the quote or quotation +%% the other case, it will be 1.0, I hope. +%% +\if@adjustverbatim +\SetHangulVerbatimSpace{\setspace@hangulfspace}% +\else +\SetHangulVerbatimSpace{1.0} +\fi + +% ** Modification of the LaTeX command \@setsize. + +%---Stretch the baseline BEFORE calculating the strut size. This improves +% spacing below tabular environments etc., probably... +% Comments are welcomed. + +% GT: Sun 29 Sep 1996: Question: Is this code anywhere near correct +% since this part of LaTeX (in, eg, latex.ltx) has been greatly changed? + +% GT: Sun 29 Sep 1996: The meanings of the arguments to \@setsize +% appear to be (whatever these may signify) : +% current size; font baselineskip; ignored (!); and font size. + +% GT: Sun 29 Sep 1996: Note that \@setsize (in latest LaTeX, +% \@setfontsize, which is called by \@setsize) seems to be the only +% place in purely modern LaTeX where \@currsize is set, and ltxguide.cls +% seems to be the only file in the LaTeX base distribution that uses it! + +\def\@setsize#1#2#3#4{% + % Modified 1993.04.07--GDG per KPC + \@nomath#1% + \let\@currsize#1% + \baselineskip #2% + \baselineskip \baselinestretch\baselineskip + \parskip \baselinestretch\parskip + \setbox\strutbox \hbox{% + \vrule height.7\baselineskip + depth.3\baselineskip + width\z@}% + \skip\footins \baselinestretch\skip\footins + \normalbaselineskip\baselineskip#3#4} + +% ** Float and footnote adjustments to compensate for a change in the +% ** main text's line spacing. + +%---Increase the space between last line of text and footnote rule. +%\skip\footins 20pt plus4pt minus4pt + +%---Reset baselinestretch within floats and footnotes. + +% GT: Tue 23 Jan 1996: This is where the conflict with the combination +% of the color package and the figure environment used to occur. + +% Floats. + +% GT: Sat 28 Sep 1996: \@xfloat is the only place where \normalsize +% is still used in setspace.sty ! + +\if@singlespacefn +\let\latex@xfloat=\@xfloat +\def\@xfloat #1[#2]{% + \latex@xfloat #1[#2]% + \if@singlespacefn + \def\baselinestretch {\setspace@hangulfspace} + \else + \def\baselinestretch {\setspace@hangulspace} + \fi + \normalsize +} +\else\fi + +% Karnes: footnotesep for hangul +\if@adjustfootnotesep +\if@hangul +\if@singlespacefn + \ifcase \@ptsize \relax + \setlength\footnotesep{8.51 pt}% 10pt + \or + \setlength\footnotesep{9.6 pt}% 11pt + \or + \setlength\footnotesep{10.3 pt}% 12pt + \fi +\else +\fi +\else\fi +\else\fi + +% GT: Wed 24 Jan 1996: This footnote code was copied from LaTeX and +% modified rather naively. It had to be brought up to date, not only +% because of LaTeX's new color ability, but also because ther had +% been major changes to this code in LaTeX at least as far back as +% March 1992. + +% Normal, bottom of the page, footnotes. +% +% GT: Based HEAVILY on original LaTeX (2e) code. A standard hook would +% be MUCH preferred, so that LaTeX's footnote implementation needn't be +% copied each time it changes. +% +% GT: The \protected@edef requires at least the December 1994 LaTeX. +% This is precisely the kind of VERSION DEPENDENCY situation that +% cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate +% standard hooks and/or context markers. +\if@singlespacefn +\def\m@mold@footnotetext{\@memsetspace@footnotetext} +\renewcommand{\@footnotetext}[1]{\m@mold@footnotetext{#1}\m@mmf@prepare} +\long\def\@memsetspace@footnotetext#1{% + \insert\footins{% +% GT: Next line added. Hook desired here! + \@floatfnspacinghook\memucsfninterwordhook +% \def\baselinestretch {\setspace@hangulfspace}% +% \@SetFloatspaces + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +% Minipage footnotes. +\renewcommand{\@mpfootnotetext}[1]{% + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins +% GT: Next line added. Hook desired here! + \@floatfnspacinghook\memucsfninterwordhook +% \def\baselinestretch {\setspace@hangulfspace}% + \foottextfont \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +\else\fi + +% ** Line space environments. + +% A single spaced quote (say) is done by surrounding singlespace with quote. + +\provideenvironment{singlespace}{% + \vskip \baselineskip + \setstretch {\setspace@singlespace}% + \vskip -\baselineskip +}{% + \par +} + +% GT (c/o Mark Olesen), Wed 15 April 1998. + +\provideenvironment{singlespace*}{% + \setstretch {\setspace@singlespace}% + \vskip -\baselineskip +}{% + \vskip -0.5\baselineskip +} + +% spacing, doublespace and onehalfspace all are meant to INCREASE the +% spacing (i.e. calling onehalfspace from within doublespace will not +% produce a graceful transition between spacings) +% +% Next two definitions fixed for consistency with TeX 3.x + +% In order to use \provideenvironment, while easily using same code for +% end of each environment, the code that used to be in \endspacing has +% been moved into a new (but internal) macro, \restore@spacing. + +\providecommand{\restore@spacing}{% + \par + \vskip \parskip + \vskip \baselineskip + \endgroup + \vskip -\parskip + \vskip -\baselineskip +} + +\provideenvironment{spacing}[1]{% + \par + \begingroup % moved from \endspacing by PGBR 29-1-91 + \setstretch {#1}% +}{% + \restore@spacing +} + +% one and a half spacing is 1.5 x pt size +\provideenvironment{onehalfspace}{% + \begingroup + \onehalfspacing +}{% + \restore@spacing +} + +% double spacing is 2 x pt size +\provideenvironment{doublespace}{% + \begingroup + \doublespacing +}{% + \restore@spacing +} + +%% quote and quotation environment : Karnes. +\def\@quotespacinghook{% + \if@singlespacequote + \hangulfspacing% + \else + \hangulspacing% + \fi +} + +\renewenvironment{quotation}% + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% +% \memhangulinterwordhook + \item[]% + \@quotespacinghook + }% + {\endlist + \if@singlespacequote\vskip-.2\onelineskip\fi} +\renewenvironment{quote}% + {\list{}{\rightmargin\leftmargin}% +% \memhangulinterwordhook + \item[] + \@quotespacinghook + }% + {\endlist + \if@singlespacequote\vskip-.2\onelineskip\fi} +\renewenvironment{symbols}{\list{}% + {\itemindent 0em \leftmargin 8em + \labelsep 1em \labelwidth 5em +% \memhangulinterwordhook + \let\makelabel\symbollabel}% + \@quotespacinghook + }% + {\endlist} + +%%%%%%%%%%%%%%%%%%%% +%%%% fix vertical spacing in the verse environment. mempatch 3.3 +\renewenvironment{verse}[1][\linewidth]{% + \refstepcounter{verse}% + \setcounter{poemline}{0}\refstepcounter{poemline}% + \setcounter{vslineno}{1}% + \let\\=\@vscentercr + \list{}{\itemsep \z@ + \itemindent -\vindent + \listparindent\itemindent + \parsep \stanzaskip + \ifdim #1<\linewidth %% short line + \rightmargin \z@ + \leftmargin \linewidth + \advance\leftmargin -#1\relax + \advance\leftmargin -0.5\leftmargin + \advance\leftmargin \vindent + \else + \ifdim #1>\linewidth %% long line + \rightmargin \z@ + \leftmargin \vindent + \else %% default + \rightmargin \leftmargin + \advance\leftmargin \vindent + \fi + \fi} + \item[]% + \@quotespacinghook}{\endlist} +%%%%%%%%%%%%%% + +\renewenvironment{altverse}% + {\starpatternfalse\patternfalse\altindenttrue\setcounter{vslineno}{1}% + \@quotespacinghook + }% + {\altindentfalse} + +\def\@verbatim{\the\every@verbatim + \trivlist + \if@adjustverbatim\hangulverbspacing\else\fi% + \item \relax + \if@minipage\else\vskip\parskip\fi + \@beginparpenalty \predisplaypenalty + \leftskip\@totalleftmargin\rightskip\z@ + \parindent\z@\parfillskip\@flushglue\parskip\z@ + \@@par + \def\par{% + \if@tempswa + \leavevmode\null\@@par\penalty\interlinepenalty + \else + \@tempswatrue + \ifhmode\@@par\penalty\interlinepenalty\fi + \fi}% + \def\@noitemerr{\@warning{No verbatim text}}% + \obeylines + \let\do\@makeother \dospecials + \verbatim@font + \everypar \expandafter{\the\everypar \unpenalty}% + \wrapright\the\afterevery@verbatim} + +%% Karnes : epigraph +\providecommand\epigraphspacinghook{\setstretch{1.0}} +\providecommand\epigraphspacing[1]{% + \renewcommand\epigraphspacinghook{\setstretch{#1}}% +} + +\renewcommand{\epigraph}[2]{\vspace{\beforeepigraphskip} + {\epigraphsize\begin{\epigraphflush}% + \epigraphspacinghook + \begin{minipage}{\epigraphwidth} + \@epitext{#1}\\ \@episource{#2} + \end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}}} + +\renewenvironment{epigraphs}{% + \vspace{\beforeepigraphskip}\begin{\epigraphflush} + \epigraphsize + \begin{minipage}{\epigraphwidth} + \epigraphspacinghook + \list{}% + {\itemindent\z@ \labelwidth\z@ \labelsep\z@ + \leftmargin\z@ \rightmargin\z@ + \let\makelabel\qitemlabel}}% + {\endlist\end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}} + +% GT: EMSH chose to omit display math part that follows. +% She wrote (see above) that the "altered spacing before and after displayed +% equations ... just looked too much". +% +% Fix up spacing before and after displayed math +% (arraystretch seems to do a fine job for inside LaTeX displayed math, +% since array and eqnarray seem to be affected as expected). +% Changing \baselinestretch and doing a font change also works if done here, +% but then you have to change @setsize to remove the call to @nomath) +% +% GT: The \belowdisplayskip line was mistyped; now fixed, courtesy of +% David Hull. +% +% GT: Brett Parnell has addressed EMSH's concern by replacing +% \baselinestretch by \displayskipstretch in displays, as follows. + +\everydisplay\expandafter{% + \the\everydisplay + \abovedisplayskip \displayskipstretch\abovedisplayskip + \belowdisplayskip \displayskipstretch\belowdisplayskip + \abovedisplayshortskip \displayskipstretch\abovedisplayshortskip + \belowdisplayshortskip \displayskipstretch\belowdisplayshortskip +} + +\endinput + +%%% EOF. |