review-retrovert 0.3.3 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/retrovert.yml +39 -0
- data/.gitignore +2 -2
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +67 -1
- data/README.md +6 -3
- data/lib/review/retrovert/converter.rb +231 -6
- data/lib/review/retrovert/version.rb +1 -1
- data/review-retrovert.gemspec +1 -1
- data/testdata/mybook/.gitignore +7 -0
- data/testdata/mybook/README.md +43 -0
- data/testdata/mybook/Rakefile +16 -0
- data/testdata/mybook/catalog.yml +33 -0
- data/testdata/mybook/config-starter.yml +139 -0
- data/testdata/mybook/config.yml +375 -0
- data/testdata/mybook/contents/00-preface.re +83 -0
- data/testdata/mybook/contents/01-install.re +272 -0
- data/testdata/mybook/contents/02-tutorial.re +1008 -0
- data/testdata/mybook/contents/03-syntax.re +2613 -0
- data/testdata/mybook/contents/04-customize.re +728 -0
- data/testdata/mybook/contents/05-faq.re +328 -0
- data/testdata/mybook/contents/06-bestpractice.re +971 -0
- data/testdata/mybook/contents/91-compare.re +18 -0
- data/testdata/mybook/contents/92-filelist.re +119 -0
- data/testdata/mybook/contents/93-background.re +267 -0
- data/testdata/mybook/contents/99-postface.re +38 -0
- data/testdata/mybook/css/normalize.css +349 -0
- data/testdata/mybook/css/webstyle.css +514 -0
- data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
- data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
- data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
- data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
- data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
- data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
- data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
- data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
- data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
- data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
- data/testdata/mybook/images/93-background/bug913.png +0 -0
- data/testdata/mybook/images/93-background/slide2.png +0 -0
- data/testdata/mybook/images/cover_a5.pdf +0 -0
- data/testdata/mybook/images/cover_b5.pdf +0 -0
- data/testdata/mybook/images/tw-icon.jpg +0 -0
- data/testdata/mybook/layouts/layout.epub.erb +29 -0
- data/testdata/mybook/layouts/layout.html5.erb +106 -0
- data/testdata/mybook/layouts/layout.tex.erb +546 -0
- data/testdata/mybook/lib/hooks/beforetexcompile.rb +55 -0
- data/testdata/mybook/lib/ruby/review-builder.rb +503 -0
- data/testdata/mybook/lib/ruby/review-cli.rb +58 -0
- data/testdata/mybook/lib/ruby/review-compiler.rb +523 -0
- data/testdata/mybook/lib/ruby/review-epubmaker.rb +606 -0
- data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +661 -0
- data/testdata/mybook/lib/ruby/review-latexbuilder.rb +782 -0
- data/testdata/mybook/lib/ruby/review-maker.rb +235 -0
- data/testdata/mybook/lib/ruby/review-monkeypatch.rb +91 -0
- data/testdata/mybook/lib/ruby/review-pdfmaker.rb +468 -0
- data/testdata/mybook/lib/ruby/review-textbuilder.rb +36 -0
- data/testdata/mybook/lib/ruby/review-tocparser.rb +285 -0
- data/testdata/mybook/lib/ruby/review-webmaker.rb +433 -0
- data/testdata/mybook/lib/tasks/mytasks.rake +31 -0
- data/testdata/mybook/lib/tasks/review.rake +142 -0
- data/testdata/mybook/lib/tasks/review.rake.orig +72 -0
- data/testdata/mybook/lib/tasks/starter.rake +326 -0
- data/testdata/mybook/locale.yml +6 -0
- data/testdata/mybook/review-ext.rb +206 -0
- data/testdata/mybook/sty/jumoline.sty +310 -0
- data/testdata/mybook/sty/mycolophon.sty +81 -0
- data/testdata/mybook/sty/mystyle.sty +8 -0
- data/testdata/mybook/sty/mytextsize.sty +61 -0
- data/testdata/mybook/sty/mytitlepage.sty +103 -0
- data/testdata/mybook/sty/reviewmacro.sty +60 -0
- data/testdata/mybook/sty/starter-codeblock.sty +332 -0
- data/testdata/mybook/sty/starter-color.sty +79 -0
- data/testdata/mybook/sty/starter-font.sty +112 -0
- data/testdata/mybook/sty/starter-heading.sty +514 -0
- data/testdata/mybook/sty/starter-note.sty +127 -0
- data/testdata/mybook/sty/starter-section.sty +262 -0
- data/testdata/mybook/sty/starter-toc.sty +72 -0
- data/testdata/mybook/sty/starter.sty +554 -0
- data/testdata/mybook/style.css +597 -0
- metadata +100 -3
@@ -0,0 +1,81 @@
|
|
1
|
+
%%%
|
2
|
+
%%% 奥付 (colophon)
|
3
|
+
%%%
|
4
|
+
|
5
|
+
\newcommand{\mycolophon}{%
|
6
|
+
|
7
|
+
\reviewcolophon % 奥付が最終ページになるよう調整する
|
8
|
+
|
9
|
+
\thispagestyle{empty} % ページ番号やヘッダーをなくす
|
10
|
+
\setlength{\parindent}{0pt} % インデント幅をゼロに
|
11
|
+
|
12
|
+
\vspace*{\fill} % 縦方向に伸びるスペース(ページ先頭なので「*」が必要)
|
13
|
+
|
14
|
+
{
|
15
|
+
\Large % 文字を大きく
|
16
|
+
\gtfamily\sffamily % ゴシック体、サンセリフ体
|
17
|
+
\bfseries % 太字
|
18
|
+
\@title % タイトル
|
19
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
20
|
+
}
|
21
|
+
|
22
|
+
\ifx\@subtitle\empty\else
|
23
|
+
{
|
24
|
+
\gtfamily\sffamily % ゴシック体、サンセリフ体
|
25
|
+
%{\rmfamily --- }
|
26
|
+
\@subtitle % サブタイトル
|
27
|
+
%{\rmfamily ---}
|
28
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
29
|
+
}
|
30
|
+
\fi
|
31
|
+
|
32
|
+
\rule{\textwidth}{1pt} % 罫線
|
33
|
+
|
34
|
+
\vspace{1mm} % 縦方向のスペース
|
35
|
+
|
36
|
+
%%% 発行履歴(config.ymlの「history:」で編集できる)
|
37
|
+
\colophonpubhistory
|
38
|
+
%%% または
|
39
|
+
%\begin{tabular}{ll}
|
40
|
+
% 20XX年XX月XX日(技術書典X) & ver 1.0 \\
|
41
|
+
% 20XX年XX月XX日 & ver 1.1 \\
|
42
|
+
%\end{tabular}
|
43
|
+
\vspace{7mm} % 縦方向のスペース
|
44
|
+
|
45
|
+
%%% 著者、印刷所など
|
46
|
+
\begin{tabular}{ll} % 表
|
47
|
+
\colophonokuduke
|
48
|
+
\end{tabular}
|
49
|
+
%%% または
|
50
|
+
%\begin{tabular}{ll}
|
51
|
+
% 著 者 & 〈著者名〉\\
|
52
|
+
% & \hyperref{https://twitter.com/〈Twitter〉}{@〈Twitter〉} \\
|
53
|
+
% & \url{〈URL〉} \\
|
54
|
+
% 印刷所 & 〈印刷業者〉 \\
|
55
|
+
%\end{tabular}
|
56
|
+
\vspace{2mm} % 縦方向のスペース
|
57
|
+
|
58
|
+
\rule{\textwidth}{1pt} % 罫線
|
59
|
+
|
60
|
+
%%% 著作権表示
|
61
|
+
\colophonrights
|
62
|
+
%%% または
|
63
|
+
%{\textcopyright} 20XX 〈著者名〉 all rights reserved.
|
64
|
+
|
65
|
+
%%% 「powered by Re:VIEW Starter」の表示(消去可)
|
66
|
+
{
|
67
|
+
\ifx\starter@colophon@poweredby\empty\else
|
68
|
+
\raggedleft % 右寄せ
|
69
|
+
\scriptsize % 文字を小さく
|
70
|
+
\slshape % 斜体(スラント体)
|
71
|
+
\textcolor{darkgray}{(powered by Re:VIEW Starter)}
|
72
|
+
\par % これがないと右寄せされない
|
73
|
+
\fi
|
74
|
+
}
|
75
|
+
|
76
|
+
}
|
77
|
+
|
78
|
+
%%% 奥付の「著者」や「印刷所」を表示
|
79
|
+
\newcommand{\startercolophonrow}[2]{%
|
80
|
+
\textgt{#1} & #2 \\
|
81
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
%%
|
2
|
+
%% これはreviewstarterが独自で用意した、本文の幅を指定するための
|
3
|
+
%% スタイルファイル。このファイルは、layouts/layout.tex.erbから
|
4
|
+
%% 自動生成されたLaTeXファイルから読み込まれる。
|
5
|
+
%% そのため、config.ymlで読み込み指定する必要がない。
|
6
|
+
%%
|
7
|
+
%% 【同人誌や印刷物用のPDFなら】
|
8
|
+
%% ・サイズはB5またはA5を使う(レポートや論文ではないのでA4は使わない)。
|
9
|
+
%% ・フォントサイズは、B5なら10pt、A5なら9ptがお勧め(8ptは少し小さい)。
|
10
|
+
%% ・1行あたりの文字数は、B5なら42〜45文字、A5なら37〜40文字がお勧め。
|
11
|
+
%% ・ノド(見開きで内側)の余白は片側20mm(見開きで合計40mm)をとること。
|
12
|
+
%% (一見、余白が広すぎるように見えるがそれ以下だと印刷物が読みにくい)
|
13
|
+
%% ・小口(見開きで外側)の余白は最低でも片側で10mm必要。
|
14
|
+
%% (それ以下だとページめくりの指で本文の文字が隠れて読みにくい)
|
15
|
+
%% ・文字数を増やすなら、8ptにするよりノド20mmのまま小口の余白を狭くする。
|
16
|
+
%% (つまり右ページと左ページで左右の余白を変える)
|
17
|
+
%% ・ページ数が少ない場合を除き、右起こし(右ページ始まり)にする。
|
18
|
+
%% そうするにはconfig.ymlで「texdocumentclass:」に"openright"を含め、
|
19
|
+
%% そうしたくないときは"openany"を含める。
|
20
|
+
%% ・ページに左右があるので、「texdocumentclass:」に"twoside"を指定する。
|
21
|
+
%%
|
22
|
+
%% 【電子書籍向けのPDFなら】
|
23
|
+
%% ・サイズはA5がお勧め(B5だとタブレットで見づらい)。
|
24
|
+
%% ・フォントサイズは10pt、1行あたり40〜42文字が読みやすい。
|
25
|
+
%% ・印刷物と違い、余白は狭いほうがよい(全角1文字か2文字分)。
|
26
|
+
%% ・小さいフォントサイズにしてまでページ数を減らす必要はない。
|
27
|
+
%% ・右起こし(右ページ始まり)にする必要はない。
|
28
|
+
%% ・ページに左右がないので、「texdocumentclass:」に"oneside"を指定する。
|
29
|
+
%%
|
30
|
+
|
31
|
+
%% 本文の幅を設定
|
32
|
+
\setlength{\textwidth}{\starter@textwidth} % 例:'39zw' なら全角39文字分
|
33
|
+
\setlength{\fullwidth}{\textwidth} % ヘッダの幅を本文と同じにする
|
34
|
+
|
35
|
+
%% 左右の余白幅を自動設定
|
36
|
+
\setlength{\oddsidemargin}{\paperwidth} % 紙の幅から
|
37
|
+
\addtolength{\oddsidemargin}{-\textwidth} % 本文の幅を引いて
|
38
|
+
\setlength{\oddsidemargin}{.5\oddsidemargin} % 半分にする
|
39
|
+
\setlength{\evensidemargin}{\oddsidemargin} % 偶数ページも同じ
|
40
|
+
%% 印刷用PDFでは、奇数・偶数ページで左右の余白幅を変える
|
41
|
+
\newcommand\if@pbook{ % \starter@target の値が pbook かどうかを調べる
|
42
|
+
\def\@tempa{pbook}
|
43
|
+
\ifx\starter@target\@tempa % \starter@target は layouts/layout.tex.erb の先頭で定義される
|
44
|
+
}
|
45
|
+
\if@pbook % 印刷用PDFの場合
|
46
|
+
%% 見開きの内側(奇数ページの左側、偶数ページの右側)の余白は20mm必要
|
47
|
+
\ifdim\oddsidemargin<20truemm % 内側の余白が20mm未満なら
|
48
|
+
\setlength{\@tempdima}{20truemm}
|
49
|
+
\addtolength{\@tempdima}{-\oddsidemargin}
|
50
|
+
\addtolength{\oddsidemargin}{\@tempdima} % 奇数ページの左余白を増やす
|
51
|
+
\addtolength{\evensidemargin}{-\@tempdima}% 偶数ページの左余白を減らす
|
52
|
+
\fi
|
53
|
+
\fi
|
54
|
+
%% LaTeXでは基準点が左上から1インチの地点なので、その分ずらす
|
55
|
+
\addtolength{\oddsidemargin}{-\inv@mag in} % 1インチ分ずらす
|
56
|
+
\addtolength{\evensidemargin}{-\inv@mag in} % 1インチ分ずらす
|
57
|
+
|
58
|
+
%% 天(ページ上部)の余白を狭め、その分を本文の高さに加える
|
59
|
+
\addtolength{\topmargin}{-2\Cvs} % ページ上部の余白を2行分減らす
|
60
|
+
\addtolength{\textheight}{2\Cvs} % ページ本文の高さを2行分増やす
|
61
|
+
\addtolength{\headsep}{1mm}
|
@@ -0,0 +1,103 @@
|
|
1
|
+
%%%
|
2
|
+
%%% タイトルページ(大扉)のデザイン
|
3
|
+
%%%
|
4
|
+
|
5
|
+
\usepackage{afterpage} % for '\afterpage'
|
6
|
+
\usepackage[pagecolor=none]{pagecolor} % for '\newpagecolor'
|
7
|
+
|
8
|
+
%% 背景色を指定
|
9
|
+
%\definecolor{starter@titlepagecolor}{gray}{0.90} % 薄いグレー
|
10
|
+
\colorlet{starter@titlepagecolor}{white} % 白
|
11
|
+
|
12
|
+
\newcommand{\mytitlepage}{%
|
13
|
+
\newpagecolor{starter@titlepagecolor} % このページの背景色を指定する
|
14
|
+
\afterpage{\restorepagecolor} % 次のページからは背景色をなくす
|
15
|
+
|
16
|
+
\thispagestyle{empty}% ページ番号やヘッダーを入れない
|
17
|
+
\centering % 中央寄せ
|
18
|
+
%\raggedright % 左寄せ
|
19
|
+
%\raggedleft % 右寄せ
|
20
|
+
%\addtolength{\oddsidemargin}{-2zw}% 右余白を調整する(右寄せの場合)
|
21
|
+
|
22
|
+
\vspace*{5zw} % 縦方向のスペース(ページの先頭なので「*」が必要)
|
23
|
+
|
24
|
+
%% フォントを変更
|
25
|
+
\sffamily % サンセリフ体(英語)
|
26
|
+
\gtfamily % ゴシック体(日本語)
|
27
|
+
|
28
|
+
%% タイトル
|
29
|
+
{
|
30
|
+
\HUGE % フォントサイズをかなり大きく
|
31
|
+
\bfseries % 太字(日本語と英語)
|
32
|
+
%\@ifundefined{ebseries}{}{\ebseries}% 極太字にする場合(日本語のみ、未定義なら無視)
|
33
|
+
\@title % タイトル(複数行可)
|
34
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
35
|
+
}
|
36
|
+
|
37
|
+
%% サブタイトル
|
38
|
+
\ifx\@subtitle\empty\else
|
39
|
+
\vspace{1zw} % 縦方向に少しスペースを空ける
|
40
|
+
{
|
41
|
+
\Large % フォントサイズを大きめに
|
42
|
+
{\rmfamily ---}~ % ローマン体で「--」
|
43
|
+
\@subtitle % サブタイトル
|
44
|
+
~{\rmfamily ---} % ローマン体で「--」
|
45
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
46
|
+
}
|
47
|
+
\fi
|
48
|
+
|
49
|
+
%% フォントを変更
|
50
|
+
%\mcfamily % 明朝体(日本語)
|
51
|
+
%\rmfamily % ローマン体(英語)
|
52
|
+
\normalfont % デフォルトの書体
|
53
|
+
|
54
|
+
%% 著者
|
55
|
+
\ifx\@author\empty\else
|
56
|
+
\vspace{8zw} % 縦方向のスペース
|
57
|
+
{
|
58
|
+
\LARGE % フォントサイズを大きく
|
59
|
+
\@author % 著者
|
60
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
61
|
+
}
|
62
|
+
\fi
|
63
|
+
|
64
|
+
%% 日付、バージョン、イベント名
|
65
|
+
\vfill % 縦方向のスペース
|
66
|
+
{
|
67
|
+
\Large % フォントサイズを大きめに
|
68
|
+
\ifx\@pubevent\empty\else
|
69
|
+
\@pubevent\par % イベント名(config.ymlの「pubevent_name:」で指定)
|
70
|
+
\fi
|
71
|
+
\ifx\@latestpubhistory\empty
|
72
|
+
\@date % 日付(config.ymlの「date:」で指定)
|
73
|
+
\else
|
74
|
+
\@latestpubhistory % 日付とバージョン(config.ymlの「history:」で指定)
|
75
|
+
\fi
|
76
|
+
\par % 段落を区切る(デザイン崩れを防ぐため)
|
77
|
+
}
|
78
|
+
|
79
|
+
\vspace{4zw} % 縦方向のスペース
|
80
|
+
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
%%%
|
85
|
+
%%% タイトルページ(大扉)の、次のページ
|
86
|
+
%%%
|
87
|
+
\newcommand{\mytitlenextpage}{{%
|
88
|
+
\thispagestyle{empty} % ページ番号やヘッダーをなくす
|
89
|
+
\setlength{\parindent}{0pt} % 段落先頭のインデントをなくす
|
90
|
+
\vspace*{\fill} % 縦方向の長いスペース(ページ先頭なので「*」が必要)
|
91
|
+
\small % フォントを小さく
|
92
|
+
|
93
|
+
{\gtfamily\bfseries ■免責}\\
|
94
|
+
本書は情報の提供のみを目的としています。\\
|
95
|
+
本書の内容を実行・適用・運用したことで何が起きようとも、それは実行・適用・運用した人自身の責任であり、著者や関係者はいかなる責任も負いません。\\
|
96
|
+
|
97
|
+
{\gtfamily\bfseries ■商標}\\
|
98
|
+
本書に登場するシステム名や製品名は、関係各社の商標または登録商標です。\\
|
99
|
+
また本書では、{\texttrademark}、{\textregistered}、{\textcopyright}などのマークは省略しています。\\
|
100
|
+
|
101
|
+
%%% 挿絵を入れる場合
|
102
|
+
%\includegraphics[width=0.7\textwidth]{images/illust.png}
|
103
|
+
}}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
%% -*- coding: utf-8 -*-
|
2
|
+
%% from review-pdfmaker
|
3
|
+
\usepackage{fancyhdr}
|
4
|
+
\pagestyle{fancy}
|
5
|
+
\lhead{\gtfamily\sffamily\bfseries\upshape \leftmark}
|
6
|
+
\chead{}
|
7
|
+
\rhead{\gtfamily\sffamily\bfseries\upshape \rightmark}
|
8
|
+
\renewcommand{\sectionmark}[1]{\markright{\thesection~#1}{}}
|
9
|
+
\renewcommand{\chaptermark}[1]{\markboth{\prechaptername\ \thechapter\ \postchaptername~#1}{}}
|
10
|
+
\renewcommand{\headfont}{\gtfamily\sffamily\bfseries}
|
11
|
+
|
12
|
+
\fancypagestyle{plainhead}{%
|
13
|
+
\fancyhead{}
|
14
|
+
\fancyfoot{} % clear all header and footer fields
|
15
|
+
\fancyfoot[CE,CO]{\thepage}
|
16
|
+
\renewcommand{\headrulewidth}{0pt}
|
17
|
+
\renewcommand{\footrulewidth}{0pt}}
|
18
|
+
|
19
|
+
%% using Helvetica as sans-serif
|
20
|
+
%\renewcommand{\sfdefault}{phv}
|
21
|
+
|
22
|
+
%% for listings
|
23
|
+
%\renewcommand{\lstlistingname}{List}
|
24
|
+
%\lstset{%
|
25
|
+
% breaklines=true,%
|
26
|
+
% breakautoindent=false,%
|
27
|
+
% breakindent=0pt,%
|
28
|
+
% fontadjust=true,%
|
29
|
+
% backgroundcolor=\color{shadecolor},%
|
30
|
+
% frame=single,%
|
31
|
+
% framerule=0pt,%
|
32
|
+
% basicstyle=\ttfamily\scriptsize,%
|
33
|
+
% commentstyle=\color{reviewgreen},%
|
34
|
+
% identifierstyle=\color{reviewblue},%
|
35
|
+
% stringstyle=\color{reviewred},%
|
36
|
+
% keywordstyle=\bfseries\color{reviewdarkred},%
|
37
|
+
%}
|
38
|
+
|
39
|
+
|
40
|
+
\sloppy
|
41
|
+
|
42
|
+
|
43
|
+
%%
|
44
|
+
%% Re:VIEW3
|
45
|
+
%%
|
46
|
+
\newcommand{\reviewit}[1]{\textit{#1}}
|
47
|
+
\newcommand{\reviewbold}[1]{\textbf{#1}}
|
48
|
+
\newcommand{\reviewtt}[1]{\texttt{#1}}
|
49
|
+
\newcommand{\reviewtti}[1]{\texttt{\textit{#1}}}
|
50
|
+
\newcommand{\reviewttb}[1]{\texttt{\textbf{#1}}}
|
51
|
+
\newcommand{\reviewcode}[1]{\texttt{#1}}
|
52
|
+
\newcommand{\reviewballoon}[1]{←{#1}}
|
53
|
+
|
54
|
+
\newcommand{\reviewequationcaption}[1]{%
|
55
|
+
%\medskip{\small\noindent #1}%
|
56
|
+
\medskip%
|
57
|
+
\noindent%
|
58
|
+
{\gtfamily\sffamily#1}%
|
59
|
+
}
|
60
|
+
\newenvironment{reviewequationblock}{\needvspace{2\Cvs}}{}
|
@@ -0,0 +1,332 @@
|
|
1
|
+
%%% -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
%%%
|
4
|
+
%%% コードブロック(//list、//terminal)
|
5
|
+
%%%
|
6
|
+
|
7
|
+
|
8
|
+
%%% 図や表のキャプションを見映えよくする
|
9
|
+
\ifx\starter@caption@pretty\empty\else
|
10
|
+
\let\original@makecaption\@makecaption % jsbook.clsでの定義を保存し、あとで再利用
|
11
|
+
\renewcommand{\@makecaption}[2]{% % 図や表のキャプション
|
12
|
+
\original@makecaption{\starter@caption@font\starter@caption@prefix #1}{\starter@caption@font #2}
|
13
|
+
}
|
14
|
+
\fi
|
15
|
+
%\usepackage{amssymb} % $\blacktriangle$ や $\blacktriangledown$ に必要
|
16
|
+
\newcommand{\starter@caption@font}{\gtfamily\sffamily} % キャプションをゴシック体に
|
17
|
+
\newcommand{\starter@caption@symbolup}{▲} % または $\blacktriangle$
|
18
|
+
\newcommand{\starter@caption@symboldown}{▼} % または $\blacktriangledown$
|
19
|
+
\newcommand{\starter@caption@symbol}{\starter@caption@symboldown} % デフォルトは「▼」
|
20
|
+
\newcommand{\starter@caption@prefix}{% % キャプションの接頭辞
|
21
|
+
\textcolor{starter@captioncolor}{\starter@caption@symbol}% % 「▲」や「▼」に色をつける
|
22
|
+
\,% % 接頭辞の直後に少し隙間を空ける
|
23
|
+
}
|
24
|
+
\renewcommand{\reviewimagecaption}[1]{{% % 図のキャプションは図の下につくので、
|
25
|
+
\def\starter@caption@symbol{\starter@caption@symbolup}% % 接頭辞を「▼」から「▲」に変更
|
26
|
+
\caption{#1}%
|
27
|
+
}}
|
28
|
+
|
29
|
+
|
30
|
+
%%% キャプション(「//list」や「//cmd」につける説明のこと)
|
31
|
+
%%% ・キャプション直後で改ページされるのを防ぐ(要 needspace.sty)
|
32
|
+
%%% ・ただし同じページに画像がある場合は、うまく動作しないことがあるので注意
|
33
|
+
\newcommand{\starter@caption}[1]{%
|
34
|
+
%\ifempty{#1}\else%
|
35
|
+
\needvspace{\starter@caption@needspace}% % 必要な分のスペースがなければ改ページ
|
36
|
+
\starter@caption@text{#1}%
|
37
|
+
\par%
|
38
|
+
\starter@caption@sep%
|
39
|
+
%\fi%
|
40
|
+
}
|
41
|
+
\newcommand{\starter@caption@text}[1]{{%
|
42
|
+
%\medskip{\small\noindent #1}\vspace*{-1.3zw}% % original
|
43
|
+
\noindent% % キャプションをインデントしない
|
44
|
+
\ifx\starter@caption@small\empty\else%
|
45
|
+
\small% % キャプションの文字を小さくする
|
46
|
+
\fi%
|
47
|
+
\ifx\starter@caption@pretty\empty\else%
|
48
|
+
\starter@caption@font\starter@caption@prefix% ゴシック体に変更、接頭辞をつける
|
49
|
+
\fi%
|
50
|
+
#1% % キャプションを表示
|
51
|
+
}}
|
52
|
+
\newcommand{\starter@caption@sep}{%
|
53
|
+
\vspace*{-0.6zw}% % 縦方向の余白を減らす
|
54
|
+
}
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
%%% コードブロック(プログラムリストやターミナル)
|
60
|
+
\newenvironment{starter@codeblock}{%
|
61
|
+
%\vspace{-\lastskip}%
|
62
|
+
\ifempty{\starter@codeblock@fontcolor}\else%
|
63
|
+
\color{\starter@codeblock@fontcolor}% 文字色はここで指定(programやterminalでは指定しない)
|
64
|
+
\fi%
|
65
|
+
\ifempty{\starter@codeblock@backcolor}\else%
|
66
|
+
\colorlet{shadecolor}{\starter@codeblock@backcolor}% 背景色
|
67
|
+
\fi%
|
68
|
+
\@starter@codeblock@defframe% % 枠の表示方法を設定
|
69
|
+
%
|
70
|
+
\def\seqinsert{\-}% % 折り返し用のコマンドを上書き
|
71
|
+
%\def\-{\starter@fold@able}% % (効果なし)「\-」を上書き
|
72
|
+
%\let\-\starter@fold@able% % (効果なし)「\-」を上書き
|
73
|
+
%\renewcommand\-{\starter@fold@able}% (効果なし)「\-」を上書き
|
74
|
+
\DeclareRobustCommand{\-}{\starter@fold@able}% 「\-」を上書き
|
75
|
+
\def\UL@dischyp{\starter@fold@dischyp}% 取り消し線で使うulem.sty内部のコマンドを上書き
|
76
|
+
%
|
77
|
+
\vspace{-\baselineskip}%
|
78
|
+
\begin{alltt}% % verbatim環境は使わない
|
79
|
+
%\setlength{\baselineskip}{0.85\baselineskip}%
|
80
|
+
\MakeFramed{%
|
81
|
+
\advance\hsize-\width% % ブロック幅をテキスト幅と同じにする(左右に広げない)
|
82
|
+
\addtolength{\hsize}{\starter@codeblock@widen}% ほんの少しだけ表示幅を広げる
|
83
|
+
\advance\hsize-2\starter@codeblock@sidemargin% ノート環境では左右に余白を空ける
|
84
|
+
\FrameRestore%
|
85
|
+
}%
|
86
|
+
}{%
|
87
|
+
\endMakeFramed%
|
88
|
+
\end{alltt}%
|
89
|
+
\vspace{-\lastskip}%
|
90
|
+
}
|
91
|
+
|
92
|
+
\def\starter@codeblock@fontcolor{} % コードブロックの文字色
|
93
|
+
\def\starter@codeblock@backcolor{} % コードブロックの背景色
|
94
|
+
\def\startercodeblockfontsize{} % small, footnotesize, scriptsize, ...
|
95
|
+
|
96
|
+
\newif\if@starter@codeblock@border % コードブロックを枠で囲むか?
|
97
|
+
\@starter@codeblock@borderfalse
|
98
|
+
\newcommand{\@starter@codeblock@border@toggle}[1]{%
|
99
|
+
\ifempty{#1}% % 引数が空なら
|
100
|
+
\@starter@codeblock@borderfalse% % 枠をつけない
|
101
|
+
\else% % 引数が空でないなら
|
102
|
+
\@starter@codeblock@bordertrue% % 枠をつける
|
103
|
+
\fi
|
104
|
+
}
|
105
|
+
|
106
|
+
\newcommand{\@starter@codeblock@defframe}{% 枠の表示方法を設定
|
107
|
+
%% framed.sty で提供されているコマンドを上書き
|
108
|
+
\if@starter@codeblock@border%
|
109
|
+
\def\FrameCommand{\@@OpenFBox\FrameRule\FrameRule}% % ページまたぎがないとき
|
110
|
+
\def\FirstFrameCommand{\@@OpenFBox\FrameRule\z@}% % 次のページにまたがるとき
|
111
|
+
\def\MidFrameCommand{\@@OpenFBox\z@\z@}% % 次/前のページへまたがるとき
|
112
|
+
\def\LastFrameCommand{\@@OpenFBox\z@\FrameRule}% % 前のページからまたがるとき
|
113
|
+
\else%
|
114
|
+
\def\FrameCommand{%
|
115
|
+
\fboxsep=0.5\FrameSep% % ブロックのパディング
|
116
|
+
\colorbox{shadecolor}% % ブロックの背景色
|
117
|
+
}%
|
118
|
+
\fi
|
119
|
+
}
|
120
|
+
\def\@@OpenFBox#1#2#3{{% % 枠線で囲むだけでなく、背景色をつける
|
121
|
+
\edef\@bordercolor{gray}% % 枠線の色
|
122
|
+
\edef\@bgcolor{shadecolor}% % 背景の色
|
123
|
+
\edef\@fontcolor{\starter@codeblock@fontcolor}% フォントの色
|
124
|
+
\ifempty{\@fontcolor}%
|
125
|
+
\edef\@fontcolor{black}%
|
126
|
+
\fi%
|
127
|
+
\edef\@padding{4.5pt}% % 内側のpadding
|
128
|
+
\FrameSep=0pt% % 枠線内の padding をなくす
|
129
|
+
\@@ColorFBox{\@bordercolor}{\@bgcolor}{\@fontcolor}{#1}{#2}{\FrameRule}{\FrameRule}{\@padding}{#3}%
|
130
|
+
}}
|
131
|
+
\def\@@ColorFBox#1#2#3#4#5#6#7#8#9{{% color (border/background/font), border width (top/bottom/left/right), padding, text
|
132
|
+
\fboxsep=0pt% % 枠線内の padding をなくす
|
133
|
+
\color{#1}% % 枠線に色をつける
|
134
|
+
\CustomFBox{}{}{#4}{#5}{#6}{#7}{%% 枠線をつける
|
135
|
+
\fboxsep=#8% % colorbox 内の padding を設定
|
136
|
+
\colorbox{#2}{\color{#3}#9}% % 背景色をつける
|
137
|
+
}%
|
138
|
+
}}%
|
139
|
+
|
140
|
+
\newcommand{\starter@codeblock@vspace}{% % コードブロックの前後の余白
|
141
|
+
%% \vspace と違い、\addvspace は直前に余白があればその分の高さを引いた余白を追加する
|
142
|
+
\addvspace{\medskipamount}% % \medskipと同じ高さの余白にする
|
143
|
+
}
|
144
|
+
|
145
|
+
\newlength{\starter@codeblock@sidemargin} % コードブロックの左右の余白幅(ノート環境で使う)
|
146
|
+
\setlength{\starter@codeblock@sidemargin}{0pt}
|
147
|
+
|
148
|
+
\newcommand{\starter@codeblock@widen}{0.0mm} % コードブロックを少しだけ広げる幅
|
149
|
+
|
150
|
+
%%% コードブロック用のキャプション
|
151
|
+
\newcommand{\starter@codeblock@caption}[1]{%
|
152
|
+
%\ifempty{#1}\else%
|
153
|
+
\def\@arg{#1}%
|
154
|
+
\ifx\@arg\empty\else%
|
155
|
+
\starter@caption{#1}% % キャプションを表示
|
156
|
+
\fi%
|
157
|
+
}
|
158
|
+
|
159
|
+
%%% コードブロック用の行番号
|
160
|
+
\newcommand{\starterlineno}[1]{% % #1: 行番号
|
161
|
+
\makebox[0pt][r]{% % 右揃えにする
|
162
|
+
\small\rmfamily% % 文字を小さくし、ローマン体を使う
|
163
|
+
\textcolor{gray}{#1}% % 文字色をグレーにする
|
164
|
+
\hspace{0.8\FrameSep}% % 少しスペースを空ける
|
165
|
+
}%
|
166
|
+
}
|
167
|
+
|
168
|
+
%%% プログラム(//list[label][caption][optionstr]{ ... //})
|
169
|
+
\newenvironment{starterprogram}[2][]{% % #1:ラベル、#2:キャプション
|
170
|
+
\starter@codeblock@vspace% % 上に余白を空ける
|
171
|
+
\ifempty{#1}\else\label{#1}\fi% % 参照用のラベル
|
172
|
+
\starter@codeblock@caption{#2}% % キャプションを表示
|
173
|
+
\starter@enablettfont{\starter@program@ttfont}% % 等幅フォントを指定
|
174
|
+
\ifstreq{\starter@program@fontsize}{small}%
|
175
|
+
\small% % 文字を少し小さくする
|
176
|
+
\fi%
|
177
|
+
\ifempty\startercodeblockfontsize\else% % fontsizeオプションが指定されていたら
|
178
|
+
\csname\startercodeblockfontsize\endcsname% % その大きさに変更する
|
179
|
+
\fi%
|
180
|
+
\def\starterindentchar{\starter@program@indentchar}% インデント用記号(「|」)
|
181
|
+
\edef\starter@codeblock@widen{\starter@program@widen}% 幅をほんの少し広げる
|
182
|
+
\@starter@codeblock@border@toggle{\starter@program@border}% 枠をつける/つけない
|
183
|
+
\setlength{\baselineskip}{0.85\baselineskip}% % 行間を狭める
|
184
|
+
\edef\starter@codeblock@fontcolor{}% % 文字色を無指定
|
185
|
+
\edef\starter@codeblock@backcolor{starter@programcolor}% 背景色を指定
|
186
|
+
\begin{starter@codeblock}%
|
187
|
+
}{%
|
188
|
+
\end{starter@codeblock}%
|
189
|
+
\starter@codeblock@vspace% % 下に余白を空ける
|
190
|
+
}
|
191
|
+
|
192
|
+
%%% ターミナル(//terminal[label][caption][optionstr]{ ... //})
|
193
|
+
\newenvironment{starterterminal}[2][]{% % #1:ラベル、#2:キャプション
|
194
|
+
\starter@codeblock@vspace% % 上に余白を空ける
|
195
|
+
\ifempty{#1}\else\label{#1}\fi% % 参照用のラベル
|
196
|
+
\starter@codeblock@caption{#2}% % キャプションを表示
|
197
|
+
\starter@enablettfont{\starter@terminal@ttfont}% % 等幅フォントを指定
|
198
|
+
\ifstreq{\starter@terminal@fontsize}{small}%
|
199
|
+
\small% % 文字を少し小さくする
|
200
|
+
\fi%
|
201
|
+
\ifempty\startercodeblockfontsize\else% % fontsizeオプションが指定されていたら
|
202
|
+
\csname\startercodeblockfontsize\endcsname% % その大きさに変更する
|
203
|
+
\fi%
|
204
|
+
\def\starterindentchar{\starter@terminal@indentchar}% インデント用記号(「|」)
|
205
|
+
\edef\starter@codeblock@widen{\starter@terminal@widen}% 幅をほんの少し広げる
|
206
|
+
\@starter@codeblock@border@toggle{\starter@terminal@border}% 枠をつける/つけない
|
207
|
+
\setlength{\baselineskip}{0.85\baselineskip}% % 行間を狭める
|
208
|
+
%\color{white}% ←ここで指定してはダメ!キャプションなしterminal間の余白が広がってしまう
|
209
|
+
\edef\starter@codeblock@fontcolor{white}% % 文字色を無指定
|
210
|
+
\edef\starter@codeblock@backcolor{starter@terminalcolor}% 背景色を指定
|
211
|
+
\begin{starter@codeblock}%
|
212
|
+
}{%
|
213
|
+
\end{starter@codeblock}%
|
214
|
+
\starter@codeblock@vspace% % 下に余白を空ける
|
215
|
+
}
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
%%% 長い行を自動的に折り返す(コードブロック内で使用)
|
220
|
+
\usepackage{seqsplit}
|
221
|
+
\renewcommand{\seqinsert}{% % 文字間に挿入されるコマンド
|
222
|
+
\ifmmode\allowbreak\else\hspace{0pt}\fi% % コードブロックでこの定義を上書きする
|
223
|
+
}
|
224
|
+
%% 指定箇所が折り返し可能であることを表す
|
225
|
+
\newcommand{\starter@fold@able}{%
|
226
|
+
%% \discretionary は単語中の折り返せる箇所を指定するときに使うコマンド。
|
227
|
+
%% 「\-」の実体。
|
228
|
+
%% ・第1引数は折り返し箇所の行末で実行されるコマンド
|
229
|
+
%% ・第2引数は折り返し箇所の次行の行頭で実行されるコマンド
|
230
|
+
%% ・第3引数は折り返ししないときに実行されるコマンド
|
231
|
+
\discretionary{%
|
232
|
+
\makebox[0pt][l]{\starter@fold@char}% % 折り返しを表す記号を行末に挿入
|
233
|
+
}{%
|
234
|
+
\makebox[\starter@fold@indentwidth][r]{% % 折返しの直後にインデントを挿入
|
235
|
+
\starter@fold@contchar% % 折り返しを表す記号を行頭に挿入
|
236
|
+
}%
|
237
|
+
}{}%
|
238
|
+
}
|
239
|
+
\newcommand{\starter@fold@char}{%
|
240
|
+
\mdseries\rmfamily% % 通常の太さのローマン体
|
241
|
+
\textcolor{gray}{\guilsinglright}% % グレーの '>'
|
242
|
+
%\tiny\textcolor{gray}{\raisebox{0.5mm}{$\blacktriangleright$}}% % 右向きの三角形
|
243
|
+
}
|
244
|
+
\newcommand{\starter@fold@contchar}{% % 折り返し後の継続行の頭につける記号
|
245
|
+
\starter@fold@char%
|
246
|
+
}
|
247
|
+
\newcommand{\startersetfoldmark}[1]{% % 折り返しを表す記号を空にするのに使う
|
248
|
+
\def\starter@fold@char{#1}%
|
249
|
+
}
|
250
|
+
\newlength{\starter@fold@indentwidth} % 折り返し後のインデント幅
|
251
|
+
\newcommand{\startersetfoldindentwidth}[1]{%
|
252
|
+
\settowidth{\starter@fold@indentwidth}{#1}%
|
253
|
+
}
|
254
|
+
\newcommand{\starterfoldhere}{% % 折り返し箇所を手動で指定するときに使う
|
255
|
+
\makebox[0pt][l]{\starter@fold@char}% % 折り返しを表す記号を挿入
|
256
|
+
\\% % 改行
|
257
|
+
\makebox[\starter@fold@indentwidth]{}% % 折返しの直後にインデントを挿入
|
258
|
+
}
|
259
|
+
%% 取り消し線で使うulem.styのコマンドをコピーして上書き
|
260
|
+
%% (これにより取り消し線の中でも折返しされるようになる)
|
261
|
+
\newcommand{\starter@fold@dischyp}{%
|
262
|
+
\global\setbox\UL@hyphenbox\hbox%
|
263
|
+
{\ifnum \hyphenchar\font<\z@ \string-\else \char\hyphenchar\font \fi}%
|
264
|
+
%\kern\wd\UL@hyphenbox \LA@penalty\@M% %-
|
265
|
+
\UL@stop%
|
266
|
+
%\kern-\wd\UL@hyphenbox% %-
|
267
|
+
%\discretionary{\box\UL@hyphenbox}{}{} %-
|
268
|
+
\starter@fold@able@ulem% %+
|
269
|
+
\UL@start%
|
270
|
+
}
|
271
|
+
\newcommand{\starter@fold@able@ulem}{%
|
272
|
+
\discretionary{%
|
273
|
+
%\makebox[0pt][l]{\@fold@char}% % この書き方だとなぜかエラー
|
274
|
+
\hbox to 0pt{\starter@fold@char}% % 仕方ないので別の書き方でしのぐ
|
275
|
+
}{%
|
276
|
+
%\makebox[\starter@fold@indentwidth][r]{% この書き方だとなぜかエラー
|
277
|
+
% \starter@fold@contchar%
|
278
|
+
%}%
|
279
|
+
\hbox to \starter@fold@indentwidth{}% % 仕方ないので別の書き方でしのぐ
|
280
|
+
\settowidth{\@tempdima}{\mbox{\starter@fold@contchar}}%
|
281
|
+
\hbox to -\@tempdima{}%
|
282
|
+
\mbox{\starter@fold@contchar}%
|
283
|
+
}{}%
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
%%% 行末 (End Of Line) を表す記号
|
289
|
+
%\usepackage[arrows]{boisik} % for $\dlsh$
|
290
|
+
%\usepackage[notext,notextcomp,upint]{stix} % for $\leftdowncurvedarrow$
|
291
|
+
%%% 注:boisik.styを読み込むとdvipdfmxコマンドでwarningが出るので、
|
292
|
+
%%% かわりに必要な行だけを抜き出すことにする。
|
293
|
+
%%% <ここから>
|
294
|
+
\input{lbmenc.def}
|
295
|
+
\DeclareSymbolFont{bskarr}{U}{bskarr}{m}{n}
|
296
|
+
\DeclareFontFamily{U}{bskarr}{ }
|
297
|
+
\DeclareFontShape{U}{bskarr}{m}{n}{<->bskarr10}{}
|
298
|
+
\DeclareMathSymbol{\dlsh}{\mathrel}{bskarr}{"F8}
|
299
|
+
%%% </ここまで>
|
300
|
+
|
301
|
+
\newcommand{\startereolmark}{% % 行末を表す改行記号を表示する
|
302
|
+
\makebox[0pt][l]{%
|
303
|
+
\textcolor{starter@eol@color}{\starter@eol@char}%
|
304
|
+
}%
|
305
|
+
}
|
306
|
+
\newcommand{\starter@eol@char}{% % 行末を表す改行記号
|
307
|
+
\footnotesize$\dlsh$% % (直角タイプ、boisik.styが必要)
|
308
|
+
%\raisebox{0.1zw}{%
|
309
|
+
% \scriptsize$\leftdowncurvedarrow$}% % (カーブタイプ、stix.styが必要)
|
310
|
+
%}%
|
311
|
+
}
|
312
|
+
\colorlet{starter@eol@color}{lightgray} % 改行記号の表示色
|
313
|
+
\newcommand{\startereolmarklight}{% % program用
|
314
|
+
\colorlet{starter@eol@color}{lightgray}% % 薄いグレーを使う
|
315
|
+
}
|
316
|
+
\newcommand{\startereolmarkdark}{% % terminal用
|
317
|
+
\colorlet{starter@eol@color}{darkgray}% % 濃いグレーを使う
|
318
|
+
}
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
%%% コードブロックのインデントを示す記号(「|」)
|
323
|
+
\newcommand{\starterindentchar}{} % コードブロックの中で上書きされる
|
324
|
+
\newcommand{\starter@indentchar}{%
|
325
|
+
{|}% % インデントを表す記号
|
326
|
+
}
|
327
|
+
\newcommand{\starter@program@indentchar}{% % プログラム用
|
328
|
+
\textcolor{starter@program@indentcolor}{\starter@indentchar}% 色つきで表示
|
329
|
+
}
|
330
|
+
\newcommand{\starter@terminal@indentchar}{% % ターミナル用
|
331
|
+
\textcolor{starter@terminal@indentcolor}{\starter@indentchar}% 色つきで表示
|
332
|
+
}
|