%%% -*- coding: utf-8 -*- %%% %%% Re:VIEW Starter によって自動生成されたスタイルファイル %%% %%% 引数が空かどうか調べるマクロ \newcommand{\ifempty}[1]{% \edef\temp{#1}% % \ifx#1\empty とはできないので、一時マクロを定義 \ifx\temp\empty% % \empty は他の言語でいえば空文字列に相当 } %%% 文字列比較をするマクロ \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} %%% 章・節・項・目のタイトルデザインを変更 %\usepackage{starter-section} % 古いマクロ定義 \usepackage{starter-heading} % 新しいマクロ定義 %%% プログラムコードやターミナル \usepackage{starter-codeblock} %%% ノート \usepackage{starter-note} %%% 目次 \usepackage{starter-toc} %%% 目次やリンクの色を指定する。印刷用なら黒にする。 \hypersetup{colorlinks=true,linkcolor=starter@linkcolor,urlcolor=starter@linkcolor} %\hypersetup{colorlinks=false} % リンク機能をオフにする %%% 「@{ ... }」を太字のゴシック体にする(「@{ ... }」は明朝体のまま)。 \renewcommand{\reviewstrong}[1]{\textbf{\gtfamily\sffamily #1}} %%% 「@{ ... }」をゴシック体にする。 \renewcommand{\reviewem}[1]{{\gtfamily\sffamily #1}} %%% 「@{ ... }」(取り消し線)が効くようにする。 %%% (See https://qiita.com/takahashim/items/5c1af2941a1ce9fa5919) \usepackage{ulem} \renewcommand{\reviewstrike}[1]{\sout{#1}} %\usepackage{jumoline} %\renewcommand{\reviewstrike}[1]{\Midline{#1}} % \seqsplit{}と相性が悪い? %%% 目立たせない(「@{}」の反対) \newcommand{\starterweak}[1]{% \textcolor{gray}{#1}% } %%% ふきだし説明の文字色をグレーに \renewcommand{\reviewballoon}[1]{% \textcolor{gray}{←#1} } %% 「@{...}」を薄いグレーで囲む %% (ただし章や節のタイトル、および各種キャプションでは囲まない) \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}% }% }% } %%% ルビをふるのに必要(例:@{漢, おとこ}) \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}% } %%% @{} や @{} で、節や項へのリンクを作成 %%% (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}% % 深さ