testdata/mybook/sty/starter.sty in review-retrovert-0.9.7 vs testdata/mybook/sty/starter.sty in review-retrovert-0.9.8
- old
+ new
@@ -4,45 +4,13 @@
%%% Re:VIEW Starter によって自動生成されたスタイルファイル
%%%
-%%% 引数が空かどうか調べるマクロ
-\newcommand{\ifempty}[1]{%
- \edef\temp{#1}% % \ifx#1\empty とはできないので、一時マクロを定義
- \ifx\temp\empty% % \empty は他の言語でいえば空文字列に相当
-}
+%%% ユーティリティマクロ
+\usepackage{starter-util}
-%%% 文字列比較をするマクロ
-\newcommand\ifstreq[2]{
- \edef\@tempa{#1}%
- \edef\@tempb{#2}%
- \ifx\@tempa\@tempb% % \ifx#1#2 とはできないことに注意(TeXの仕様)
-}
-
-%%% 例:「\@eval{section}{blabla}」は「\section{blabla}」と同等
-\newcommand{\@eval}[1]{%
- \csname#1\endcsname%
-}
-
-%%% \lastskip を保存するための一時変数
-\newcommand{\keeplastskip}[1]{%
- \@tempskipa=\lastskip%
- \vskip -\lastskip\relax%
- #1%
- \vskip \@tempskipa\relax%
- \@tempskipa=0pt%
-}
-
-%%% 縦方向のスペースがあるか調べる。なければ改ページする。
-\newcommand{\needvspace}[1]{%
- \rule[#1]{0pt}{0pt}% % 幅のない縦線を引く。引くスペースがなければ改ページされる。
- \vspace{-#1}\par% % もとの位置に戻る
-}
-
-
-
%%% 色を設定
\usepackage{starter-color}
%%% フォントを設定
\usepackage{starter-font}
@@ -52,503 +20,17 @@
\usepackage{starter-heading} % 新しいマクロ定義
%%% プログラムコードやターミナル
\usepackage{starter-codeblock}
-%%% ノート
+%%% ノート、ミニブロック
\usepackage{starter-note}
+%%% 会話
+\usepackage{starter-talklist}
+
%%% 目次
\usepackage{starter-toc}
-
-%%% 目次やリンクの色を指定する。印刷用なら黒にする。
-\hypersetup{colorlinks=true,linkcolor=starter@linkcolor,urlcolor=starter@linkcolor}
-%\hypersetup{colorlinks=false} % リンク機能をオフにする
-
-
-
-%%% 「@<strong>{ ... }」を太字のゴシック体にする(「@<b>{ ... }」は明朝体のまま)。
-\renewcommand{\reviewstrong}[1]{\textbf{\gtfamily\sffamily #1}}
-
-%%% 「@<em>{ ... }」をゴシック体にする。
-\renewcommand{\reviewem}[1]{{\gtfamily\sffamily #1}}
-
-%%% 「@<del>{ ... }」(取り消し線)が効くようにする。
-%%% (See https://qiita.com/takahashim/items/5c1af2941a1ce9fa5919)
-\usepackage{ulem}
-\renewcommand{\reviewstrike}[1]{\sout{#1}}
-%\usepackage{jumoline}
-%\renewcommand{\reviewstrike}[1]{\Midline{#1}} % \seqsplit{}と相性が悪い?
-
-%%% 目立たせない(「@<strong>{}」の反対)
-\newcommand{\starterweak}[1]{%
- \textcolor{gray}{#1}%
-}
-
-%%% ふきだし説明の文字色をグレーに
-\renewcommand{\reviewballoon}[1]{%
- \textcolor{gray}{←#1}
-}
-
-%% 「@<code>{...}」を薄いグレーで囲む
-%% (ただし章や節のタイトル、および各種キャプションでは囲まない)
-\ifx\starter@inlinecode@gray\empty
- \renewcommand{\reviewcode}[2][]{%
- %\,% % ほんの少しスペースを入れる
- \texttt{#2}%
- %\,% % ほんの少しスペースを入れる
- }
-\else
- \renewcommand{\reviewcode}[2][]{% % #1:空 or 'headline' or 'caption'
- \,% % ほんの少しスペースを入れる
- \edef\@tmpA{#1}%
- \ifx\@tmpA\empty% % #1が空(未指定)なら
- \colorbox{shadecolor}{\texttt{#2}}% % 背景色を薄いグレーにして等幅フォントで表示
- \else% % #1がheadlineやcaptionなら
- \texttt{#2}% % 等幅フォントで表示(背景色なし)
- \fi%
- \,% % ほんの少しスペースを入れる
- }
-\fi
-
-%%% ファイル名を表す
-\newcommand{\starterfile}[1]{%
- {\gtfamily\sffamily #1}% % ゴシック体で表示
-}
-
-%%% ユーザ入力を表す
-\newcommand{\starteruserinput}[1]{%
- \ifempty{\starter@codeblock@fontcolor}%
- \def\@fontcolor{black}%
- \else%
- \def\@fontcolor{\starter@codeblock@fontcolor}%
- \fi%
- \textcolor{starter@userinputcolor}{% % 下線の色
- \underline{% % 下線(LaTeX標準)
- %\uline{% % 下線(ulem.sty)
- \textcolor{\@fontcolor}{#1}%
- }%
- }%
-}
-
-%%% ルビをふるのに必要(例:@<ruby>{漢, おとこ})
-\usepackage{okumacro}
-
-
-
-%%% 箇条書き(順序なし)の上下の余白を、行間の0.5倍から0.25倍へと減らす
-\newenvironment{starteritemize}{%
- \ifnum\@listdepth=0%
- \def\@listi{%
- \@listI%
- \topsep 0.25\baselineskip% % 上下の余白を減らす(original: 0.5\baselineskip)
- }%
- \fi%
- \begin{itemize}%
-}{%
- \end{itemize}%
-}
-
-%%% 箇条書き(順序つき)の上下の余白を、行間の0.5倍から0.25倍へと減らす
-\newenvironment{starterenumerate}{%
- \ifnum\@listdepth=0%
- \def\@listi{%
- \@listI%
- \topsep 0.25\baselineskip% % 上下の余白を減らす(original: 0.5\baselineskip)
- }%
- \fi%
- \begin{enumerate}%
-}{%
- \end{enumerate}%
-}
-
-%%% 順序なし箇条書きの行頭文字を変更
-\usepackage{amssymb} % \blacktriangleright や \bigstar のために必要
-%\renewcommand{\labelitemi}{$\blacktriangleright$} % 深さ1段目:小さい黒丸→小さい三角へ
-\renewcommand{\labelitemii}{$\circ$} % 深さ2段目:「-」→小さい白丸へ
-%\renewcommand{\labelitemiii}{{\small$\bigstar$}} % 深さ3段目:「*」→星形へ
-
-
-
-
-%%% 奥付 (colophon) が最終ページになるよう調整する。
-%%% (奥付が右ページだと、次ページである最終ページが空ページになるため)
-\renewcommand{\reviewcolophon}[0]{%
- \clearpage % 改ページ
- \ifstreq{\starter@target}{tablet}% タブレット向けなら何も調整しない
- \else\if@openright % \documentclass で openright が指定されていれば
- \pltx@cleartoleftpage % 左ページ(偶数ページ)になるよう調整する
- \else\if@openleft % \documentclass で openleft が指定されていれば
- \pltx@cleartorightpage % 右ページ(奇数ページ)になるよう調整する
- \fi\fi\fi
-}
-
-%%% 右起こし(奇数ぺージ始まり)にしない場合でも、大扉とまえがきの間に
-%%% 空白ページが入ることがあるので、修正する。
-\if@openright\else\if@openleft\else % 右起こしでも左起こしでもない場合だけ、
- \renewcommand\frontmatter{% % 大扉やまえがきの開始を表すコマンドを再定義する。
- %\pltx@cleartooddpage % 削除
- \clearpage % 追加
- \@mainmatterfalse
- \pagenumbering{roman}
- }
-\fi\fi
-
-%%% 右起こし(奇数ぺージ始まり)にしない場合でも、目次と第1章との間に
-%%% 空白ページが入ることがあるので、修正する。
-\if@openright\else\if@openleft\else % 右起こしでも左起こしでもない場合だけ、
- \renewcommand\mainmatter{% % 本文の開始を表すコマンドを再定義する。
- %\pltx@cleartooddpage % 削除
- \clearpage % 追加
- \@mainmattertrue
- \pagenumbering{arabic}
- }
-\fi\fi
-
-
-
-%%% ページヘッダーの形式を変更(fancyhdr.styを使用)
-\newcommand{\pageheaderfont}{\small\gtfamily\sffamily} % ゴシック体
-%\newcommand{\pageheaderfont}{\small\gtfamily\sffamily\bfseries} % ゴシック体、太字
-%%% 紙書籍のような右起こしの場合(左ページに章タイトル、右ページに節タイトル)
-\lhead[\pageheaderfont\leftmark]{}
-\rhead[]{\pageheaderfont\rightmark}
-%%% タブレット向けのような両起こしの場合(両ページに章タイトルと節タイトル)
-%\lhead{\pageheaderfont\leftmark}
-%\rhead{\pageheaderfont\rightmark}
-
-%%% ページ番号のスタイル
-%\newcommand{\pagenumberstyle}{\thepage} % 例:「1」
-%\newcommand{\pagenumberstyle}{\itshape\bfseries\thepage} % 太字、斜体
-\newcommand{\pagenumberstyle}{\rmfamily --\ \thepage\ --} % 例:「-- 1 --」
-% \newcommand{\pagenumberstyle}{\itshape --\ \thepage\ --} % 斜体
-
-%%% ページ番号をページフッタに表示(fancyhdr.styを使用)
-\fancyfoot{} % ページフッタをクリア
-\cfoot{\pagenumberstyle} % ページフッタの真ん中に表示
-%\lfoot[\pagenumberstyle]{} % 偶数ページの左下に表示
-%\rfoot[]{\pagenumberstyle} % 奇数ページの右下に表示
-\fancypagestyle{plainhead}{ % 章タイトルページのスタイル
- \fancyhead{} % ページヘッダなし
- \fancyfoot{} % ページフッタをクリア
- \cfoot{\pagenumberstyle} % ページフッタの真ん中に表示
- %\lfoot[\pagenumberstyle]{} % 偶数ページの左下に表示
- %\rfoot[]{\pagenumberstyle} % 奇数ページの右下に表示
- \renewcommand{\headrulewidth}{0pt} % ページヘッダの区切り線をなくす
- \renewcommand{\footrulewidth}{0pt} % ページフッタの区切り線をなくす
-}
-
-%%% ページヘッダを構成する要素を余計なことに Re:VIEW が上書きしちゃってるので、
-%%% オリジナルの定義を jsbook.cls からコピーして元に戻す。
-\def\chaptermark#1{%
- \markboth{%
- \ifnum \c@secnumdepth >\m@ne%
- \if@mainmatter%
- \if@omit@number\else%
- \@chapapp\thechapter\@chappos\hskip1zw%
- \fi%
- \fi%
- \fi%
- #1%
- }{}%
-}%
-\def\sectionmark#1{%
- \markright{%
- \ifnum \c@secnumdepth >\z@ \thesection \hskip1zw\fi%
- #1%
- }%
-}%
-
-
-
-%%% 章 (Chapter) のタイトルを独立したページにするコマンド。
-%%% 独立したページには、章タイトルと、章の概要と、章ごとの目次を含める。
-\newcommand{\makechaptitlepage}[1]{%
- \pagecolor{starter@chaptitlepagecolor} % ページに背景色をつける
- %\addtolength{\linewidth}{-\parindent} % 目次の右側余白が左側より1文字分狭いことへの対策
- \def\arg{#1} % '\ifx#1{toc}' がうまく動作してくれないので、その対策
- \def\toc{toc}
- \def\tocsec{toc=section}
- \def\tocsub{toc=subsection}
- \def\tocon{toc=on}
- \def\tocoff{toc=off}
- \ifx\arg\tocon
- \setcounter{minitocdepth}{1} % 目次に出すのは節(Section)まで
- \minitoc % 章ごとの目次
- \else\ifx\arg\tocsec
- \setcounter{minitocdepth}{1} % 目次に出すのは節(Section)まで
- \minitoc % 章ごとの目次
- \else\ifx\arg\tocsub
- \setcounter{minitocdepth}{2} % 目次に出すのは項(SubSection)まで
- \minitoc % 章ごとの目次
- \else\ifx\arg\tocoff
- \else
- % TODO: invalid argument
- \fi\fi\fi\fi
- \clearpage% % 改ページ
- \pagecolor{none}% % ページの背景色をなくす
-}
-%%% 章ごとの目次
-%%% ('nohints' は、裏表紙の直後に空白ページができるのを防ぐために必要)
-\usepackage[japanese,nohints]{minitoc} % 章ごとの目次を作る
-\AtBeginDocument{% % \begin{document} で実行するコマンドを登録
- \dominitoc
- %\listoffigures
- %\listoftables
-}
-\setcounter{minitocdepth}{1}% % 目次に出すのはSectionまで(Subsectionは出さない)
-%\setlength{\mtcindent}{3zw} % 目次左右の余白幅(左右の幅であることに注意)
-%\mtcsetoffset{minitoc}{3zw} % 目次左のインデント幅(テキスト幅は変わらず)
-%\setlength{\mtcskipamount}{\bigskipamount}
-\mtcsetrules{*}{off} % 章ごとの目次の上下に罫線を入れない
-\mtcsettitle{minitoc}{【この章の内容】} % 章ごとの目次のタイトル
-%\mtcsettitle{minitoc}{【{\@chapapp\thechapter\@chappos}の内容】} % または
-\renewcommand{\mtcSfont}{\rmfamily\small} % 章ごとの目次のフォント
-%\renewcommand{\mtcSfont}{\small\gtfamily\sffamily\color{white}} % 色をつける場合
-\mtcsettitlefont{minitoc}{% % 章ごとの目次のタイトルを設定
- \gtfamily\sffamily % ゴシック体、サンセリフ体
- \hspace{2zw} % 左側のインデント
-}
-
-
-
-%%% 現在位置に画像が入りきらない場合、画像は次のページに回される。
-%%% その際、現在位置に大きなスペースが空くのを防ぐために、
-%%% 後続のテキストを現在位置に流し込むようにする。
-\renewenvironment{reviewimage}[1][]{%
- \ifempty{#1}%
- \edef\@tempA{\starter@image@position}% 引数がなければ「image_option:」の値を使う
- \else%
- \edef\@tempA{#1}% % 引数があればその値を使う
- \fi%
- \expandafter\starter@image\@tempA% % 先に引数を展開してから \begin{starter@image} を実行
-}{%
- \endstarter@image% % \end{starter@image} と同じ
-}
-%
-\newenvironment{starter@image}[1]{%
- \vspace{0.8zw} % 画像上の余白を調整(少し増やす)
- \begin{figure}[#1]
- %\begin{center} % center環境は余分な余白がつくので使わない
- \centering % \centeringを使うと余分な余白がつかない
-}{%
- %\end{center}
- \end{figure}
- \vspace{-0.8zw} % 画像下の余白を調整(少し減らす)
-}
-%
-\renewenvironment{reviewdummyimage}{%
- \begin{reviewimage}
- \begin{alltt}
-}{%
- \end{alltt}
- \end{reviewimage}
-}
-
-
-
-%%% コラムが複数のページにまたがるとき、次のページに続いていることが
-%%% わかるようにするために、ページ境界では上下の線を引かない。
-\renewenvironment{reviewcolumn}{%
- %\begin{framed}% % original
- \begin{oframed}%
-}{%
- %\end{framed}% % original
- \end{oframed}%
- \vspace{2zw}%
-}
-
-%%% コラムのタイトルを変更する
-\renewcommand{\reviewcolumnhead}[2]{%
- %{\noindent\large ■コラム: #2}% % original
- %{\noindent\large\gtfamily\sffamily\bfseries ■コラム:#2}% % 太字のゴシック
- {\noindent\large\gtfamily\sffamily\bfseries 【コラム】#2}% % 太字のゴシック
- \vspace{2mm}%
-}
-
-
-
-%%% @<hd>{} や @<subsec>{} で、節や項へのリンクを作成
-%%% (config.yml で「chapterlink: true」の設定が必要)
-\newcommand{\startersecref}[2]{%
- 「\hyperref[#2]{#1}」(p.\pageref{#2})% % 節や項のタイトルがリンク
- %{#1}(\hyperref[#2]{p.\pageref{#2}})% % ページ番号がリンク
-}
-\newcommand{\startersubsecref}[2]{%
- 「\hyperref[#2]{{\startersubsectionsymbol}#1}」(p.\pageref{#2})% % 節や項のタイトルがリンク
- %{\startersubsectionsymbol}{#1}(\hyperref[#2]{p.\pageref{#2}})% % ページ番号がリンク
-}
-\newcommand{\startersubsubsecref}[2]{%
- 「\hyperref[#2]{#1}」(p.\pageref{#2})% % 節や項のタイトルがリンク
- %{#1}(\hyperref[#2]{p.\pageref{#2}})% % ページ番号がリンク
-}
-
-
-
-%%% 導入文(リード文)
-\newenvironment{starterlead}{%
- \begin{quotation}% % または \begin{abstract}
-}{%
- \end{quotation}% % または \end{abstract}
-}
-
-
-
-%%% 章 (Chaper) の概要
-%%% (導入文(リード文)と違うことに注意)
-\newenvironment{starterabstract}{%
- \addtolength{\rightskip}{2.5zw}% % 右の余白を2.5文字分広げる (default: 0pt)
- \addtolength{\leftskip}{2.5zw}% % 左の余白を2.5文字分広げる (default: 5pt)
- \gtfamily\sffamily% % ゴシック体
- \small% % 少し小さめ
-}{%
- \par%
- \addvspace{2\Cvs}% % 下に1行空ける
-}
-
-
-
-%%% 引用(複数段落に対応)
-\newenvironment{starterquote}{%
- \begin{starter@leftbar}{3pt}{starter@quotecolor}%
-}{%
- \end{starter@leftbar}%
-}
-%
-\newenvironment{starter@leftbar}[2]{% % #1: 太さ、#2: 色
- %% framed.sty の機能を使って、文章の左側に縦棒を入れる
- \def\FrameCommand{\textcolor{#2}{\vrule width #1} \hspace{10pt}}%
- \MakeFramed{%
- \advance\hsize-\width%
- \advance\hsize-2\starter@quote@sidemargin% ノート環境では左右に余白を空ける
- \advance\rightskip -\starter@quote@sidemargin% 右マージンが二重にかかるのを避ける
- \advance\leftskip -\starter@quote@sidemargin% 左マージンが二重にかかるのを避ける
- \FrameRestore%
- }%
-}{%
- \endMakeFramed%
-}
-%
-\newlength{\starter@quote@sidemargin} % 引用部の左右の余白幅(ノート環境で使う)
-
-
-
-%%% 画像のまわりに線をつける
-\newcommand{\starterimageframe}[1]{{%
- \setlength{\fboxrule}{0.1pt}%
- \fcolorbox{lightgray}{white}{#1}%
-}}
-
-
-
-%%% テキストの横に画像を配置する
-%%% (注意:途中での改ページはできない、テキストの回り込みはされない、脚注は使えない)
-\newenvironment{startersideimage}[6]{%
- \begin{starter@sideimage}{#1}{#2}{#3}{#4}{#5}{#6}%
-}{%
- \end{starter@sideimage}%
-}
-\newenvironment{starter@sideimage}[6]{%
- %% #1: L or R, #2: 画像ファイル名
- %% #3: 画像表示幅, #4: 画像領域幅,
- %% #5: 区切り余白幅, #6: テキスト幅(空白なら自動計算)
- \ifempty{#6}% % テキスト幅が未指定なら
- \setlength\@tempdima{\textwidth}% 本文幅から
- \addtolength{\@tempdima}{-#4}% % 画像領域幅を引いて
- \addtolength{\@tempdima}{-#5}% % 区切り余白幅を引く
- \else% % テキスト幅が指定されていれば
- \setlength\@tempdima{#6}% % それを使う
- \fi%
- %
- \def\@tempimgL{}%
- \def\@tempimgR{}%
- \ifstreq{#1}{L}% % L なら、画像と区切り余白とテキストを表示
- \def\@tempimgL{\starter@miniimage{#2}{#3}{#4}\hspace{#5}}%
- \else\ifstreq{#1}{R}% % R なら、テキストと区切り余白と画像を表示
- \def\@tempimgR{\hspace{#5}\starter@miniimage{#2}{#3}{#4}}%
- \fi%
- %
- \noindent%
- \@tempimgL%
- \begin{minipage}[t]{\@tempdima}% minipage環境開始
- \setlength{\parindent}{1zw}% % minipage環境内で段落開始行をインデントする
-}{%
- \end{minipage}% % minipage環境終了
- \@tempimgR%
- \par% % これがないと後続のテキストが続いてエラーになる
-}
-\newcommand\starter@miniimage[3]{% #1:画像ファイル名, #2:画像の表示幅, #3:画像の領域幅
- \begin{minipage}[t]{#3}%
- \centering % 中央揃え
- %\vskip 0pt\relax% % 画像の上に少し余白が入る (why?)
- \vskip -0.6zw\relax% % 画像の上に余白が入らないよう調整
- %\null\vspace*{-\baselineskip}%
- \ifempty{\starterminiimageframe}%
- \includegraphics[width=#2]{#1}% % 画像を表示
- \else%
- \starterimageframe{% % 画像のまわりを灰色の線で囲む
- \includegraphics[width=#2]{#1}% % 画像を表示
- }%
- \fi%
- \end{minipage}%
-}
-\def\starterminiimageframe{}
-
-
-
-%%% サンプルの出力結果(Starterのドキュメントで使用)
-\newenvironment{startersampleoutput}[1]{%
- \starter@codeblock@vspace%
- \starter@caption{#1}%
- %\begin{oframed}% % error in note block
- \vspace{-0.3\baselineskip}%
- \noindent%
- \textcolor{lightgray}{\hrulefill}\par%
-}{%
- %\end{oframed}% % error in note block
- \vspace{-0.3\baselineskip}%
- \noindent%
- \textcolor{lightgray}{\hrulefill}\par%
- \starter@codeblock@vspace%
-}
-
-
-
-%%% 黒ヌキ(白い背景に黒い文字)
-%%%
-%%% 使い方: \startercursor{テキスト}
-\newcommand*{\startercursor}[1]{%
- \starter@bgcolor[black]{white}{#1}% % 文字を黒、背景を白にして表示
- %\mybgcolor{white}{\textcolor{black}{#1}}%
-}%
-
-%%% 背景色(と文字色)をつける
-%%%
-%%% 使い方: \starter@bgcolor{white}{テキスト}
-%%% or \starter@bgcolor[black]{white}{テキスト}
-\newcommand{\starter@bgcolor}[3][]{% % #1: 文字色(default: 空), #2: 背景色, #3: テキスト
- \settowidth{\tmp@width}{#3}% % 幅
- \settodepth{\tmp@depth}{g}% % 深さ
- \settoheight{\tmp@height}{M}% % 高さ
- \addtolength{\tmp@height}{\tmp@depth}% % 高さに深さを追加
- \addtolength{\tmp@depth}{1pt}% % 深さを少し増やす
- \addtolength{\tmp@height}{2pt}% % 高さを少し増やす
- %
- \makebox[0pt][l]{% % カーソル位置を変えないまま
- \textcolor{#2}{% % 背景色を指定して
- \rule[-\tmp@depth]{\tmp@width}{\tmp@height}% % 塗りつぶす
- %\rule[-\tmp@depth]{\tmp@width}{\baselineskip}%
- }%
- }%
- \ifempty{#1}% % 文字色が未指定なら
- #3% % テキストをそのまま表示
- \else% % 文字色が指定されていれば
- \textcolor{#1}{#3}% % 色を指定してテキストを表示
- \fi%
-}
-
-%%% 長さを表す変数 (control sequence) を宣言
-\newlength{\tmp@width}% % 幅
-\newlength{\tmp@height}% % 高さ
-\newlength{\tmp@depth}% % 深さ
+%%% その他
+\usepackage{starter-misc}