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}