mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

「なんかつらい…」を減らすために頼んでみた食べ物・飲み物

2020年2月末からWFH(在宅勤務)がはじまって、もうそろそろ2ヶ月が経とうとしてる。 日によって「特に理由はないけどなんかつらい…」という気持ちになるので、そういうのが続かないように、いくつか食べ物や飲み物を頼んでみたよ、という記録。*1

スナックミー頼んでみた

隔週でおやつが8種セレクトされて届く、というおやつサブスク。1回分が1,980円で送料無料。 前から気になってたので試してみた。

lp.snaq.me

結果はこんな感じ。

でも「わー、おやつ8種届いたー!」という喜びはあったので、試してみて良かったと思う。

好きな紅茶をわんさか頼んでみた

アフタヌーンティーの水出しアイスティーを何種類か買ってみた。

好きな飲み物がいつでも飲めるのはよき。 シャルドネダージリンは自然な香りと味で美味しかったので、残り2種も楽しみー。

www.afternoon-tea.net

コーヒーを頼んでみた

こんな感じで聞いたら、色んな方から「猫廼舎」と「チモトコーヒー」をお勧めされた。インターネットはやさしい。

猫廼舎」には「コーヒー豆5種類味見セット」、「チモトコーヒー」には「8種飲み比べセット」があって、どちらも楽しんでいます。ありがたや。

巣ごもりおやつに銀座ウエスト頼んでみた

デパ地下でよく見る洋菓子の老舗!銀座ウエストで普段なら買わない1枚200円!というお高めのクッキーをしこたま買ってみた。

ginza-west.online

砂糖とバターの味がして美味しい…つらい気持ちに砂糖とバターはてきめんに効くから好き…!

ばら売りしてくれて本当にうれしい。これは本当に買って良かった。(太るけど)

作り置きおかず宅配サービスを頼んでみた

これを読んだらめちゃくちゃ美味しそうだったので頼んでみた。

note.com

「野菜と肉おかずセットお一人様5000円8品(送料別)」を2人分頼んで、支払いは11,200円でした。 外食や出前って続けて食べると「疲れる」んだけど、こういう作り置きおかずは、親に持たせて貰ったご飯っぽくて疲れないのでよいなー。

届いたのはこんな感じ。

ちょこちょこ食べてるけど、新宿のデパ地下で買うお惣菜っぽい。「既にできあがってるおかず」が冷蔵庫にあると、「次のご飯どうしよ-」っていうのからひととき解放されるので、ストレスは減った気がする。

らでぃっしゅぼーやの「お試しセット」頼んでみた

まとめ買いすることで、スーパーマーケット行くのも2週間に1回くらいで済むようにしてたんだけど、状況が悪化していくのを見て「行かなくて済むなら行かない方がいいかなー」と思って、らでぃっしゅぼーや(宅配スーパー)のお試しセットを頼んでみた。

www.radishbo-ya.co.jp

高い!けど!今はお金で安全を買うのだ…家から出ないのだ…という気持ちで、定期申し込みもしました。 心配しすぎなのかもしれないけど「心配しすぎだったね」で済むならそれでいいか、と思って判断を安全側に倒しています。

どこまでやるべきか、今は分からないけど、その判断を迷ってることがもうストレスだったので、「安全側に倒すぞ」って決めてしまったことも、つらさを軽減する効果があったように思う。

そんな感じで、「なんかつらい…」を減らすために頼んでみた食べ物・飲み物でした。

最後にこちら、ランチに旦那様が作ってくれた仔羊の香草パン粉焼きです。大好きー。

f:id:mochikoAsTech:20200419180130j:plain
仔羊の香草パン粉焼き

*1:ちなみにWFHは設備整えてめちゃくちゃ快適にやってるので、それはそれで別に書きたい

みんなで確認しておくのはどうでしょう?大切なことだと思うんです!

SHIROBAKO Advent Calendar 2019の12日目です。

SHIROBAKOは定期的に見返しているので、最初に見たのはいつごろだったんだろう…?と振り返ったところ、2015年でした。
誰かに勧められて見始めたような気がするけど、もう何も思い出せない。


全力で走るために、ここで立ち止まって前提を共有しよう

#02 あるぴんはいます!」で、ただでさえスケジュールが押しているのに、監督が「あるぴんが最初に出会ったのはお姉さんだったわけダーッ!」みたいなことを言い出して、なんでそういう設定を後から出してくるんだよ、というシーンがあります。

仕事をしていると、こういう場面に出くわすことはままあります。

聞いてない情報が突然出てくる。もしそれを取り込むなら、今やってたところも直さなきゃいけない。なんで今さらそういうこと言い出すんだよ!どうする?直すの?直さないの?とにかく決めてよ!これ以上の後出しはやめろよな!と怒りで体温が上がってしまうような場面です。

普通なら直すか直さないかを決めておしまいですが、みゃーもりはちゃんと、このトラブルの元になった状況そのものを解決しようとします。

そこで出てくるのがこの台詞です。

今回の作画を直すとして、作業に入る前に、もっかい「あるぴん」や「えくそだすっ!」のキャラについて、みんなで確認しておくのはどうでしょう。
大切なことだと思うんです。

これってつまり「期限に向かって全力で走るために、ここで立ち止まって前提を共有しよう」ということだと思います。

リリース日や入稿の〆切といった「期限」が迫っていると、とにかく早く走りたくなりますが、情報や解釈の共有をしておかないと、結局後出しや迷いが妨げになって全速力で走れなくなります。

ひとりのキャラクター、ひとつのルール、ひとつの仕様、みんなで「同じことを考えている」と思っていても、実は細部で解釈が違った!ということはよくあります。

恐らくここで「あるぴん」や、「えくそだすっ!」のキャラについて、「いちごショートが好き」とか「良くも悪くも脇が甘い」みたいなイメージの共有をせずに進んでいたら、もっと先の話数でさらなる後出しが発生して、ぷるキューに代わる新たなネットスラングが生まれてしまう世界線があったように思います。

みゃーもりはすごい!えらい!

SHIROBAKO好きに勧める本

ちなみにこういう「好きなものに対するひたむきで純度の高い情熱」にぐっとくる人は、辻村深月の「ハケンアニメ」という小説もきっとぐっとくるはず。

お勧めだー。

adventar.org

取扱説明書そっくりな「テクニカルイラストを描く」はいいぞ!

本記事は「【推し祭り】技術書典で出会った良書 Advent Calendar 2019」の5日目の記事です。

adventar.org

どの本を推すか、技術書典で買った本を全部並べて考えてみたけど、ここはやっぱりいちばん好きな本を推したい。 ぬっきぃさんの「テクニカルイラストを描く」だ!

nukkey2017.booth.pm

f:id:mochikoAsTech:20191205085933j:plain
「テクニカルイラストを描く」の表紙。BOOTHより引用

「テクニカルイラストを描く」ってどんな本なの?

取扱説明書に載ってるイラストの描き方を解説した本!

例えば家電を買うと、それに取扱説明書が付いてくる。「取扱説明書」という時点で既に脇役なのに、さらにその取扱説明書のイラストの描き方を説明した本。脇役の脇役っぽくてとてもよい。

f:id:mochikoAsTech:20191205092724j:plain
「テクニカルイラストを描く」の目次。BOOTHより引用

どこが推せるポイントなの?

  • すごく取説っぽい装丁になっているところ
    • 横長の薄い冊子で、表紙もサイズも手触りもすごく取説っぽくてきゅんとする
    • 買ってきた加湿器の段ボールを開けたらそこに居そうで最高
  • 苦労するポイントの話や裏話が面白い
    • 線の太さにルールがあるとか
    • 見えない部分をどう表現するのかとか
    • 向きを矢印で説明するときの描き方とか
  • 組み立て方を分かりやすく伝えるために、色んな創意工夫がされてたんだなと気付く
    • これ読むと、押し入れから取説を出して改めて見たくなる
    • そうか、取説って人が書いてるんだよなという当たり前の事実に驚く
    • そういえばレゴの組み立てマニュアルって文章なしでイラストだけだな!と驚いたりする

読むとなんかの役に立つのか?

  • あなたが取説を書く人でなければ、今すぐ役に立つような知識は得られないと思うよ!
    • でもすごく面白いよ
    • 「面白い」というだけで十分読む理由になるので安心されたい
  • ただたのしく読んだだけなのに、後々になって「そういえば役に立ってるかもな」と思う本もあるので、すべての本は尊い
    • 守破離という言葉のように、まずは「基本ルール」を守って描いていて、その上にさらなる工夫があるんだなーと思ったのでした

ダウンロード版もあるけど、ぜひ冊子版を買って欲しい。(ほんとに取説そっくりなので) nukkey2017.booth.pm

HTTPステータスコードは「数字だけ」と「数字と文字」のどちらが返されるのか?

これは何?

  • 分からんぞ?ってなって、調べて、多分こうでは?っていうところまで辿り着いたけど、本当かどうかはまだ分かってない話

何が分からなかったの?

  • ウェブサーバにリクエストを投げたとき、レスポンスでHTTPステータスコードが返ってくる(ここまでは分かってるつもり)
  • 返ってくるHTTPステータスコードは「200 みたいな数字だけ」なのか、それとも「200 OK みたいな数字と文字の両方」なのか?が分からなかった

実際にリクエストを投げてみた

WSL(Ubuntu 18.04.1 LTS)からwww.yahoo.com

  • HTTP/2200 が返ってきた
$ curl --head https://www.yahoo.com/
HTTP/2 200
date: Fri, 15 Nov 2019 00:54:16 GMT
strict-transport-security: max-age=31536000
server: ATS
cache-control: no-store, no-cache, max-age=0, private
content-type: text/html
content-language: en
expires: -1
content-security-policy: sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=&partner=;
x-frame-options: SAMEORIGIN
x-xss-protection: 1; report="https://csp.yahoo.com/beacon/csp?src=fp-hpkp-www"
expect-ct: max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
content-length: 12

さくらのVPSCentOS release 6.10)からwww.yahoo.com

  • HTTP/1.1200 OK が返ってきた
$ curl --head https://www.yahoo.com/
HTTP/1.1 200 OK
Date: Fri, 15 Nov 2019 00:56:22 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Server: ATS
Cache-Control: no-store, no-cache, max-age=0, private
Content-Type: text/html
Content-Language: en
Expires: -1
Content-Security-Policy: sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=&partner=;
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; report="https://csp.yahoo.com/beacon/csp?src=fp-hpkp-www"
Expect-CT: max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
Content-Length: 12

WSL(Ubuntu 18.04.1 LTS)からgoogle.co.jp

  • HTTP/2301 が返ってきた
$ curl --head https://google.co.jp/
HTTP/2 301
location: https://www.google.co.jp/
content-type: text/html; charset=UTF-8
date: Fri, 15 Nov 2019 01:13:35 GMT
expires: Sun, 15 Dec 2019 01:13:35 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 222
x-xss-protection: 0
x-frame-options: SAMEORIGIN
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

さくらのVPSCentOS release 6.10)からgoogle.co.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl -I https://google.co.jp/
HTTP/1.1 301 Moved Permanently
Location: https://www.google.co.jp/
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Nov 2019 01:20:48 GMT
Expires: Sun, 15 Dec 2019 01:20:48 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 222
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

WSL(Ubuntu 18.04.1 LTS)から7net.omni7.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl --head https://7net.omni7.jp/
HTTP/1.1 301 Moved Permanently
Date: Fri, 15 Nov 2019 01:22:54 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Vary: User-Agent,Accept-Encoding
X-Content-Type-Options: nosniff
Location: https://7net.omni7.jp/top
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: lb.session.osz=!S/mVG1ZlvAacUoPMACvlP+YcZKUCT6QFwxr6nsi2KijB/22G23HZSZLuaeQFyqGCuYKUjqg58TZTxw==;Path=/;Domain=omni7.jp

さくらのVPSCentOS release 6.10)から7net.omni7.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl --head https://7net.omni7.jp/
HTTP/1.1 301 Moved Permanently
Date: Fri, 15 Nov 2019 01:12:17 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Vary: User-Agent,Accept-Encoding
X-Content-Type-Options: nosniff
Location: https://7net.omni7.jp/top
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: lb.session.osz=!jM+NMdGpeetXUnHMACvlP+YcZKUCT/lN+PpuVDXiNJIc+v3UJm4GjwIulP/ofHVwQi+MVSmUXjOfxm0=;Path=/;Domain=omni7.jp

RFCを読んでみた

The status-code element is a three-digit integer code giving the result of the attempt to understand and satisfy the request.
(意訳:ステータスコード要素は3桁の整数で、リクエストに対する結果を示してるよ)

The reason phrases listed here are only recommendations. they can be replaced by local equivalents without affecting the protocol.
(意訳:OKとかMoved Permanentlyとかのreason phrasesはあくまで推奨事項なので、同等の何かに置き換えられるよ)

取りあえず辿り着いた結論

  • 今回リクエストを投げてみた結果だけ見ると、 HTTP/2 だと「数字だけ」、 HTTP/1.1 だと「数字と文字」が返ってきているように見える
  • サーバにリクエストを投げたとき、レスポンスヘッダで何かしらのHTTPステータスコードが返ってくるけど、そのとき200301 のような「数字のみ」が返ってくるのか、200 OK301 Moved Permanently のような「数字と文字」が返ってくるのかは、ウェブサーバ(ApacheなのかNginxなのか)や、プロトコル(HTTP/1.1なのかHTTP/2なのか)や、その上のアプリケーションで何を返してるのかに依るっぽい

誰か教えて

  • HTTP/2 だと「数字だけ」、 HTTP/1.1 だと「数字と文字」が返ってくる、が本当なのか?それとも今回たまたまそういう結果になっただけなのか?
  • RFCで推奨しているのはどっちなのか?

追記

  • 早速りんごさんが教えてくれた
  • わかめさんも教えてくれた

  • というわけで、詳しくはこちらのエントリにありますが、レスポンスヘッダの1行目であるstatus-lineは「HTTPバージョン(スペース)3桁のステータスコード(スペース)reason-phrase」で構成されるけれど、reason-phraseは省略可能、というのがRFC7230(や、改訂前のRFC2616)で定義されているそうですー。

    • status-line = HTTP-version SP status-code SP reason-phrase CRLF

blog.magnolia.tech

さらに追記

  • 高橋カヲルさんも教えてくれた

LINEでテクニカルライターの仕事をはじめました!

という訳で10月初旬からLINEでテクニカルライターの仕事をはじめました。

私も今回お誘いをいただくまで、

  • テクニカルライターという職種があること
  • LINEにはテクニカルライティング専門のチームがあること

をどちらも知らなかったんだけど、あるんです…驚き…!

どんなお仕事なの?は以下にありますが、端的に言うとデベロッパー向けのドキュメントを書くお仕事です。

linecorp.com

無職からいきなり週5フルで働ける気がしなかったので「週3で時短とかいけますか?」と聞いたら即確認&了承してくれて、そういうところも「大きい会社なのに柔軟ですごい…!」という気持ちになりました。

今までインフラエンジニアだったのでテクニカルライターとして働くのは初めてですが、「やったことないけどやってみる」の気持ちで謙虚に頑張るぞー。

ちなみにテクニカルライターは現在も募集中とのことですので、お気軽にご連絡ください。

Re:VIEW2の原稿に色々書き足してRe:VIEW3.2でPDF吐き出したらfootnoteでエラーが出た話

何が起きた?

  • Re:VIEW//footnote を1つ追加したら、エラーが出て docker-compose run --rm review rake pdf が通らなくなった
  • Re:VIEW開発者の@kmutoさんが助けてくれて無事エラーが解消した

どうやったら解消したの?

  • エラーが出たのと同じ章にあるコラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出す

詳しく

  • もともとRe:VIEW2系で書いてた「DNSをはじめよう」の初版原稿があった
  • そこに色々書き足して、改訂第2版はRe:VIEW3.2の環境でPDF吐いてた
  • なんだけど @<fn>{nameSpace} を追加した瞬間にエラーで docker-compose run --rm review rake pdf が通らなくなった
    • footnoteの名前を変えてみたり @<fn>{nameSpace}//footnote[nameSpace][] の位置を変えてみてもだめ
    • エラーメッセージは色々出てたけど、その中に ./domain.tex:651: LaTeX Error: Counter too large. があった
  • うんうん悩んでたらRe:VIEW開発者の@kmutoさんがIssueを投げてくれた github.com
  • Issueから転載すると、こういうことだった
## エラー理由
columnブロック内に//footnoteを入れてしまうと、

- Re:VIEW2では何も考えていなかったので//footnoteをコラムの中に入れるとコラム単位で脚注がa,b,cの振り直しでつき、コラムの外に置くと脚注が「消える」という極めてわかりにくい挙動になる。Re:VIEW3では、column脚注を普通の脚注にするためにちょっと内部で特殊なことをして本文採番と合わせるようにしている(footnotemark+footnotetext)。
- ただし、//footnoteをコラムの中に入れるとa,b,c...というカウントになるが、本文採番に基づくのでおかしなことになる。
- 今回の場合、本文も合わせて …、27、28とカウントしてきて、ここはコラム内なのでabc採番で「28」を表現しようとして、zを超えてしまってcounter too largeエラーになる。

## 対処
脚注本体である `//footnote` はコラムの終わりの後ろに置く。
  • つまりコラム内の注脚の採番がRe:VIEWの2系→3系で変わったことが原因だった
  • コラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出すのがよさげ
    • 章内に注脚なんか5,6個しかないよー、26個を超えることは絶対ないよー、という人はコラム内に書いてても問題なさそう

Dockerを使ってRe:VIEWで本が書きたい!~ステップ3:vvakameさんのDockerイメージで環境構築~

これは何をやりたい人向けのエントリ?

前提

  • 既にDockerが動く環境があること
  • TechBoosterのテンプレートを使った原稿リポジトリがあること

「ステップ3:vvakameさんのDockerイメージで環境構築」の手順

1. Re:VIEWのバージョンを確認しよう

Re:VIEWのGitリポジトリで最新バージョンを確認しよう

ReVIEW-Templateの対象バージョンを確認

一式セットアップ済みのdockerイメージを用意してあるので使ってください。 Dockerがうまく動くようになっている場合、以下のコマンドで細かい準備なしにビルドを行うことができます。
$ docker pull vvakame/review:3.1
  • TechBoosterのひつじさん曰く「動作確認は3.1でしたけど、たぶん3.2でも動く」ということなので 3.2 でも大丈夫そう

config.ymlでバージョンを確認

  • ステップ2で作った原稿リポジトリで、articles フォルダの下にある config.yml を開く
    • 私の場合は C:\Users\mochikoAsTech\Documents\startDNS\articles\config.yml
  • config.yml に書いてある review_version を確認する
    • review_version: 3.0 とあるので「これはRe:VIEW3系に対応した設定ファイルなんだな」と分かる
# この設定ファイルでサポートするRe:VIEWのバージョン番号。
# major versionが違うときにはエラーを出す。
review_version: 3.0

どのバージョンのRe:VIEWを使うか決める

  • ここまで確認したことから、本エントリではRe:VIEW3.2 を使うこととする!

2. vvakameさんのDockerイメージを連れてこよう

Dockerイメージを連れてくる

>docker images vvakame/review
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
>docker pull vvakame/review:3.2
3.2: Pulling from vvakame/review
f5d23c7fed46: Pull complete
021db6e5dcda: Pull complete
771bbc40d6be: Pull complete
1738d9462c97: Pull complete
9c09143aac1c: Pull complete
97ee0730c016: Pull complete
1086092c9acc: Pull complete
a40dfd0b3ecf: Pull complete
8f9d5bd5651d: Pull complete
48e10854c260: Pull complete
7a338c0510db: Pull complete
752184f974ea: Pull complete
Digest: sha256:296a3eb7427d70f1dc581fa6566c1d2a3d45dbc8e0935b6672155b2049769bcf
Status: Downloaded newer image for vvakame/review:3.2
  • 再び docker images vvakame/review を叩く
    • Dockerイメージがいる!
>docker images vvakame/review
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
vvakame/review      3.2                 3168b41bd37d        2 weeks ago         2.04GB

3. Dockerコンテナを使ってPDFを吐き出す

docker-compose.ymlを用意する

  • ステップ2で作った原稿リポジトリで、articles フォルダの下に docker-compose.yml を作る
    • 私の場合は C:\Users\mochikoAsTech\Documents\startDNS\articles\docker-compose.yml
  • 中身はこんな感じ
    • startDNS のところは自分の原稿リポジトリ名に書き換えてね
version: '3'
services:
  review:
    image: vvakame/review:3.2
    volumes:
      - .:/startDNS
    build: .
    working_dir: /startDNS

コマンドを叩いてPDFを吐き出す

  • コマンドプロンプトcd C:\Users\%USERPROFILE%\Documents\原稿リポジトリ名\articles を叩いて、原稿リポジトリarticles フォルダの下に移動する
    • 私だったらこんな感じ
>cd C:\Users\mochikoAsTech\Documents\startDNS\articles
>docker-compose run --rm review rake pdf
review-pdfmaker config.yml
INFO: compiling preface.tex
INFO: compiling article.tex
INFO: compiling contributors.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: dvipdfmx -d 5 -z 9 __REVIEW_BOOK__.dvi
  • articles フォルダの下に ReVIEW-Template.pdf が生まれる f:id:mochikoAsTech:20190808135602p:plain

4. 自分の本に合わせて色々カスタマイズする

印刷用PDFか電子書籍用PDFか?B5かA5か?を設定する

  • いま、トンボ付きのPDFが出力されているのは、デフォルトが「B5で印刷用のPDFを出力する」という設定になっているからです
  • 原稿リポジトリarticles フォルダの下にある config.yml を見てみましょう
# B5の設定(10pt 40文字×35行) - 紙版
texdocumentclass: ["review-jsbook", "media=print,paper=b5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
# B5の設定(10pt 40文字×35行) - 電子版
# texdocumentclass: ["review-jsbook", "media=ebook,paper=b5,serial_pagination=true,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
# A5の設定(9pt 38文字×37行) - 紙版
# texdocumentclass: ["review-jsbook", "media=print,paper=a5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
# A5の設定(9pt 38文字×37行) - 電子版
# texdocumentclass: ["review-jsbook", "media=ebook,paper=a5,serial_pagination=true,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
  • たとえば次のようにコメントアウトの場所を変更して「B5で電子用のPDFを出力する」という設定にした上で、再度コマンドプロンプトdocker-compose run --rm review rake pdf を叩いてみましょう
# B5の設定(10pt 40文字×35行) - 紙版
# texdocumentclass: ["review-jsbook", "media=print,paper=b5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
# B5の設定(10pt 40文字×35行) - 電子版
texdocumentclass: ["review-jsbook", "media=ebook,paper=b5,serial_pagination=true,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
# A5の設定(9pt 38文字×37行) - 紙版
# texdocumentclass: ["review-jsbook", "media=print,paper=a5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
# A5の設定(9pt 38文字×37行) - 電子版
# texdocumentclass: ["review-jsbook", "media=ebook,paper=a5,serial_pagination=true,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
  • トンボが消えて、電子書籍用のPDFが出力されました!
  • もし docker-compose run --rm review rake pdf を叩いたときにこんなエラーが出たら、PDFを開いたまま出力しようとしているのが原因です!一度PDFを閉じてからやりなおしましょう
>docker-compose run --rm review rake pdf
review-pdfmaker config.yml
INFO: compiling preface.tex
INFO: compiling article.tex
INFO: compiling contributors.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
INFO: dvipdfmx -d 5 -z 9 __REVIEW_BOOK__.dvi
Traceback (most recent call last):
        16: from /usr/local/bin/review-pdfmaker:23:in `<main>'
        15: from /usr/local/bin/review-pdfmaker:23:in `load'
        14: from /var/lib/gems/2.5.0/gems/review-3.2.0/bin/review-pdfmaker:16:in `<top (required)>'
        13: from /var/lib/gems/2.5.0/gems/review-3.2.0/lib/review/pdfmaker.rb:97:in `execute'
        12: from /var/lib/gems/2.5.0/gems/review-3.2.0/lib/review/pdfmaker.rb:156:in `execute'
        11: from /var/lib/gems/2.5.0/gems/review-3.2.0/lib/review/pdfmaker.rb:282:in `generate_pdf'
        10: from /usr/lib/ruby/2.5.0/fileutils.rb:358:in `cp'
         9: from /usr/lib/ruby/2.5.0/fileutils.rb:1461:in `fu_each_src_dest'
         8: from /usr/lib/ruby/2.5.0/fileutils.rb:1479:in `fu_each_src_dest0'
         7: from /usr/lib/ruby/2.5.0/fileutils.rb:1463:in `block in fu_each_src_dest'
         6: from /usr/lib/ruby/2.5.0/fileutils.rb:359:in `block in cp'
         5: from /usr/lib/ruby/2.5.0/fileutils.rb:432:in `copy_file'
         4: from /usr/lib/ruby/2.5.0/fileutils.rb:1291:in `copy_file'
         3: from /usr/lib/ruby/2.5.0/fileutils.rb:1291:in `open'
         2: from /usr/lib/ruby/2.5.0/fileutils.rb:1292:in `block in copy_file'
         1: from /usr/lib/ruby/2.5.0/fileutils.rb:1292:in `open'
/usr/lib/ruby/2.5.0/fileutils.rb:1292:in `initialize': Device or resource busy @ rb_sysopen - /startDNS/ReVIEW-Template.pdf (Errno::EBUSY)
rake aborted!
Command failed with status (1): [review-pdfmaker config.yml...]
lib/tasks/review.rake:96:in `block in <top (required)>'
/var/lib/gems/2.5.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
Tasks: TOP => pdf => book.pdf
(See full trace by running task with --trace)

色々カスタマイズする

  • PDFをどんなファイル名で出力するか、書名や著者名は何にするか、などはすべて articles フォルダの下にある config.yml で設定します
    • 書いてあるコメントを見ながら直す→PDFを出力して確認、をくり返せば設定項目は分かると思うので詳細は解説しません f:id:mochikoAsTech:20190808232811p:plain

原稿を書いてみる

  • articles フォルダの下にある preface.re で前書きを書き足してみましょう
  • 「ねこはかわいい!」と書いてみました f:id:mochikoAsTech:20190808233127p:plain
  • コマンドプロンプトdocker-compose run --rm review rake pdf を叩いてみると、ちゃんと反映されています f:id:mochikoAsTech:20190808233237p:plain
  • なぜ preface.re に書くと反映されるのか?というと、catalog.yml というカタログファイルでそう設定されているからです

さいごに

  • 技術書典のたびに「リポジトリ!環境構築!どうやるんだっけ?!」と困っていた頭弱い自分のために書きました
    • そんなにおられないと思いますが、私と同じように環境構築でつまづいていた誰かのお役に立てば幸いです。素敵な新刊を書いてください!私はまだ見ぬあなたの新刊を楽しみにしています!

参考文献・ウェブサイト