OSDN Git Service

Another approach for #3: cancel profiling in OTR
[luatex-ja/luatexja.git] / src / patches / lltjcore.sty
index 82d6d2e..1c8f9cb 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjcore}[2021-03-14 Patch to LaTeX2e Kernel for LuaTeX-ja]
+\ProvidesPackage{lltjcore}[2023-02-26 Patch to LaTeX2e Kernel for LuaTeX-ja]
 \RequirePackage{etoolbox}
 
 %%% expl3
   \fi\fi}
 
 \patchcmd\@vtryfc{\global\setbox\@outputbox\vbox{}}
-  {\global\setbox\@outputbox\vbox{\unless\ifnum\ltjgetparameter{direction}=4\hskip\z@\fi}}{}{}
+  {\global\setbox\@outputbox\vbox{%
+     \unless\ifnum\ltjgetparameter{direction}=4
+       \primitive\everypar{}\hskip\z@\fi
+  }}{}{}
 
 \newif\iftombow \tombowfalse
 \newif\iftombowdate \tombowdatetrue
@@ -86,7 +89,7 @@
 \newbox\@BR\newbox\@Br
 \newbox\@CL
 \newbox\@CR
-\font\@bannerfont=cmtt9
+\font\@bannerfont=file:lmmono9-regular.otf % cmtt9 in pLaTeX
 \newtoks\@bannertoken
 \@bannertoken{}
 \def\maketombowbox{%
       \vrule height10mm depth10mm width\@tombowwidth
       \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
 }
-\def\@outputtombow#1#2{%
+\def\@outputtombow{%
   \iftombow
-  \vbox to\z@{\kern\dimexpr#1-10mm-\@tombowbleed\relax
+  \vbox to\z@{\kern\dimexpr-10mm-\@tombowbleed\relax
     \boxmaxdepth\maxdimen
-      \moveleft\dimexpr#2+\@tombowbleed\vbox to\@@paperheight{%
+      \moveleft\@tombowbleed\vbox to\@@paperheight{%
          \color@begingroup
          \@tombowcolor
       \hbox to\@@paperwidth{\hskip\@tombowbleed\relax
          \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}%
-      \kern-10mm
+      \kern-10mm%
       \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
       \vfill
       \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
       \vfill
       \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
-      \kern-10mm
+      \kern-10mm%
       \hbox to\@@paperwidth{\hskip\@tombowbleed\relax
          \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}%
-       \color@endgroup
+      \color@endgroup
     }\vss
   }%
   \fi
 \def\@tombowcolor{\normalcolor}
 \def\@tombowbleed{3mm}
 \def\@tombowreset@@paper{%
+   \@@topmargin \topmargin % only for compatibility
    \iftombow
      \@@paperwidth\dimexpr\paperwidth+2\dimexpr\@tombowbleed\relax
      \@@paperheight\dimexpr\paperheight+10mm+2\dimexpr\@tombowbleed\relax
-     \advance\@themargin 1in\relax
+     \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
    \fi
 }
 \newdimen\@@paperheight
 \newdimen\@@paperwidth
-
+\newdimen\@@topmargin % not used by LuaTeX-ja; only to avoid existing codes
 \patchcmd\@outputpage{\begingroup\let\protect\noexpand}{% tate direction
 \begingroup
   \ifnum\ltjgetparameter{direction}=4\else
     \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@
   \fi
+  \directlua{luatexja.lineskip.setting_backup()}
   \let \protect \noexpand
 }{}{}
 \patchcmd\@outputpage{% supply \yoko
   \ifnum\ltjgetparameter{direction}=3 \let\@themargin\oddsidemargin
   \else\let\@themargin\evensidemargin\fi
 }{}{}
-\ifltj@ltfilehook@avail
-  \AddToHook{shipout/before}{%
-    \iftombow\setbox\ShipoutBox\vbox{\vskip1in\moveright1in\box\ShipoutBox}\fi
-  }
-  \AddToHook{shipout/background}{\@tombowreset@@paper\@outputtombow{1in}{-1in}}
-\else
-  \patchcmd\@outputpage{\vskip\topmargin}{\vskip\topmargin\iftombow\vskip1in\fi}{}{}
-  \patchcmd\@outputpage{\reset@font}{\@tombowreset@@paper\reset@font}{}{}
-  \patchcmd\@outputpage{\@begindvi}{\@begindvi\@outputtombow{0pt}{0pt}}{}{}
-\fi
 
+% 将来は shipout hook で書き直したい
+\patchcmd\@outputpage{\vskip\topmargin}{\vskip\topmargin\iftombow\vskip1in\fi}{}{}
+\patchcmd\@outputpage{\reset@font}{\@tombowreset@@paper\reset@font}{}{}
+\patchcmd\@outputpage{\@begindvi}{\@begindvi\@outputtombow}{}{}
+\patchcmd\@outputpage{\stepcounter{page}}%
+  {\stepcounter{page}\directlua{luatexja.lineskip.setting_restore()}}{}{}
 
+%
+\pretocmd\@floatboxreset{\pltx@save@float@dir}{}{}
+\patchcmd\@endfloatbox{\outer@nobreak}{\outer@nobreak\pltx@check@float@dir}{}{}
+\def\pltx@save@float@dir{%
+  \edef\pltx@float@dir@first{\ltjgetparameter{direction}}}
+\def\pltx@check@float@dir{%
+  \ifx\pltx@float@dir@first\@undefined\else
+    \ifnum\ltjgetparameter{direction}=\pltx@float@dir@first\else
+      \pltx@err@float@dir
+    \fi
+  \fi}
+\def\pltx@err@float@dir{%
+  \@latex@error{Direction change inside float!?\MessageBreak
+    Use \noexpand\layoutcaption provided in \string\usepackage{lltjext}}\@ehc}
 %%% Remove extra xkanjiskip
 \renewcommand\@makefnmark{%
   \unless\ifnum\ltjgetparameter{direction}=3
   \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi}
 \begingroup
 \@ifpackageloaded{hyperref}
-  {\def\ltj@setrefprefix{real}}
+  {\ifdefined\real@setref\def\ltj@setrefprefix{real}\else\def\ltj@setrefprefix{}\fi}
   {\def\ltj@setrefprefix{}}
 \expandafter\gdef\csname \ltj@setrefprefix @setref\endcsname#1#2#3{%
   \ifx#1\relax
   \hskip\@tempskipa\color@endgroup\egroup}
 \pretocmd{\footnote}{\inhibitglue}{}{}
 \pretocmd{\footnotemark}{\inhibitglue}{}{}
-\patchcmd{\@footnotemark}{\@makefnmark}{%
-  \unless\ifnum\ltjgetparameter{direction}=3 \@makefnmark%
-  \else\hbox to\z@{\hskip-.25\zw\raise.9\zh\@makefnmark\hss}\fi%
-}{}{}
-\let\@parboxto\@empty
+\def\@ltj@process@makefnmark#1{%
+  \unless\ifnum\ltjgetparameter{direction}=3 #1%
+  \else\hbox to\z@{\hskip-.25\zw\raise.9\zh#1\hss}\fi%
+}%
+\ifdefined\@kernel@process@makefnmark %% 2022-06-01 latex-lab?
+  \let\ltj@orig@kernel@process@makefnmark=\@kernel@process@makefnmark
+  \def\@kernel@process@makefnmark#1{\ltj@orig@kernel@process@makefnmark{\@ltj@process@makefnmark#1}}
+\else
+  \patchcmd{\@footnotemark}{\@makefnmark}{\@ltj@process@makefnmark\@makefnmark}{}{}
+\fi
 \long\def\@iiiparbox#1#2[#3]#4#5{%
   \leavevmode
   \@pboxswfalse
 \newif\iffnfixbottom
 \newif\ifltj@ftn@unvboxed
 %%% @makecol
-\gdef \@makecol {%
-   \ifvoid\footins
-     \ltj@ftn@unvboxedfalse
-     \setbox\@outputbox \box\@cclv
-   \else
-     \ltj@ftn@unvboxedtrue
-     \setbox\@outputbox \vbox {%
-       \boxmaxdepth \@maxdepth
-       \unvbox \@cclv
-       \iffnfixbottom\vskip\z@ \@plus.0001fil\fi
-       \vskip \skip\footins
-       \color@begingroup
-         \normalcolor
-         \footnoterule
-         \unvbox \footins
-       \color@endgroup
-       }%
-   \fi
-   \let\@elt\relax
-   \xdef\@freelist{\@freelist\@midlist}%
-   \global \let \@midlist \@empty
-   \@combinefloats
-   \ifvbox\@kludgeins
-     \@makespecialcolbox
-   \else
-     \setbox\@outputbox \vbox to\@colht {%
-       \@texttop
-       \dimen@ \dp\@outputbox
-       \unvbox \@outputbox
-       \unless\ifnum\ltjgetparameter{direction}=4\vbox{\hskip\z@}\fi %%% LuaTeX-ja
-       \vskip -\dimen@
-       \ifltj@ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi
-       }%
-   \fi
-   \global \maxdepth \@maxdepth
-}
+\def\pltx@adjust@wd@outputbox{%
+  \unless\ifnum\ltjgetparameter{direction}=4
+    \vbox{\primitive\everypar{}\hskip\z@}%
+   \fi}
+\patchcmd\@makecol{\vskip -\dimen@\@textbottom}%
+  {\pltx@adjust@wd@outputbox
+   \vskip -\dimen@
+   \ifltj@ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
+\patchcmd\@makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
+\patchcmd\@makecol{\ifvoid\footins}{\ifvoid\footins\ltj@ftn@unvboxedfalse}{}{}
+\patchcmd\@makecol{\setbox\@outputbox \vbox}{\ltj@ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
 \let\ltj@orig@makecol=\@makecol
 
 \patchcmd\@makespecialcolbox{\@textbottom}{\ifltj@ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}