blob: 202cbf58573910b680125883e3997250f47cb1e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
%
% lltjp-atbegshi.sty
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{lltjp-atbegshi}[2024-05-14 Patching \string\shipout\space hooks for LuaTeX-ja]
% concept: execute all hooks inside yoko direction \vbox
%<*ltshipout>-----------------------------------
%
\RequirePackage{expl3}
\ExplSyntaxOn\makeatletter
\box_new:N \l__platex_shipout_dummy_box
\if_cs_exist:N \__shipout_execute_main_cont:Nnnn %% 2021-06-01
\cs_new_eq:NN \__platex_original_shipout_execute_main_cont:Nnnn
\__shipout_execute_main_cont:Nnnn
\cs_set:Npn \__shipout_execute_main_cont:Nnnn #1#2#3#4 {
% if the box #1 is not a \yoko-box (= horizontal writing),
% then make it a \yoko-box behorehand.
\platex_if_box_yoko:NF #1 {
\vbox_set:Nn #1 { \platex_direction_yoko: \box_use:N #1 }
}
% if the current direction is not \yoko,
% then enclose \__shipout_execute_main_cont:Nnnn with
% a dummy \yoko-box named \l__platex_shipout_dummy_box.
\platex_if_direction_yoko:TF {
\__platex_original_shipout_execute_main_cont:Nnnn { #1 } { #2 } { #3 } { #4 }
}{
\vbox_set:Nn \l__platex_shipout_dummy_box {
\platex_direction_yoko:
\__platex_original_shipout_execute_main_cont:Nnnn { #1 } { #2 } { #3 } { #4 }
}
% [Limitation] the code above may discard some contents,
% so we'd like to put it back by \box\l__platex_shipout_dummy_box.
% however, an infinite loop occurs if we uncomment the line below
% so we can't.
%\box_use:N \l__platex_shipout_dummy_box
\box_clear:N \l__platex_shipout_dummy_box
}
}
\else: %% 2020-10-01
\cs_new_eq:NN \__platex_original_shipout_execute_cont: \__shipout_execute_cont:
\cs_set:Npn \__shipout_execute_cont:
{
\platex_if_box_yoko:NF \l_shipout_box {
\vbox_set:Nn \l_shipout_box { \platex_direction_yoko: \box_use:N \l_shipout_box }
}
\platex_if_direction_yoko:TF {
\__platex_original_shipout_execute_cont:
}{
\vbox_set:Nn \l__platex_shipout_dummy_box {
\platex_direction_yoko: \__platex_original_shipout_execute_cont:
}
\box_clear:N \l__platex_shipout_dummy_box
}
}
\fi:
%</ltshipout>-----------------------------------
\ExplSyntaxOff
\endinput
|