Skip to content

Instantly share code, notes, and snippets.

@namachan10777
Created February 20, 2020 09:27
Show Gist options
  • Save namachan10777/189cdc3ac630bc64786c8acc6045b520 to your computer and use it in GitHub Desktop.
Save namachan10777/189cdc3ac630bc64786c8acc6045b520 to your computer and use it in GitHub Desktop.
cleardoublepage.satyh
let cleardoublepage ctx label =
let hook = line-break false false ctx
(hook-page-break (fun pbinfo _ -> (
let should-inser-new-page =
(!ref-inserted-page-number + pbinfo#page-number) mod 2 == 0
in
let () = ref-not-aligned <- !ref-not-aligned || should-inser-new-page in
if !ref-not-aligned
then (
if should-inser-new-page
then (
let () = display-message (`cleardoublepage : `# ^ label ^ #` T`) in
let () = ref-inserted-page-number <- !ref-inserted-page-number + 1 in
register-cross-reference (`cleardoublepage:` ^ label)
(match get-cross-reference (`cleardoublepage:` ^ label) with
| Some(`T`) -> `F`
| Some(`F`) -> `T`
| None -> `T`)
)
else (
let () = display-message (`cleardoublepage : `# ^ label ^ #` F`) in
register-cross-reference (`cleardoublepage:` ^ label)
(match get-cross-reference (`cleardoublepage:` ^ label) with
| Some(m) -> m
| None -> `F`)
)
)
else
()
)))
in
match get-cross-reference (`cleardoublepage:` ^ label) with
| Some(`F`) ->
clear-page +++ hook
| Some(`T`) ->
clear-page +++ clear-page +++ hook
| _ -> clear-page +++ hook
@namachan10777
Copy link
Author

namachan10777 commented Feb 20, 2020

多分動く。奇数ページなら単なるclear-pageだが偶数ページなら空ページを挟んでclear-page

@namachan10777
Copy link
Author

編集によってページ数が変わると収束しなくなるので.satysfi-auxを消す必要がある。ウーン...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment