いものやま。

雑多な知識の寄せ集め

ラジオ体操のススメ。

f:id:yamaimo0625:20191016140412p:plain

最近、朝起きてラジオ体操をしているのだけど、これがいい感じだったのでオススメしたい。

ラジオ体操、なめてない?

ラジオ体操といえば、誰もが子どもの頃にやったことがあるはず。
そして「ダルいなぁ〜」とか「こんなの運動にもならないよ」と思いながら渋々やっていた人も多いと思う。

けどね、大人になった今なら分かる。

ラジオ体操、なめたらアカン。

これ、鈍った体にはメチャクチャ効く・・・

子どもの頃には「こんなのちょいと体動かしてるだけで運動でもなんでもない」と思ってたけど、大人になってやってみると体のいろんな部分を動かし伸ばしているのが身に染みて分かる。。。
正直ビックリした。

嘘だと思うなら、以下の動画を見ながら実際にやってみて欲しい。(※動画は鏡写し)

懐かし〜と思うと同時に、体がめっちゃ鈍ってて、ラジオ体操でかなりほぐれることが分かるはず。
特に、普段デスクワークで座りっぱなしだとその実感の度合いも強いと思う。

「いや、全然ラクショウだったし」という人は、素晴らしい。
まだまだ体が若い証拠。

ただね、年取ると体は一気に衰えるので、そういった人もラジオ体操のようなお手軽な運動を地道にやっていった方がいいと思う。
いや、自分自身、ここまで体が衰えるものかと驚いてるから・・・
まだ30代なんだけどなぁ・・・

毎朝続けるために

さて、ラジオ体操も一回やって終わりだと微妙なので、毎朝続けたいところ。
けど、継続するのはなかなか難しいわけで。

そこで頼るのが、やはり「仕組みの力」
意志の力だけでやろうとしてもなかなか続かないので、続けるための仕組みを用意してあげるのがいい。

夏休みのラジオ体操ならスタンプ帳とかが定番だけど、それと同じようなことを今はアプリで出来る。
「毎朝体操」というアプリがいい感じだった。

毎朝体操

毎朝体操

  • 有限会社 来栖川電算
  • ヘルスケア/フィットネス
  • 無料

使い方は簡単。

  1. アプリを起動
  2. やる体操を選択
  3. スマホを持ったまま体操する

このスマホを持ったまま体操するというのが面白くて、なんと加速度センサを使って体操の採点をしてくれる
どれくらい正確に判定できてるのかはよく分からないけど、終わったあとに点数が表示されるので、高めの点数が出てくれるとちょっと嬉しいw
カラオケの採点みたいなものと思うといいかも。
やっぱり点数が出るとそれだけで楽しさが増してやる気が出てくる。

あと、体操をすると記録されて(アプリ内の)カレンダーにスタンプが押される。
カレンダーがスタンプで埋まっていくのを見るのは嬉しいw
(ただ、なんかバグがあるのか、スタンプが消えることが・・・これ、すごく悲しいので早く修正されて欲しい)

他にもトロフィーという名のアチーブメントがあって、ある体操で満点を出すとトロフィーがもらえたり、季節に応じたトロフィーがもらえたり。

それに、イベントも定期的に行われてて、体操の点数で順位が出たりする。
(なんかイベント参加の賞品としてポイントがもらえて、そのポイントでお買い物ができたりもするっぽいのだけど、それはまだ試せてない)

こんな感じで続けるための仕組みがいろいろ用意されている。

体操の種類

用意されている体操は、以下:

  • ラジオ体操第一
  • ラジオ体操第二
  • ラジオ体操第一 + 第二(二つ続けてやる)
  • アクティブ体操(これはよく知らない・・・)

権利関係なのか、ラジオ体操の音源自体は収録されてないので、これらの体操を以下の5パターンで実施できるようになっている:

  • YouTubeの動画をスマホで流しながら行う
  • 男性インストラクターの音声に合わせて行う(音楽は流れない)
  • 女性インストラクターの音声に合わせて行う(音楽は流れない)
  • 無音で外部の音源に合わせて行う
  • スマホ内の音源に合わせて行う

オススメは無音で外部音源を使う方法か、スマホ内の音源を使う方法。
(音楽が流れないのはやっぱり寂しい)

たとえば、YouTubeにラジオ体操第一/第二の動画があるので、それをパソコンなどで流しながらその前で運動するとか。
(※スマホYouTubeの動画を流す方法だと、スマホを持ちながら運動するので動画は見れない)

あるいは、iTunesなどでラジオ体操の音源を買えるので、それをスマホに入れて使うといい。

ラジオ体操 みんなの体操 - Single

ラジオ体操 みんなの体操 - Single

  • 多胡 肇(指導) 幅 しげみ(ピアノ演奏)
  • サウンドトラック
  • ¥600

自分は後者の方法を使っている。


なお、毎朝ラジオ体操をやるためには当然毎朝ちゃんと起きないといけないわけだけど、それには以前紹介した「SleepTown」を使うといい。

自分の今のルーチンは、

  1. 23時までに「SleepTown」を起動して寝る。
  2. 「SleepTown」の6時のアラームで起きる。→建物が立つ。
  3. いろんなアプリでログインボーナスをゲットしたり周回したり。
  4. 頭がしっかり起きたところで「毎朝体操」でラジオ体操第一 + 第二。

という感じ。
朝ラジオ体操で体をぐっと伸ばせるのがとても気持ちいい。

勉強会とかがあると23時までに家に帰れなくてこのリズムが崩れることがあるけど、そうでないときはちゃんと続けられてるのでいい感じだと思う。
やっぱり「仕組みの力」は強い!

今日はここまで!

TeXで同人誌を作ってみた。(まとめ)

f:id:yamaimo0625:20190918075457j:plain

これまでの各記事は、以下から。


他、同人誌制作まわりの振り返りは以下から:

また、技術書典関連の振り返りは以下から:


宣伝!
『Math Poker Girl』はBOOTHで販売中!
 \TeXで作った書籍の出来を確認してみてね!

今日はここまで!

TeXで同人誌を作ってみた。(パッケージ紹介)

f:id:yamaimo0625:20190918075457j:plain

長かった振り返りも今日で終わりで、最後は使ったパッケージの紹介。

okumacroパッケージ

いろいろ入ったパッケージ。
自分が使った機能はルビと均等割くらい(のはず)。

colorパッケージ

色関係のパッケージ。
今回は\textcolor[gray]で文字の濃さをしていするのにしか使ってない。

\textcolor[gray]{<lightness>}{<text>}で<text>の明るさを<lightness>に出来る。
この値がちょっと分かりにくいのだけど、0が一番暗くて真っ黒になり、1が一番明るくて真っ白になる。

ascmacパッケージ

文章に枠をつけるのに使った。

\begin{screen}
ここが枠に囲まれる。
\end{screen}

\begin{itembox}[l]{タイトル}
タイトル付きの枠で囲いたい場合はitemboxを使う。
オプションはタイトルの位置の指定。
(l: 左、c: 中央、r: 右)
\end{itembox}

他にもメモ帳みたいな枠を使ったり影付きの枠を使ったり出来る。
網掛けなども可能。

fancyboxパッケージ

トランプの記号を出すために\ovalboxを使った。

なお、ascmacパッケージにも\keytopというマクロがあり、それで出来ればよかったんだけど、使ってみたら微妙だったのでfancyboxパッケージを使うようにしている。

enumerateパッケージ

enumerate環境でカウンターの表示形式を簡単に変えることが出来るようになる。

\begin{enumerate}[A.]% カウンターの表示がA., B., ...となる
  \item ... % A. ...と表示される
  \item ... % B. ...と表示される
\end{enumerate}

表示形式としてはA(A, B, ...)、a(a, b, ...)、1(1, 2, ...)、I(I, II, ...)、i(i, ii, ...)が指定できるみたい。

paralistパッケージ

内容としては列挙なんだけど、別行組にしたいわけではない場合、このパッケージを使うといいみたい。

ハイカードになるのは、
\begin{inparaenum}[(1)]
    \item ランクが同じカードが1枚もなく、
    \item ランクが連続している5枚のカードがなく、
    \item スートが同じ5枚のカードがない、
\end{inparaenum}
という条件をすべて満たしているとき。

という感じで使った。

multicolパッケージ

部分的に多段組にしたいいときに使える。

\begin{multicols}{3}
ここが3段組で組まれる。
\end{multicols}

なお、jlreqなどで縦組にするとエラーが出ることがあるっぽい。
その場合、platex-toolsのpxmulticolパッケージを使ってやるとよさそう。

longtableパッケージ

複数ページに分ける必要のある表を書くことが出来る。

使い方は説明がちょっと大変なので省略・・・
texdoc参照。

diagboxパッケージ

表で斜線を引くのに使った。

同じ機能を持った有名なパッケージはslashboxというのがあるみたいなんだけど、(diagboxのドキュメントを読む限り)ライセンスに問題があってTeX Liveでは使えないらしい。
(ちゃんとは確認してない)

\diagbox{<item1>}{<item2>}とすることで、セルに斜め線を引いて引数で指定した内容が入ってくれる。

multirowパッケージ

表でセルの縦結合を行うためのパッケージ。

\multirow{2}{*}{...}みたいにすることでセルを縦に結合できる。
詳細はドキュメント参照。

lscapeパッケージ

ページを90度回転することが出来る。
これによって幅の広い表を1ページに収まるようにしたり出来る。

\begin{landscape}
90度回転したい内容を書く。
\end{landscape}

パッケージの紹介は以上。

宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(マクロ)

f:id:yamaimo0625:20190918075457j:plain

今日は自分が定義したマクロを軽く紹介。

小物

まずは簡単なものから。

% 空行
\newcommand{\emptyline}{\vspace{\baselineskip}}
% 三点リーダ
\newcommand{\santen}{$\cdots\cdots$}
% 倍角ダーシ
\newcommand{\dash}{------}

このあたりは必要ならあとで定義を変えられるようにマクロにしておいた。
最後までこのままで修正しなかったけど。

三点リーダと倍角ダーシについては、ホントは修正した方がよさそう。
というのも、\cdotsによる三点リーダ \cdots)と全角の三点リーダ(…)ではベースラインの関係で微妙にズレがあるように思うから。
横書きの場合はあまり気にならないけど、縦書きの場合はかなり気になる。
倍角ダーシについても同様で、---でのemダーシ(TeX記法で出せない・・・)と全角ダーシ(—)だと高さにズレが。

なお、全角ダーシを2つ並べて倍角ダーシにしようとするとフォントによっては間に隙間が入ってしまう問題があって、それに対処するためにokumacroパッケージでは\−−というマクロが用意されているんだけど、なんで見分けのつきにくい横棒をマクロ名に入れたのか・・・
長音(ー、U+30FC)なのか全角ダーシ(—、U+2014)なのか水平線(―、U+2015)なのかさっぱり分からない。

トランプ関連

トランプ関連の表現をするために以下のマクロを定義した:

% スート
\newcommand{\spadeBlack}{}
\newcommand{\heartBlack}{}
\newcommand{\diaBlack}{}
\newcommand{\clubBlack}{}
\newcommand{\spade}{\textcolor[gray]{0.1}{\spadeBlack}}
\newcommand{\heart}{\textcolor[gray]{0.6}{\heartBlack}}
\newcommand{\dia}{\textcolor[gray]{0.45}{\diaBlack}}
\newcommand{\club}{\textcolor[gray]{0.25}{\clubBlack}}

% トランプ(9sやTdと指定する)
\def\internalCardH#1#2{%
    \if#2s\ovalbox{\hbox to 2.1zw{#1\spade}}\fi%
    \if#2h\ovalbox{\hbox to 2.1zw{#1\heart}}\fi%
    \if#2d\ovalbox{\hbox to 2.1zw{#1\dia}}\fi%
    \if#2c\ovalbox{\hbox to 2.1zw{#1\club}}\fi%
    \if#2?\ovalbox{\hbox to 2.1zw{??}}\fi%
}
\def\internalCardHBlack#1#2{%
    \if#2s\ovalbox{\hbox to 2.1zw{#1\spadeBlack}}\fi%
    \if#2h\ovalbox{\hbox to 2.1zw{#1\heartBlack}}\fi%
    \if#2d\ovalbox{\hbox to 2.1zw{#1\diaBlack}}\fi%
    \if#2c\ovalbox{\hbox to 2.1zw{#1\clubBlack}}\fi%
}
\newcommand{\cardH}[1]{\internalCardH#1}    % 水平
\newcommand{\disabledCardH}[1]{\textcolor[gray]{0.8}{\internalCardHBlack#1}}    % 水平(無効状態)

これで\cardH{9s}とか\cardH{Td}とか書くだけで本文に出てきたようなトランプマークを出すことが出来る。

なお、濃さを変えるために\textcolorを使っていて、これはcolorパッケージが必要。
また、角丸の矩形を書く\ovalboxを使うのにfancyboxパッケージを使っている。

あと、スートはamsmathで出力することも出来たんだけど、フォントが微妙だったのでamsmathは使わずにUnicodeで普通に指定している。

そしてこのマクロを説明しようとすると、うーん、難しい(^^;
 \TeXのマクロってラムダ計算での関数適用(β-簡約)をベタッとやってる感じなんだよね・・・
もちろん副作用があるので適用順が重要で、それを制御するために\expandafterとかいろいろある感じ。

二重丸の記号

他にも記述量を減らすために細かいマクロは定義してるけど、有益そうなのはこれ。
二重丸の記号を出す方法。

二重丸の記号はamsmathを使えば\circledcircで出力できるんだけど( \circledcirc)、これが微妙だった。
大きな丸\bigcirc \bigcirc)の内側に小さな丸が書かれている感じにしたかったんだけど、丸のサイズが違っていて・・・

そこで用意したのが次のマクロ:

% 二重丸の記号
% \ooalignで重ねる。\crcrは重ねるものの区切り。
\newcommand{\doublecirc}{{\ooalign{$\bigcirc$\crcr\hss$\circ$\hss}}}

これを使うと大きな丸に重なるように小さい丸が出力されていい感じの二重丸になる。
(これもTeX記法で出せない・・・)

なお\ooalign{\ooalign{<item1>\crcr<item2>}}とすると<item1>の上に<item2>を重ねることが出来る。
今回は重ねる丸(\circ)の両側を\hss(バネと考えるといい)で挟むことで下になっている大きな丸(\bigcirc)のちょうど中央に重なるようにしている。

リード文

各章のはじめに引用文を書いたのだけど、それは以下のようなマクロを使った:

% リード文
\newcommand{\lead}[2]{% #1: 引用元, #2: 引用文
    \vtop to 10\baselineskip{% 10行分の高さを確保
        \begin{flushright}
            {\small {\bfseries #2}\par\dash#1}
        \end{flushright}
    }}

なお、そういうのを本当はエピグラフというらしい。
さらにはそのためのパッケージもあったみたい・・・

会話文

会話文はいろいろ厄介なことが多い。

まず、改段落されているのに行頭にインデントは不要。
けど、鉤括弧(「)のサイズは全角の半分(二分)なので、何もしないとそれ以降が半角ずつ上にズレてしまう。
そこで、会話文の鉤括弧の前にはインデントの代わりに半角(二分)のスペースを普通は入れる。

それを簡単に出来るようにしたマクロがこれ:

% 会話
\newcommand{\talk}[1]{\noindent\kern0.5zw\inhibitglue\ignorespaces#1}

これで例えば

\talk{で、どうだい?
ポーカーをやってみないかい?
ルールはもちろん、数学的な根拠にもとづいた理論をキミには教えようじゃないか。
もちろん金銭を要求したりなんかはしないさ}

とすればいい感じに鉤括弧が入ってくれる。

なお、作文の授業とかだと鉤括弧の終わりに句点を書くように指導されるのが普通だけど(その場合、閉じ括弧と句点を作文用紙の同じ1マスに書く)、小説などをみると分かる通り、普通は句点は書かない。

あと、上記の例で疑問符(?)の後ろに半角スペースを入れてないけど、これはotfパッケージを使ってるから。
otfパッケージが自動でスペースを入れてくれる。
(もし入れたくない場合は\inhibitglueを直後に置く)
otfパッケージを使わない場合、自前で半角スペースを入れないとダメなので注意。

さらに加えて書くなら、jlreqドキュメントクラスを使う場合、オプションでこのあたりの挙動を変えることが出来る。

まとめ環境

各節の終わりにまとめを書くために、summary環境というのを用意した:

% まとめ
\newenvironment{summary}
    {\begin{itembox}[l]{\textbf{\thesection まとめ}}
        \setlength{\leftmargini}{1.3zw}
        \setlength{\leftmarginii}{1.3zw}
        \setlength{\leftmarginiii}{1.3zw}
        \renewcommand{\labelitemii}{$\circ$}
        \renewcommand{\labelitemiii}{$-$}\ignorespaces}
    {\end{itembox}}

itembox環境を使ってまとめを角丸の矩形で囲むようにしている。
また、箇条書きのインデント幅や記号を変えたり。

確認問題

確認問題も番号を自分で振るのはアレだと思ったので新しくカウンタを用意して自動で番号が振られるようにした。
また、ラベルをつけておくことで解答側から参照できるようにしている:

% 確認問題
% 引数は問題名で、ex:(問題名)で参照可能
\newcounter{exercise}[chapter]  % 章でリセット
\renewcommand{\theexercise}{\the\value{chapter}.\the\value{exercise}}
\newcommand{\exercise}[1]{
    \refstepcounter{exercise}\label{ex:#1}%
    \noindent
    \textbf{問題\theexercise}\hspace{1zw}\ignorespaces}
\newcommand{\answer}[1]{
    \noindent
    \textbf{解答\ref{ex:#1}}\hspace{1zw}\ignorespaces}

これは以下のように使う:

% 問題を出すとき
\exercise{term}
以下の用語の意味を答えよ。
(意味が複数ある場合、すべて答えよ)
...
% 解答を書くとき
\answer{term}
以下の通り:
...

自分で用意したマクロはこんなところ。
 \TeXもマクロを組むのがもっと簡単ならねぇ・・・

それはさておき、宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(ハイパーリンク)

f:id:yamaimo0625:20190918075457j:plain

今日は電書版でリンクをつける方法について。

なお、印刷用と電書用の分離については以下を参照:

hyperrefパッケージ

ファイル内でリンクによる移動ができるようにするにはhyperrefパッケージを使う。
ただし、和文だと問題があるようなので、pxjahyperパッケージも一緒に使うようにする。
そして、リンクの色の設定などは\hypersetupでやる。

自分は以下のようにしてみた:

% 目次や索引、参照にリンクをつける
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}  % 日本語環境での問題を解決するらしい
\hypersetup{colorlinks=true,%
    linkcolor=blue,%
    citecolor=blue,%
    filecolor=blue,%
    urlcolor=blue}

これで目次や索引、参照にリンクが入り、ページ間の移動が簡単に出来るようになる。
さらには、PDFに目次も入ったり。

あと、『Math Poker Girl』では調査不足で出来なかったんだけど、オプションを指定すればPDFにタイトルや著者名などの情報も入れられたみたい:

\hypersetup{
    ...,
    pdftitle=xxx, % PDFのタイトル
    pdfauthor=xxx, % PDFの作成者
}

なお、hyperrefパッケージはなんか悪名も高いパッケージらしく、もしかしたら何かレイアウトがおかしくなってたりするかも。
その場合は調査が必要・・・
自分の場合、幸いにも何も問題は起きなかった。

外部リンク

リンクに関してもう一つやったことがあって、それは外部リンクの設定。

印刷用だとリンクが貼られていても何も嬉しくないけど、電書用の場合はリンクからWebページなどにジャンプできるようになっていた方が嬉しい。
なので、共通部でマクロを用意しておいて、電書用ではリンクを貼るようにマクロを上書きするようにした。

まず、共通部で用意したマクロは以下:

% URL表記(印刷用/電書用で切り替えられるようにするため)
\newcommand{\linkurl}[1]{\texttt{#1}}
\newcommand{\linktext}[2]{#1}

\linkurl{https://www.yamaimo.dev/}とか\linktext{\texttt{@yappy0625}}{https://twitter.com/yappy0625}と使う。

そして、電書用のソースでは以下のように定義を上書き:

% URLにリンクをつける
\renewcommand{\linkurl}[1]{\url{#1}}
\renewcommand{\linktext}[2]{\href{#2}{#1}}

これで印刷用は単に文字が出力され、電書用はリンクのついた文字が出力されるようになる。


宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(表紙/裏表紙の画像)

f:id:yamaimo0625:20190918075457j:plain

今日は電書版について表紙/裏表紙の画像を載せる方法について。

印刷用では表紙/裏表紙は別ファイルとして作成するのでPDFに入れる必要はないんだけど、電書版の場合は入ってないと格好がつかない。
けど、単に画像を貼ろうとすると本文領域のところに出力されてしまうので都合が悪い。
そこで、紙面いっぱいに画像を貼る方法が必要になってくる。

なお、印刷用と電書用の分離については以下を参照:

wallpaperパッケージ

紙面いっぱいに画像を貼るにはwallpaperパッケージを使えばいい:

これは背景画像を貼るためのパッケージなんだけど、空のページに背景画像として表紙や裏表紙を指定すれば目的を達成できる。

表紙/裏表紙の表示

自分の場合、トリム済みの表紙/裏表紙の画像をそれぞれcover1.png、cover4.pngとして用意して、以下のように表示した:

% 表紙 1, 2
\thispagestyle{empty}
\ThisCenterWallPaper{1}{cover1.png}
\null
\cleardoublepage

% 本文
\input{contents}

% 表紙 3, 4
\cleardoublepage
\pagestyle{empty}
\null
\clearpage
\ThisCenterWallPaper{1}{cover4.png}
\null

ページスタイルをemptyにしたあと、\ThisCenterWallPaperを使って紙面中央に表紙/裏表紙を出すようにしている。
(引数の1は画像サイズの倍率)

縦組での注意事項

『Math Poker Girl』では関係ないんだけど、縦組の本でこの方法を使って表紙/裏表紙を出そうとしたら、エラーになった。

! Incompatible direction list can't be unboxed.
\AtBeginShipoutAddToBox ...box \AtBeginShipoutBox 
                                                  \kern 0pt}\AtBegShi@restor...

調べてみるとwallpaperパッケージが(間接的に)atbegshiパッケージというのを使っていて、これが縦組に対応していないのが原因のようだった。
この問題に対処するためにplatex-toolsでpxatbegshiパッケージが用意されている。

なので、縦組みで使う場合は以下のようにした方がいい:

% ページいっぱいの画像を入れる
\usepackage{pxatbegshi} % 縦組だとatbegshiでエラーが出るのを回避する
\usepackage{wallpaper}

加えて、\cleardoublepageが歴史的経緯なのか奇数ページまで改ページするのではなく偶数ページまで改ページするようになっている。
(つまり開いたときに右側になるページまで改ページする;左綴じだと奇数ページで右綴じだと偶数ページ)

これは都合が悪いので、\cleardoublepageではなく(使えるのなら)\cleartooddpageを使うといい。
jlreqドキュメントクラスを使う場合は、次のようにする:

% 表紙 1, 2
\thispagestyle{empty}
\ThisCenterWallPaper{1}{cover1.png}
\null
%\cleardoublepage % 右綴じの場合、偶数ページに改ページしてしまう
\cleartooddpage[empty] % 奇数ページまで改ページ

宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(隠しノンブル)

f:id:yamaimo0625:20190918075457j:plain

今日は隠しノンブルの出力について。

なお、印刷用と電書用の分離については以下を参照:

隠しノンブルとは

まずノンブルというのはページ番号のこと。

ただ、ページ番号は途中までi, ii, ... として、途中でリセットして1, 2, ... としたりすることがある。
これだと全体を通してのページ番号が分からないので、印刷所は製本で困ってしまう。

そこで入れるのが隠しノンブル。
読者には見えない位置(例えば紙を糊付けする位置)に通しのページ番号を入れておく。
そうすれば印刷所も安心して作業を行える。

ちなみに、ネット上の情報だと断ち切りの外でもOKみたいに書かれていることがあるけど、実際には裁断後に残ってないとダメ。
あと、トンボと違って(隠し)ノンブルは必須と思っていいと思う。
ねこのしっぽさんも日光企画さんも「通しでノンブルを入れるように」とされている。
(隠しである必要はない)

自分の場合はページスタイルのフッタを使って隠しノンブルを出すようにした。

ページスタイルの変更

フッタを使って隠しノンブルを出すことにしたので、まずページスタイルの変更が必要。

以下のようにして仕込みを入れておいた:

これで\oddNombre\evenNombreを適切に再定義すれば隠しノンブルが出力される。

通しのページ番号の取得

\oddNombre\evenNombreの再定義で必要となるのが、通しでのページ番号。
普通にページ番号を出力する\thepageだと通しでのページ番号は得られない。

そこで使ったのがpagesltsパッケージ。
このパッケージを使うと\theCurrentPageで通しでのページ番号を取得できる。

このパッケージは使い方にちょっとクセがあって、以下のようにする:

\documentclass[...]{...}

% パッケージの指定
\usepackage{pageslts}

\begin{document}

% ページカウントのスキーム設定
\pagenumbering{arabic}

% ここに本文

\end{document}

このスキーム設定がないとエラーになる。
ここでarabicとしているので、通しのページ番号は普通の数字(アラビア数字)で出力される。

出力コマンドの定義

あとは\oddNombre\evenNombreの定義。
以下のようにした:

% 隠しノンブル
\newcommand{\nombre}{{\tiny \textcolor[gray]{0.3}{\theCurrentPage}}}
\renewcommand{\oddNombre}{\rlap{\kern-18.4mm\nombre}}
\renewcommand{\evenNombre}{\rlap{\hskip\textwidth\hbox to 18.4mm{\hfil\nombre}}}

まず\nombreは小さく薄い文字で現在のページ番号を出力するよう定義したコマンド。
薄くするためにcolorパッケージの\textcolorを使っている。

そして、\rlapを使うことでうまいこと出力している。
このコマンドは「カーソルを今の位置に止めたまま引数の内容を出力する」というもの。
(ちょっとややこしい・・・)
奇数ページならカーソルをフッタの開始位置に止めたまま-18.4mmほど戻った場所に現在のページ番号を出力している。
偶数ページも同様にカーソルをフッタの開始位置に止めたままテキスト幅進めて18.4mmの箱を用意してその箱の中で右寄せになるように現在のページ番号を出力している。
このあたりは \TeXのボックスについての知識がちょっと必要・・・
(でもよくよく考えると、フッタに隠しノンブルしか出力してないから\rlap使った意味あまりないような・・・)

まぁ、何はともあれ、これで隠しノンブルの出力が出来た。


宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!