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.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/retrovert.yml +39 -0
  3. data/.gitignore +2 -2
  4. data/.ruby-version +1 -0
  5. data/Gemfile +1 -0
  6. data/Gemfile.lock +67 -1
  7. data/README.md +6 -3
  8. data/lib/review/retrovert/converter.rb +231 -6
  9. data/lib/review/retrovert/version.rb +1 -1
  10. data/review-retrovert.gemspec +1 -1
  11. data/testdata/mybook/.gitignore +7 -0
  12. data/testdata/mybook/README.md +43 -0
  13. data/testdata/mybook/Rakefile +16 -0
  14. data/testdata/mybook/catalog.yml +33 -0
  15. data/testdata/mybook/config-starter.yml +139 -0
  16. data/testdata/mybook/config.yml +375 -0
  17. data/testdata/mybook/contents/00-preface.re +83 -0
  18. data/testdata/mybook/contents/01-install.re +272 -0
  19. data/testdata/mybook/contents/02-tutorial.re +1008 -0
  20. data/testdata/mybook/contents/03-syntax.re +2613 -0
  21. data/testdata/mybook/contents/04-customize.re +728 -0
  22. data/testdata/mybook/contents/05-faq.re +328 -0
  23. data/testdata/mybook/contents/06-bestpractice.re +971 -0
  24. data/testdata/mybook/contents/91-compare.re +18 -0
  25. data/testdata/mybook/contents/92-filelist.re +119 -0
  26. data/testdata/mybook/contents/93-background.re +267 -0
  27. data/testdata/mybook/contents/99-postface.re +38 -0
  28. data/testdata/mybook/css/normalize.css +349 -0
  29. data/testdata/mybook/css/webstyle.css +514 -0
  30. data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
  31. data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
  32. data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
  33. data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
  34. data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
  35. data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
  36. data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
  37. data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
  38. data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
  39. data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
  40. data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
  41. data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
  42. data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
  43. data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
  44. data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
  45. data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
  46. data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
  47. data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
  48. data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
  49. data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
  50. data/testdata/mybook/images/93-background/bug913.png +0 -0
  51. data/testdata/mybook/images/93-background/slide2.png +0 -0
  52. data/testdata/mybook/images/cover_a5.pdf +0 -0
  53. data/testdata/mybook/images/cover_b5.pdf +0 -0
  54. data/testdata/mybook/images/tw-icon.jpg +0 -0
  55. data/testdata/mybook/layouts/layout.epub.erb +29 -0
  56. data/testdata/mybook/layouts/layout.html5.erb +106 -0
  57. data/testdata/mybook/layouts/layout.tex.erb +546 -0
  58. data/testdata/mybook/lib/hooks/beforetexcompile.rb +55 -0
  59. data/testdata/mybook/lib/ruby/review-builder.rb +503 -0
  60. data/testdata/mybook/lib/ruby/review-cli.rb +58 -0
  61. data/testdata/mybook/lib/ruby/review-compiler.rb +523 -0
  62. data/testdata/mybook/lib/ruby/review-epubmaker.rb +606 -0
  63. data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +661 -0
  64. data/testdata/mybook/lib/ruby/review-latexbuilder.rb +782 -0
  65. data/testdata/mybook/lib/ruby/review-maker.rb +235 -0
  66. data/testdata/mybook/lib/ruby/review-monkeypatch.rb +91 -0
  67. data/testdata/mybook/lib/ruby/review-pdfmaker.rb +468 -0
  68. data/testdata/mybook/lib/ruby/review-textbuilder.rb +36 -0
  69. data/testdata/mybook/lib/ruby/review-tocparser.rb +285 -0
  70. data/testdata/mybook/lib/ruby/review-webmaker.rb +433 -0
  71. data/testdata/mybook/lib/tasks/mytasks.rake +31 -0
  72. data/testdata/mybook/lib/tasks/review.rake +142 -0
  73. data/testdata/mybook/lib/tasks/review.rake.orig +72 -0
  74. data/testdata/mybook/lib/tasks/starter.rake +326 -0
  75. data/testdata/mybook/locale.yml +6 -0
  76. data/testdata/mybook/review-ext.rb +206 -0
  77. data/testdata/mybook/sty/jumoline.sty +310 -0
  78. data/testdata/mybook/sty/mycolophon.sty +81 -0
  79. data/testdata/mybook/sty/mystyle.sty +8 -0
  80. data/testdata/mybook/sty/mytextsize.sty +61 -0
  81. data/testdata/mybook/sty/mytitlepage.sty +103 -0
  82. data/testdata/mybook/sty/reviewmacro.sty +60 -0
  83. data/testdata/mybook/sty/starter-codeblock.sty +332 -0
  84. data/testdata/mybook/sty/starter-color.sty +79 -0
  85. data/testdata/mybook/sty/starter-font.sty +112 -0
  86. data/testdata/mybook/sty/starter-heading.sty +514 -0
  87. data/testdata/mybook/sty/starter-note.sty +127 -0
  88. data/testdata/mybook/sty/starter-section.sty +262 -0
  89. data/testdata/mybook/sty/starter-toc.sty +72 -0
  90. data/testdata/mybook/sty/starter.sty +554 -0
  91. data/testdata/mybook/style.css +597 -0
  92. 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,8 @@
1
+ %%%
2
+ %%% これはカスタマイズ用のスタイルファイル。
3
+ %%% プロジェクトでLaTeXのスタイルを追加・修正する場合はここに書く。
4
+ %%% (reviewやstarterのバージョンアップをしやすくするために、
5
+ %%% review initコマンドが用意する「reviewmacro.sty」や、
6
+ %%% starterが自動生成する「starter.sty」とは別ファイルにしている)
7
+ %%%
8
+
@@ -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
+ }