OSDN Git Service

ltj-jfont.lua etc.: use data of UTR#50
[luatex-ja/luatexja.git] / src / patches / lltjp-stfloats.sty
index e90cef4..3422847 100644 (file)
@@ -3,47 +3,26 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-stfloats}[2014/11/23 Patch to stfloats for LuaTeX-ja]
+\ProvidesPackage{lltjp-stfloats}[2017/05/05 Patch to stfloats for LuaTeX-ja]
 
 \RequirePackage{stfloats,luatexja}
+\RequirePackage{etoolbox}
 
+\newif\ifltj@stfloats@fnbelowfloat
 \let\ltj@fn@makecol=\fn@makecol
+\ifx\@makecol\ltj@fn@makecol\ltj@stfloats@fnbelowfloattrue\fi % \fnbelowfloat 発行済
+\let\ltj@fn@makecol=\relax
+\global\let\org@makecol\ltj@orig@makecol
 
-\gdef\fn@makecol{%
-   \setbox\@outputbox \box\@cclv
-   \let\@elt\relax
-   \xdef\@freelist{\@freelist\@midlist}%
-   \global \let \@midlist \@empty
-   \@combinefloats
-   \ifvoid\footins
-   \else
-     \setbox\@outputbox \vbox {%
-       \boxmaxdepth \@maxdepth
-       \unvbox \@outputbox
-       \vskip \skip\footins
-       \color@begingroup
-         \normalcolor
-         \footnoterule
-         \unvbox \footins
-       \color@endgroup
-       }%
-   \fi
-   \ifvbox\@kludgeins
-     \@makespecialcolbox
-   \else
-     \setbox\@outputbox \vbox to\@colht {%
-       \@texttop
-       \dimen@ \ltjgetdp\@outputbox
-       \unvbox \@outputbox
-       \ifnum\ltjgetparameter{direction}=3 \hskip\z@\fi %%% LuaTeX-ja
-       \vskip -\dimen@
-       \@textbottom
-       }%
-   \fi
-   \global \maxdepth \@maxdepth
-  }
+\patchcmd\fn@makecol{\vskip -\dimen@\@textbottom}%
+  {\ifnum\ltjgetparameter{direction}=4\else\vbox{\hskip\z@}\fi %%% LuaTeX-ja
+   \vskip -\dimen@
+   \ifltj@ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
+\patchcmd\fn@makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
+\patchcmd\fn@makecol{\ifvoid\footins}{\ifvoid\footins\ltj@ftn@unvboxedfalse}{}{}
+\patchcmd\fn@makecol{\setbox\@outputbox \vbox}{\ltj@ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
 
-\ifx\@makecol\ltj@fn@makecol
+\ifltj@stfloats@fnbelowfloat
   \global\let\@makecol\fn@makecol
 \fi
 \endinput