Skip to content

Commit

Permalink
v0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
puripuri2100 committed Nov 11, 2018
2 parents b150978 + dcbab16 commit 6d2ebf9
Show file tree
Hide file tree
Showing 6 changed files with 1,850 additions and 16 deletions.
11 changes: 10 additions & 1 deletion article-ja.satyh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
@import: exdesign
%UTF-8
%(c) Naoki Kaneko 2018
%https://github.com/puripuri2100/exdesign
%v0.1

@require : exdesign

module ArticleJa : sig

Expand Down Expand Up @@ -54,6 +59,8 @@ val a4paper : (|
|)

val article : (|
oneside : bool;

titlepage : bool;
title-fontsize : length;
author-fontsize : length;
Expand Down Expand Up @@ -215,6 +222,8 @@ let a4paper = (|
|)

let article = (|
oneside = false;

titlepage = false;
title-fontsize = 40pt;
author-fontsize = 20pt;
Expand Down
124 changes: 112 additions & 12 deletions exdesign.satyh
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
%UTF-8
%(c) Naoki Kaneko and T. Suwa 2018
%https://github.com/puripuri2100/exdesign
%v0.1

@require: math
@require: list
@require: gr
@require: color
@require: footnote-scheme

module ExDesign : sig

Expand Down Expand Up @@ -41,6 +43,8 @@ val document : 'a -> block-text -> document
language-japanese : bool;
|);
design : (|
oneside : bool;

titlepage : bool;
title-fontsize : length;
author-fontsize : length;
Expand Down Expand Up @@ -167,6 +171,7 @@ direct \textit : [inline-text] inline-cmd
direct \textsf : [inline-text] inline-cmd
direct \textmc : [inline-text] inline-cmd
direct \textgt : [inline-text] inline-cmd
direct \footnote : [inline-text] inline-cmd
direct \pagenum : [] inline-cmd

val title-ref : inline-text ref
Expand Down Expand Up @@ -438,6 +443,8 @@ end = struct
let-mutable language-japanese-ref <- true

%% design
let-mutable oneside-ref <- true

let-mutable titlepage-ref <- true
let-mutable title-fontsize-ref <- 0pt
let-mutable author-fontsize-ref <- 0pt
Expand Down Expand Up @@ -545,10 +552,13 @@ end = struct

%% その他
let-mutable text-org-ref <- (0pt, 0pt)
let-mutable text-org-odd-ref <- (0pt, 0pt)
let-mutable text-width-ref <- 0pt
let-mutable text-height-ref <- 0pt
let-mutable hdrorg-ref <- (0pt, 0pt)
let-mutable hdrorg-odd-ref <- (0pt, 0pt)
let-mutable ftrorg-ref <- (0pt, 0pt)
let-mutable ftrorg-odd-ref <- (0pt, 0pt)
let-mutable hdrwid-ref <- 0pt
let-mutable ftrwid-ref <- 0pt
let-mutable header-thickness-ref <- 0pt
Expand Down Expand Up @@ -612,6 +622,8 @@ let document record inner =
let () = language-japanese-ref <- record#style#language-japanese in

%%% design
let () = oneside-ref <- record#design#oneside in

let () = titlepage-ref <- record#design#titlepage in
let () = title-fontsize-ref <- record#design#title-fontsize in
let () = author-fontsize-ref <- record#design#author-fontsize in
Expand Down Expand Up @@ -720,10 +732,13 @@ let document record inner =

%% 値計算
let () = text-org-ref <- ( !left-space-ref , (!top-space-ref +' !header-height-ref)) in
let () = text-org-odd-ref <- ( !right-space-ref , (!top-space-ref +' !header-height-ref)) in
let () = text-width-ref <- ((!page-width-ref -' !left-space-ref) -' !right-space-ref) in
let () = text-height-ref <- (!page-height-ref -' !top-space-ref -' !header-height-ref -' !footer-height-ref -' !bottom-space-ref) in
let () = hdrorg-ref <- ( !header-left-space-ref , !top-space-ref) in
let () = hdrorg-odd-ref <- ( !header-right-space-ref , !top-space-ref) in
let () = ftrorg-ref <- (!footer-left-space-ref , ((!page-height-ref -' !bottom-space-ref) -' !footer-height-ref)) in
let () = ftrorg-odd-ref <- (!footer-right-space-ref , ((!page-height-ref -' !bottom-space-ref) -' !footer-height-ref)) in
let () = hdrwid-ref <- ((!page-width-ref -' !header-left-space-ref) -' !header-right-space-ref) in
let () = ftrwid-ref <- ((!page-width-ref -' !footer-left-space-ref) -' !footer-right-space-ref) in
let () = header-thickness-ref <- !header-line-ref in
Expand Down Expand Up @@ -920,9 +935,18 @@ let document record inner =
in

let pagecontf pbinfo =
let hgtfb = height-of-float-boxes pbinfo#page-number in
let () = page-number <- pbinfo#page-number in
let (txtorgx, txtorgy) = !text-org-ref in
let () = FootnoteScheme.start-page () in
let () = page-number <- pbinfo#page-number in
let hgtfb = height-of-float-boxes pbinfo#page-number in
let (txtorgx, txtorgy) =
if !oneside-ref then
!text-org-ref
else
if pbinfo#page-number mod 2 == 0 then
!text-org-ref
else
!text-org-odd-ref
in
(|
text-origin = (txtorgx, txtorgy +' hgtfb);
text-height = !text-height-ref -' hgtfb;
Expand All @@ -940,7 +964,14 @@ let document record inner =
let lhead = !lhead-ref in
let chead = !chead-ref in
let rhead = !rhead-ref in
let header-text = (inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
let header-text =
if !oneside-ref then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
if pbinfo#page-number mod 2 == 0 then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
(inline-skip 5pt ++ (read-inline ctx-header {#rhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#lhead;}) ++ inline-skip 5pt)
in
line-break true true ctx-header header-text
+++ line-break true true (ctx-header |> set-paragraph-margin 0pt 0pt)
Expand All @@ -954,7 +985,14 @@ let document record inner =
let lhead = !lhead-ref in
let chead = !chead-ref in
let rhead = !rhead-ref in
let header-text = (inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
let header-text =
if !oneside-ref then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
if pbinfo#page-number mod 2 == 0 then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
(inline-skip 5pt ++ (read-inline ctx-header {#rhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#lhead;}) ++ inline-skip 5pt)
in
line-break true true ctx-header header-text
+++ line-break true true (ctx-header |> set-paragraph-margin 0pt 0pt)
Expand All @@ -964,7 +1002,14 @@ let document record inner =
let lhead = !lhead-ref in
let chead = !chead-ref in
let rhead = !rhead-ref in
let header-text = (inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
let header-text =
if !oneside-ref then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
if pbinfo#page-number mod 2 == 0 then
(inline-skip 5pt ++ (read-inline ctx-header {#lhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#rhead;}) ++ inline-skip 5pt)
else
(inline-skip 5pt ++ (read-inline ctx-header {#rhead;}) ++ inline-fil ++ (read-inline ctx-header {#chead;}) ++ inline-fil ++ (read-inline ctx-header {#lhead;}) ++ inline-skip 5pt)
in
line-break true true ctx-header header-text
+++ line-break true true (ctx-header |> set-paragraph-margin 0pt 0pt)
Expand All @@ -980,7 +1025,14 @@ let document record inner =
let lfoot = !lfoot-ref in
let cfoot = !cfoot-ref in
let rfoot = !rfoot-ref in
let footer-text = (inline-skip 5pt ++ (read-inline ctx-footer {#lfoot;}) ++ inline-fil ++ (read-inline ctx-footer {#cfoot;}) ++ inline-fil ++ (read-inline ctx-footer {#rfoot;}) ++ inline-skip 5pt)
let footer-text =
if !oneside-ref then
(inline-skip 5pt ++ (read-inline ctx-header {#lfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#rfoot;}) ++ inline-skip 5pt)
else
if pbinfo#page-number mod 2 == 0 then
(inline-skip 5pt ++ (read-inline ctx-header {#lfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#rfoot;}) ++ inline-skip 5pt)
else
(inline-skip 5pt ++ (read-inline ctx-header {#rfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#lfoot;}) ++ inline-skip 5pt)
in (block-skip 1pt) +++
line-break true true (ctx-footer |> set-paragraph-margin 0pt 0pt)
((inline-graphics !hdrwid-ref !footer-thickness-ref 0pt
Expand All @@ -991,24 +1043,51 @@ let document record inner =
let lfoot = !lfoot-ref in
let cfoot = !cfoot-ref in
let rfoot = !rfoot-ref in
let footer-text = (inline-skip 5pt ++ (read-inline ctx-footer {#lfoot;}) ++ inline-fil ++ (read-inline ctx-footer {#cfoot;}) ++ inline-fil ++ (read-inline ctx-footer {#rfoot;}) ++ inline-skip 5pt)
let footer-text =
if !oneside-ref then
(inline-skip 5pt ++ (read-inline ctx-header {#lfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#rfoot;}) ++ inline-skip 5pt)
else
if pbinfo#page-number mod 2 == 0 then
(inline-skip 5pt ++ (read-inline ctx-header {#lfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#rfoot;}) ++ inline-skip 5pt)
else
(inline-skip 5pt ++ (read-inline ctx-header {#rfoot;}) ++ inline-fil ++ (read-inline ctx-header {#cfoot;}) ++ inline-fil ++ (read-inline ctx-header {#lfoot;}) ++ inline-skip 5pt)
in (block-skip 1pt) +++
line-break true true (ctx-footer |> set-paragraph-margin 0pt 0pt)
((inline-graphics !hdrwid-ref !footer-thickness-ref 0pt
(fun (x, y) -> [ fill Color.black (Gr.rectangle (x, y) (x +' !hdrwid-ref, y +' !footer-thickness-ref))])) ++ inline-fil)
+++ (block-skip 5pt)
+++ line-break true true ctx-footer footer-text
in
in

let header-origin =
if !oneside-ref then
!hdrorg-ref
else
if pbinfo#page-number mod 2 == 0 then
!hdrorg-ref
else
!hdrorg-odd-ref
in
let footer-origin =
if !oneside-ref then
!ftrorg-ref
else
if pbinfo#page-number mod 2 == 0 then
!ftrorg-ref
else
!ftrorg-odd-ref
in
(|
header-origin = !hdrorg-ref;
header-origin = header-origin;

header-content = header;
footer-origin = !ftrorg-ref;
footer-origin = footer-origin;
footer-content = footer;
|)
in
page-break page pagecontf pagepartsf (bb-title +++ bb-toc +++ bb-main)

% -----------------------------------------------------------------------]
% -----------------------------------------------------------------------

% コマンド等の実装

Expand Down Expand Up @@ -1298,6 +1377,27 @@ let-inline ctx \textgt it =
in
read-inline ctxgt it

let-inline ctx \footnote it =
let size = get-font-size ctx in
let ibf num =
let it-num = embed-string (arabic num) in
let ctx =
ctx |> set-font-size (size *' 0.75)
|> set-manual-rising (size *' 0.25)
in
read-inline ctx {\*#it-num;}
in
let bbf num =
let it-num = embed-string (arabic num) in
let ctx =
ctx |> set-font-size (size *' 0.9)
|> set-leading (size *' 1.2)
|> set-paragraph-margin (size *' 0.5) (size *' 0.5)
%temporary
in
line-break false false ctx (read-inline ctx {#it-num; #it;} ++ inline-fil)
in
FootnoteScheme.main ctx ibf bbf


let-inline \pagenum = if !titlepage-ref then embed-string(arabic (!page-number - 1)) else embed-string(arabic !page-number)
Expand Down
4 changes: 1 addition & 3 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ SATySFiに付属するstdjaやstdjabook等のクラスファイルをかなり

# 動作する環境

[SATySFi v0.0.3](https://github.com/gfngfn/SATySFi/releases/tag/v0.0.3)と、[SATySFi for Windows Version 20180708](https://github.com/qnighy/satysfi-cross-windows/releases/tag/20180708)での動作を確認しています。

ただし、近い将来SATySFi for Windowsではまだ提供されていない機能を用いたコマンド等を提供する予定ですので、SATySFi for Windows版も出そうと考えています。
[SATySFi v0.0.3](https://github.com/gfngfn/SATySFi/releases/tag/v0.0.3)での動作を確認しています。

# 導入のしかた

Expand Down
Loading

0 comments on commit 6d2ebf9

Please sign in to comment.