%% xob-lwarp.sty
%%
%% part of xoblivoir package bundle
%% 2020/02/09
%%
\ProvidesPackage{xob-lwarp}

\if@lwarp
	\def\makerunningwidth#1#2{%
		\expandafter\let\csname #1headrunwidth\endcsname\textwidth
		\expandafter\let\csname #1footrunwidth\endcsname\textwidth
	}
	\def\makeheadposition#1#2#3#4#5{}
	\def\copypagestyle#1#2{\makepagestyle{#1}}
	\AtBeginDocument{
		\def\@partapp{Part}
		\def\@chapapp{Chapter}
	}
	\AtEndPreamble{
		\HTMLLanguage{\LWARPlan}
	}
	
	\let\if@bsstyle\iftrue
	\let\abstitlestyle\textbf
%
	%%%% copy-paste from xetexko-vertical.sty
	\ifxetex
	% do not veticalize headline/footline
	\begingroup\expandafter\expandafter\expandafter\endgroup
	\expandafter\ifx\csname selectfont\endcsname\relax % plain
	  \protected\def\verticaltypesetting{%
	    \dimen@\hsize\hsize\vsize\vsize\dimen@
	    \edef\plainoutput{\unexpanded{\dimen@\hsize\hsize\vsize\vsize\dimen@}%
	      \unexpanded\expandafter{\plainoutput}}%
	    \def\pagebody{\setbox\z@\vbox to\hsize{\boxmaxdepth=\maxdepth
	      \pagecontents}\xetexko@rotatebox\z@\box\z@}%
	    \maxdepth\z@ \XK@vertical@spacing}
	\else % latex
	  \protected\def\verticaltypesetting{%
	    \AtBeginDocument{\XK@vertical@spacing}%
	    \maxdepth\z@
	    \dimen@\textwidth
	    \textwidth\textheight
	    \textheight\dimen@
	    \edef\@outputpage{%
	      \unexpanded{\xetexko@rotatebox\@outputbox\textwidth\textheight}%
	      \unexpanded\expandafter{\@outputpage}}%
	  }
	  \@onlypreamble\verticaltypesetting
	\fi
	
	\def\xetexko@rotatebox#1{%
	  \ifvbox#1\count@\@ne\else\count@\z@\fi
	  \dimen@\wd#1\dimen@ii\dimexpr\ht#1+\dp#1\relax
	  \setbox#1\ifnum\count@=\@ne
	  \vbox to\dimen@\bgroup\hbox to\dimen@ii\bgroup\hfil\else
	  \hbox to\dimen@ii\bgroup\vbox to\dimen@\bgroup\fi
	    \wd#1\z@ \ht#1\z@ \dp#1\z@
	    \special{x:gsave}\special{x:rotate -90}\box#1\special{x:grestore}%
	    \ifnum\count@=\@ne\egroup\vfil\else\vfil\egroup\hfil\fi\egroup
	}
	
	% users can declare vertical EM size, which might be different from 1em.
	\newdimen\verticalem
	
	\def\XK@vertical@spacing{%
	  \ifnum\verticalem > \z@
	    \def\XK@vert@half@em{.5\verticalem}%
	  \else
	    \def\XK@vert@half@em{.5em}%
	  \fi
	  \let\xk@horiz@precjkopenparen \precjkopenparen
	  \let\xk@horiz@precjkcloseparen\precjkcloseparen
	  \let\xk@horiz@precjkfullstop  \precjkfullstop
	  \ifx\precjkopenparen\relax\else
	    \def\precjkopenparen {\leavevmode
	      \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi
	      \hbox
	      \ifx\XKdisablecjksymbolspacing\empty
	        \bgroup
	      \else
	        to\XK@vert@half@em \bgroup \hss
	      \fi
	    }%
	  \fi
	  \ifx\precjkcloseparen\relax\else
	    \def\precjkcloseparen{\leavevmode
	      \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi
	      \hbox
	      \ifx\XKdisablecjksymbolspacing\empty\else
	        to\XK@vert@half@em
	      \fi
	      \bgroup}%
	  \fi
	  \ifx\precjkfullstop\relax\else
	    \def\precjkfullstop  {\leavevmode
	      \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi
	      \hbox
	      \ifx\XKdisablecjksymbolspacing\empty\else
	        to\XK@vert@half@em
	      \fi
	      \bgroup}%
	  \fi
	  \spaceskip\XK@vert@half@em plus\XK@vert@half@em\relax
	  \parindent\XK@vert@half@em \parindent2\parindent
	}
	
	\protected\def\vertical#1{%
	  \setbox\z@\vbox\bgroup
	    \hsize=#1%
	    \leftskip\z@
	    \rightskip\z@
	    \parindent\z@
	    \everypar{}%
	    \XK@vertical@spacing
	}
	
	\protected\def\endvertical{%
	  \egroup
	  \dimen@\dimexpr\ht\z@+\dp\z@\relax
	  \dimen@ii\dimexpr\wd\z@-\dp\z@\relax
	  \setbox\z@\hbox{%
	    \kern\dimexpr\ht\z@+0.5em\relax
	    \wd\z@\z@
	    \ht\z@\z@
	    \dp\z@\z@
	    \special{x:gsave}%
	    \special{x:rotate -90}%
	    \box\z@
	    \special{x:grestore}}%
	  \wd\z@\dimen@
	  \ht\z@\z@
	  \dp\z@\z@
	  \leavevmode
	  \raise\dimen@ii\box\z@
	}
	
	% horizontal box inside vertical typesetting
	\protected\def\horizontal#1{%
	  \setbox\z@\vbox\bgroup
	    \hsize=#1%
	    \leftskip \z@
	    \rightskip\z@
	    \parindent\z@
	    \everypar {}%
	    \spaceskip     \fontdimen2\font
	              plus \fontdimen3\font
	              minus\fontdimen4\font
	    \ifdefined\xk@horiz@precjkopenparen
	      \let\precjkopenparen \xk@horiz@precjkopenparen
	      \let\precjkcloseparen\xk@horiz@precjkcloseparen
	      \let\precjkfullstop  \xk@horiz@precjkfullstop
	    \fi
	}
	\protected\def\endhorizontal{%
	  \egroup
	  \dimen@\dimexpr\ht\z@+\dp\z@\relax
	  \dimen@ii\dimexpr\wd\z@+.5ex\relax
	  \setbox\z@\hbox\bgroup
	    \wd\z@\z@\ht\z@\z@\dp\z@\z@
	    \special{x:gsave}%
	    \special{x:rotate 90}%
	    \box\z@
	    \special{x:grestore}%
	  \egroup
	  \wd\z@\dimen@
	  \ht\z@\dimen@ii
	  \dp\z@\z@
	  \fboxsep=-\fboxrule
	  \leavevmode\lower.5ex\box\z@
	}
	
	\protected\def\vertlatin#1{\leavevmode\lower0.5ex\hbox{\latinmarks #1}}
	\fi % end of vertical
\fi
\endinput

