1年前のツーリングを振り返る 北海道1周ツーリング 4日目

祖母,現る

ライダーハウスで目覚めてまったり朝7時に出発しました.

今日は根室市に向かいます.

その途中,信号前で誰かが手を振っていました.

なんと,祖母でした.

メンバーに挨拶をしていろいろ激励してくれました.嬉しかったですが,ちょっと恥ずかしかったです.

釧路を抜けると釧路

釧路市を抜けると次は釧路町に入ります.

北海道には釧路市釧路町があります.

昔,釧路町(現在の釧路市)が釧路区になる際に切り離して釧路村(現在の釧路町)にしたのが始まりらしいです.

www.city.kushiro.lg.jp

www.town.kushiro.lg.jp

1920年(大正9年)の欄を見ると書いてあります.

〒088-0878 厚岸町ルークシュポール

釧路町を抜けて国道44号線を走っていくと厚岸町に入ります.

厚岸町に入って記念すべき最初の地名は

ルークシュポール

です.

最初,「外国にワープしたのかな?」と思いましたがこれもアイヌ語らしいです.

ルークシュポール - Wikipedia

ルパン三世ハーゲンダッツ

厚岸町を抜けると,浜中町に入ります.

ルパン三世の生みの親「モンキー・パンチ」さんの出身地です.

また,ハーゲンダッツに使われている牛乳の生産地でもあります.

群馬県に日本唯一のハーゲンダッツの工場があることはよく知られていますがこれはあまり良く知られていないように思えます.

気が狂いそうになるくらい何もないと思いきや

釧路町抜けてからずっと何もないです. ちょろっと厚岸町浜中町に掠るくらいであとは草原しかないです.

そんな中走っていると後ろから走ってきたバイクの人が抜かしながら手を振ってくれました.

よく見ると昨日,ライダーハウスで一緒に話した人達でした. 一期一会の旅の中でこういった形で再会できるのはとても嬉しいですね.

また,車も何も来ない一本道を走っていて,後ろから車が抜いていったその瞬間,

自分達の列ぎりぎりを150kmくらいで走ってきた覆面パトカーがその車を取締に行きました.

その覆面パトカーの方がよっぽど危ない!!

さすがにメンバーの人が怒鳴ってその警察に注意しました.

厚床トラップ

根室市に入るやいなや,市街地に着きました.

「やった!根室市に着いた!!」

と思ったのも束の間,そこは厚床という地区で根室市のメインの市街地ではありませんでした.

地図を見てみると,まだ35kmくらいあります...

絶望と暑さに打ちひしがれながらセイコーマートでアイスを買って食べました.

ハセストは有名でもタイエーは知らない

親の顔より見た国道44号線を抜けていくと,根室半島の付け根にある「温根沼」という沼が出てきました. これを越えるとゴールは近いです.

市街地に入る手前に「タイエー」という根室限定のコンビニがあります. f:id:muscle_keisuke:20190814010206j:plain

なんと,ここには函館限定のコンビニにある名物「やきとり弁当」と似たようなものが置いてあります. f:id:muscle_keisuke:20190814010339j:plainf:id:muscle_keisuke:20190814011633j:plain

もちろん,それを買って店内のイートインコーナーで食べました.

タイエーのやきとり弁当は店の真ん中に厨房があり,やきとり弁当をオーダーするとその場で焼いて作ってくれるのが特徴的です.

焼き立ての温かいやきとり弁当をいつでも食べることができます.

また,タイエーは他のコンビニと違い,店内にベーカリーがあったり,炊飯器がおいてあり,自分でご飯を盛って購入することができます.

また,セイコーマートの商品も売ってます.

つい,ポイントカードも作っちゃいました. f:id:muscle_keisuke:20190814011552j:plain

このポイントカードはハセガワストアセイコーマートでも使えます.

そして,これを書いている途中に気づきましたが,なんとタイエーのホームページができてました.

www.taie1965.com

根室名物エスカロップ

根室市にはエスカロップというB級グルメがあります.

ja.wikipedia.org

バターライスにたけのこを混ぜて上にカツを乗せたメニューです.

一度,学校の給食に出て,それが美味しくて忘れられませんでした.

これは絶対食べたかったのでメンバーに無理を言って食べに来ました.

「喫茶どりあん」というエスカロップを置いているお店に行って食べました.

f:id:muscle_keisuke:20190814010539j:plain

無事エスカロップにありつくことができました.今度は自分で作ってみたいですね. f:id:muscle_keisuke:20190814010746j:plain

お風呂に浸かりながら楽しめる根室美術館

今日の泊まる場所を決めた後は汗を流しに銭湯に行きます.これだけは日課です.

そして,いざお風呂に入るとびっくり,

お客さんの4〜5割は背中にお絵描きしている人達でした.

風呂に入りながらその人達の背中の絵を眺めていました.

蚊との戦い

風呂入ったあと泊まる場所に戻ると,蚊がすごかったです... 多勢に無勢でした.

明日は本土最東端,納沙布岬へ向かいます.

走った距離

1年前のツーリングを振り返る 北海道1周ツーリング 3日目

アマゾンタイム

雑魚寝しているライダーさん達の中で朝目覚めました.

昨日談笑していたライダーさん達と話しながら昨日パンクした人のスペアのタイヤをアマゾンで注文することにしました. f:id:muscle_keisuke:20190812013138j:plain

届くのが3日後くらいなので配送日にどの辺を走っているか予測して網走のローソンに届けることにしました. コンビニ配達というのはこういうことにも使えるのかと感心しました.

2日連続ジェラート

今日は池田町に向かいます.

北海道特有の延々と真っ直ぐで飽き飽きする道を進みました. f:id:muscle_keisuke:20190812013209j:plain

池田町に入るとまずはジェラートです.みんなジェラート大好きです. ハッピネスデーリィというアイスクリーム屋さんに入りました. f:id:muscle_keisuke:20190812013234j:plain

ここにはジェラート以外にもピザやソーセージなど自分の大好物がいっぱいありますが,みんなを待たせるわけにはいかないのでジェラートだけで我慢しました.

とても美味しかったです! f:id:muscle_keisuke:20190812013303j:plain

あこがれのワイン城

自分の強い要望でワイン城にも寄りました. 自分はワインが大好物でいつかワイン城にも来たかったので嬉しかったです. f:id:muscle_keisuke:20190812013335j:plain

ワインの試飲がしたかったのですが,ツーリング中は当然ワインなんか飲めるはずないです. 仕方ないのでぶどうジュースの試飲と記念に一本ワインを買ってワイン城を後にしました.

(まさか,この後飲む機会がなさすぎて500km程このワインを持ち運ぶことになるとは誰しも予想していなかった...)

工場見学とかもしたかったのに残念でした.次回絶対泊まりで来ようと心に誓いました(実際,大学卒業前に行きました.).

一人旅の高校生に出会う

池田町を抜けて,浦幌町のおっぱいの神様がいる乳神神社をスルーしつつ,釧路を目指していると,

f:id:muscle_keisuke:20190812013507j:plain

前を走る自転車がいました. 挨拶すると,その人は釧路に帰りながらツーリングをしている人だったので一緒に走ることにしました. 話を聞いていくと,その人はなんと高専1年生でした. こんな若い内から一人でツーリングするのはさすがに驚きでした.釧路高専に通っているらしいです. 霧が続く中ずっと一緒に走って,白糠の道の駅で記念撮影してお別れしました.

f:id:muscle_keisuke:20190812013537j:plain

ライダーハウスタイムアタック

今日は釧路のライダーハウスに泊まる予定でしたが,受付が18時ということに今更気づきました.白糠の道の駅を出た時点で17時前後だったので残り1時間以内にそのライダーハウスに到着する必要がありました.

残り17km程だったので昨日のネギトロ丼よりは楽ですが,余裕はないので急いで向かいました.

受付には無事間に合いました.ここのライダーハウスは宿泊料として2000円かかりますが,夕食付きなのでお得です.

いざ部屋に入ると,ツーリングのバッグがベタベタしていることに気づきました. 中を開けてみると,料理に使う油が染み出してきてました... 急いで,宿の主人に新聞紙をもらい,なんとか吸い取りました. f:id:muscle_keisuke:20190812013610j:plain

さて,北海道ツーリング界隈に有名なこのライダーハウス.一体何が有名かというと,

夕食に出てくる海鮮の豪華さです. f:id:muscle_keisuke:20190812013640j:plain f:id:muscle_keisuke:20190812013713j:plain f:id:muscle_keisuke:20190812013751j:plain f:id:muscle_keisuke:20190812013815j:plain

6種類程の刺し身と花咲蟹が1人1杯,牡蠣,クジラ肉が出てきます. これで2000円は安いです.

今日は夕食の卓には自分達以外にライダーさん3人がいました.ライダーさんは日本酒を楽しみながら食事を取っており気分が良くなってきた頃にこちらに話かけてきました.とても面白い人達でした.

釧路の祖母の家

釧路に祖母の家があり,母と弟が丁度お盆で帰省していたので,会いに行って来ました.他のメンバーは別行動で銭湯に行きました.

風呂に入れてくれたり洗濯してくれたりしました.

なによりも1年ぶりに祖母にあったので,内定の報告もしました.

昔の話やこれからどこに行くのかという話を1時間ほどして ライダーハウスに戻り眠りにつきました.

走った距離

1年前のツーリングを振り返る 北海道1周ツーリング 2日目

えりも町の人はみんな昆布干してた

朝起きて1時間で支度して出発しました.まずは様似町を通過して襟裳岬を目指します. 途中まで曇っていましたが,えりも町に入ったくらいで晴れてきました.

えりも町の人はどんな生活しているのか走りながらキョロキョロしてると,みんな昆布を干していました.

なんなら,昆布干している人以外見当たりません. おじいちゃんもおばあちゃんも若者もはてには子供までも昆布干していました.

無風の襟裳岬

えりも町を南下していくとそれまで平坦だった道がどんどん登りになってきつくなってきました. でも,周りに何もないおかげできれいな登りのカーブが見えました. f:id:muscle_keisuke:20190811203700j:plain

襟裳岬には結構な観光客が来ていました. f:id:muscle_keisuke:20190811205839j:plain f:id:muscle_keisuke:20190811205844j:plain

北海道最長トンネルは夏にして気温13度

襟裳岬を抜けた後は黄金道路という国道336号線に入りこの一帯はトンネル地獄です.その中には北海道最長トンネルである「えりも黄金トンネル」が待ち構えています. f:id:muscle_keisuke:20190811235658j:plain

その全長は4,941m

自分の現在の行動範囲近辺で例えると,大崎駅から渋谷駅までずっとトンネルの中ってことになりますね. このトンネルの中がとても寒いです.外はさすがに25℃前後ですが,トンネル内は

最低13℃になります.

夏の気温ではないですね(笑)

ちなみに広尾町市街地までの黄金道路の通過しなければならないトンネルは

トンネル名 全長
フンコツトンネル 125m
白浜トンネル 622m
咲梅トンネル 473m
えりも黄金トンネル 4,941m
荒磯トンネル 441m
目黒トンネル 1,876m
新宝浜トンネル 2,438m
タニイソトンネル 2,020m

となっており,襟裳岬から336号線に合流する地点から広尾町セイコーマートまで 31.4kmでその内の12.9kmがトンネル内となります.

広尾町市街地に入る前には「フンベの滝」という有名な滝を見ることができます. f:id:muscle_keisuke:20190811235738j:plain

ネギトロ丼チャレンジ

今日のお昼ご飯は25km先にある大樹町のネギトロ丼に決めていました.

しかし,昼のラストオーダーまで1時間ちょっとしかありませんでした. 大急ぎで休憩を終え,全力で何もない道をあの大荷物で巡航速度25km/hくらいで走りました. f:id:muscle_keisuke:20190811235822j:plain

今日一番で体力を消耗しましたがなんとかラストオーダーに間に合い,ネギトロ丼にありつくことができました. f:id:muscle_keisuke:20190811235856j:plain

中札内村ジェラート

ネギトロ丼で元気が出た後は帯広市に向かいます.出発して十数分でメンバーの一人がパンクしてしまいました.タイヤごといかれてしまったのでタイヤとチューブどちらも交換になって気の毒でした. f:id:muscle_keisuke:20190811235928j:plain

修理後に気を取り直して再出発 ここからは何もない&登り基調となり苦戦を強いられましたが,なんとか帯広市の手前にある中札内村に到着しました. 道の駅でジェラートを食べました. 単なるチーズ味のジェラートなら珍しくないですが,カマンベール味は珍しいです.味もしっかりカマンベールでした. f:id:muscle_keisuke:20190812000207j:plain

向かいにあるマックスバリュで豚汁の食材を買って残り12kmを走って 今日泊まるライダーハウスに到着しました.

ライダーハウスはみんな暖かかった

今回泊まったライダーハウスは「大正カニの家」というところです. ライダーやサイクリストに無料で宿を提供している親切なライダーハウスです. f:id:muscle_keisuke:20190812000241j:plain

www.city.obihiro.hokkaido.jp

2日ぶりにモバイルバッテリーの充電ができたので一安心です. 今日は満室でしたが,どうやら自炊をするのは自分たちだけのようでした. 自炊中もライダーさん達が話しかけてくれました.

豚汁を作り終えて,メンバーみんなで外の炊事場で食べてると3人のライダーさんが近づいてきて,隣の縁日で買ってきてくれた焼き鳥とビールを自分達にくれました.すごく嬉しかったです.ライダーさん達と談笑をしながら楽しい夜を過ごすことができました.

走った距離

1年前のツーリングを振り返る 北海道1周ツーリング 1日目

北海道1周ツーリングから1年

2018年8月11日,学生時代最後の夏休みに大学のサイクリング部の人達と自転車で北海道1周しました. その思い出を懐かしむということでちょうど1年後の今日に記事を書くことにしました.

毎日,1年前の記事を更新する

これから最後の日本縦断から帰ってくるまでを毎日記事として投稿していきたいと思います.

スタート直前にメンバーの一人のハンドル壊れる

部室に朝7時に集合して出発の予定だったが,メンバーの一人のハンドルが不調で1時間ほど緊急メンテが入って出発が遅れてしまったが, ハンドルは無事直りなんとかDNSを免れた.

苫小牧でパンを食べる

手始めにひたすら国道36号線を50km走り,苫小牧の三ツ星というパン屋さんでメンバーの一人と合流した. パン美味しかった.

むかわ町の道の駅

苫小牧を抜けて厚真に入ると草原と火力発電所関連の施設以外何もなくなりました.

遮るものが何もなくて風が辛いずっと平坦な道をずっと行くと,むかわ町の道の駅に着きました. まだ,この頃はあんな大災害が起こるとは夢にも思いませんでした. f:id:muscle_keisuke:20180816055357j:plain

日高町で足攣る

むかわ町を抜けて走っていると,日高町当たりで足が攣った.普段の運動不足が祟った.みんなに待ってもらいメンバーの一人にストレッチを教えてもらいなんとか次の休憩まで走ることができました.これ以降は休憩中にこまめなストレッチを心がけたおかげで今回が最初で最後のこむら返りになりました.

静内で夜飯の材料を買う

今日はみんなでシチューを作るため,今日の最後の町である静内のマックスバリュで材料を買い込みました.

三石の道の駅で風呂入る

夜も更け始め,ゴール手前に三石の道の駅があるのでそこに併設されている「みついし昆布温泉 蔵三」に入りました. 温泉は180km走った体に染み渡りました.

無人駅で野宿してたら警察呼ばれる

今日のゴールは荻伏駅という無人駅です.

今日はここで夕食を作りテントを貼り眠ることにしました. f:id:muscle_keisuke:20180816220852j:plainf:id:muscle_keisuke:20180816215524j:plain

出来上がった夕食を食べながら談笑しているとパトカーがサイレンを流しながら近づいてきました. そして駅前に泊まると2人程警察の方が降りてきて

警察「ちょっといいかな」
俺たち「は...はい」
警察「近所の人から通報があって来たんだけど」

ツーリング1日目にして終了か.

と思いきや, 「未成年の人,いないかチェックするから身分証明書見せて」 とのこと,うるさくて通報されたわけじゃないらしい. 明日,朝早く出てくなら大丈夫と言われ一安心した.

走った距離

【初参加】BRM720 鬼怒川 200km に参加した

この記事の概要

今回はブルベというものに初参加したのできっかけや前日準備や当日の流れ,帰宅するまでを書きます.

ブルベとは

ブルベ(Brevet)はフランス語で「認定」を意味します. 制限時間内に特定の距離を特定のルートで走り切ることでブルベを運営している団体から認定を受ける耐久サイクリングイベントです. 日本でブルベを運営している団体は「オダックス・ジャパン」という非営利団体です. オダックス・ジャパンがブルベについて書いているので詳しくはそちらを御覧ください. www.audax-japan.org

ブルベに参加したきっかけ

元々,ロングライドに興味があった

大学生までは北海道にいていろいろなところに走りに行ってた.

  • 札幌 <-> 室蘭
  • 札幌 <-> 旭川
  • 室蘭 <-> 余市
  • 北海道一周
  • 日本縦断
  • etc

社会人になり研修で話した人がブルベ走っている人だった

大学生の頃からブルベには興味があったが,参加したことはなかった.今年,社会人になり実際に400kmのブルベを何回か走り抜いているという他社の人にと話す機会があった.そこでブルベへ興味が再燃して,4月に7月20日のブルベに申し込んだ.

参加したブルベ

自分が参加したブルベの概要

  • 距離 200km
  • 獲得標高 2,060m
  • 制限時間 13時間半
  • スタート・ゴール 東京 -> 栃木県 鬼怒川温泉
  • 運営 オダックスランドヌール日本橋

sites.google.com

自分は温泉が大好きで一人でチャリを走らせて入りに行くくらい好きだったのでちょうどゴールが温泉であるBRM720にした. いろは坂を通る獲得標高が2,324mという普段なら避けるレベルの登りがあったが,「なんとかなるっしょ」くらいの気持ちで申し込んだ.

参加前日

当日の3日前まで全く準備していなかった. 当日2日前に10日前くらいに届いたブルベに関する郵送物などの確認を行った.注意事項やキューシートを印刷するように書かれていた. そこには宿泊施設のご案内と書かれていたが,よくよく考えたら自分はブルベだけ申し込んでおり,ゴールしたあとのことを考えるのを忘れていた.「これはやばい」と思い,楽天トラベルで手頃な旅館をポチった.

他にも正確なルートで走らなきゃいけないのにキューシートを見るための装備が全然整ってなかった.ガーミンなどの機器も持っていなければ,スマホを自転車に固定できるような台も持っていなかった.即決でガーミンを買うほどのお金を持ち合わせていなかったので,2,000円くらいのスマホ台をアマゾンでポチった.

https://www.amazon.co.jp/gp/product/B07P8TDYQC/

キューシートはルートラボにGPXデータがあったので,これをStravaにインポートして当日はStravaをスマホから起動してキューシート代わりにすることにした.GPXデータをStravaにインポートする方法はぐぐったら割とすぐでてきた.

monoooki.net

ブルベは反射ベストの着用が義務付けられているのでカバンを背負って走ることができない. 必要最低限の装備をサドルバッグに入れて,着替えはカバンに詰め込んで郵送することにした.

問題はミニフロアポンプである.普段は背負っているカバンに入れて走るが,今回はそのカバンがないので,自転車にくくりつけようと考え自転車にミニフロアポンプを固定できる器具みたいなものを特に説明を見ずにアマゾンでポチった.

https://www.amazon.co.jp/gp/product/B004BUC60C/

スマホ台とミニフロアポンプの固定具は出発前日に届いた.危なかった... 家に帰ってからポンプの固定具をポンプにつけようとするが径が合わない.固定具についているゴム製の固定フックを思い切り伸ばすが,ポンプの径が大きすぎて回らない.力いっぱいに引っ張ると,買ったばかりの固定具のゴムを引きちぎってしまい使い物にならなくなってしまった.

前にパンクしたチューブの亡骸が家にあったので,これを切って,ポンプと自転車のトップチューブに結ぶと結構がっちり固定されたのでこれで行くことにした,チューブ紐は北海道一周や日本縦断の荷造りにも多いに役立ったのでこいつのことは割と信頼している.

当日

〜スタート地点

7時半にスタートでスタート地点までは15kmくらいだった. 5時半に起床し,6時半に家を出た.北海道の感覚ならこれで間に合うのだが,東京は信号が多すぎて全く進まない. 6kmを残しスタートまで15分を切っていた.DNSが頭をよぎった. 結局,10分遅れでスタート地点に到着するとスタッフ以外誰もいなかった. スタッフの方々は優しく,ブルベカードにサインしてスタートを見送ってくれた. まずはDNSにならなくてよかった.

〜通過チェック1 道の駅さかい

Stravaに入れたGPXもいい感じに見れてしばらく走っていると,ブルベの参加者がいたので挨拶した. 途中まで一緒に走っていたが,自分が油断して道を間違え速攻ではぐれた.

通過チェック1はスタートから55kmの地点にあるが,俺がクソ雑魚すぎて休憩なしで行けず, 5km手前のコンビニで休んでパン買って食べた.

休んだあとに無事通過チェック1である茨城県の「道の駅さかい」に到着した. 到着しても誰もいなかった.参考時間最遅の10分前くらいというギリギリだからか. 完走後の証拠になる看板の写真を一枚撮って,次のチェックポイントに向かう. f:id:muscle_keisuke:20190728230050j:plain

〜PC1 ファミリーマート藤岡町

ひたすら利根川沿いを走る.土曜日なのにサイクリストもランナーも全然いない. 途中から渡瀬川に分岐し,その川からも離れていき,草むらの中を走る感じになっていった. f:id:muscle_keisuke:20190728230053j:plain

膝が痛みだしてきた.最近,自転車の乗り方が変わってしまったのか,50km以上走ると膝が痛みだすようになってきた. 辛い中走っていると,道がなくなり砂利道になった.しかし,キューシートにはこのまままっすぐ進むように書いてある. 本当にこっちで合ってるのか疑心暗鬼になりながら1km程ある砂利道を恐る恐る進んだ.

無事,県道にぶち当たってPC1であるファミリーマートに到着した.いつの間にか栃木県に入っていた. 最遅参考時間の10分前くらいだったがお腹が減って死にそうだったのでパンとそばを買って食べることにした. 店員さんがレシートをくれなかったのを店を出てから気づいた. 完走後の証明に必要なので慌てて戻り,レシートをもらった.出発してからじゃなくてよかった.

急いでそばとパンを食べて出発した.このとき既に参考時間から15分くらい遅れていた.

〜PC2 ローソン日光東照宮前店?

お腹が苦しいのと蒸し暑さで死にそうになりながら進む. 意志が弱すぎて15km進んだ頃にまたコンビニに寄って今度はお水とアイスを買って摂取した. 体感温度が下がったところでまた出発したが15km進んだところでまた水とアイスを買いにコンビニへ寄った.

膝もだんだん痛くなってきた. 日光市入る手前くらいから登り基調になってきた.膝に追い打ちがかかる. ふくらはぎやももも攣り始めていた.コンビニに寄ってふくらはぎやももを伸ばすストレッチをしたりした.

ここらで雨も降ってきて完全に心が折れかけていた.

ずっと国道を走っていたが,途中から国道を外れ何もない道になった.人も車も通らない一本道をひたすら一人で走っていた.登りがどんどんきつくなってきたのでダンシングしようと足に力を入れた瞬間,ふくらはぎに鋭い痛みが走った. 右足のふくらはぎが完全に攣ってしまった.車も人もいない田舎道で一人で悶え苦しみ虚しくなった.

時速5kmくらいで坂を登り,なんとかPC2まで残り4kmくらいまで来たところで参考時間を過ぎた. ここでDNFを決意した.

PC2のあるコンビニとは違う道を行き,街を出る手前のコンビニでファミチキを買って食べながらDNFの連絡をした.

〜ゴール地点

今回のブルベはいろは坂を登って下るという回り道をすることで200kmとしている為,この周り道をしなければ残り14kmくらいでゴールである鬼怒川温泉に到着する.

私はDNFをしたが,鬼怒川温泉に宿をとって荷物も郵送しているので残り14kmを頑張って走ることにした.

土砂降りの中登り基調の坂を登る. すると,反射ベストを着た他のブルベ参加者にどんどん遭遇するようになってきた. 自分がいろは坂の分ショートカットしたのでいろは坂を既に降りてきていた強い人達に追いついてしまっていた. 「お疲れ様です」と声をかけられたが,DNFしているので複雑な気持ちになりながら挨拶を返した. さすが,10時間位でゴール手前まで来てる人達なだけあって,あっという間に抜かれて見えなくなった.

自分は自分のペースで坂を登り,どうにかして鬼怒川温泉駅に到着した. あたりは既に真っ暗で人も全然いなかった. f:id:muscle_keisuke:20190728230125j:plainf:id:muscle_keisuke:20190728230131j:plain

写真を撮っていると,ブルベ参加者の人がやってきた. すでにゴールしてこれから電車に乗って東京に帰る人だった.200km走って日帰りは自分には到底できないなと思いながら見ていた.

駅周辺を探索していると足湯があった.せっかく温泉に来たので足の疲れを癒やす為に入ることにした. f:id:muscle_keisuke:20190728230144j:plain

入っていると,輪行袋を持った他の参加者が入ってきたので話しかけた. 俺「いやー,疲れましたね」

相手「ほんと,特にいろは坂はやばかったですね」

俺「...」 いろは坂は登っていないのだ

DNFしたことを告げた. その人は10時間くらいでクリアしていたので本当に速い人だと思うが蔑まれることもなく励まされた. ブルベはレースではないし,各々が自分のペースで走り切ることがメインの競技なので,誰が誰を下に見るとかそういう雰囲気は結局,最初から最後までなかった.

これから電車で帰るらしいのでそれを見送って自分も足湯を出て,旅館に向かった.

鬼怒川温泉を堪能する

今回はホテル大滝という旅館に泊まることにした. とりあえず,自転車を入り口近くに停めてフロントでチェックインした. 自転車は旅館の入り口の中に置くことを許可してもらった.

結果的に言えば,ホテル自体は大満足だった.

  • 1部屋10畳一人6300円
  • 繁忙期から外れ人も少なく快適
  • ボードゲームや本,DVDプレイヤーも貸し出していた
  • 温泉も建て替えたばかりできれいでひのきのいい香り
    f:id:muscle_keisuke:20190728230137j:plain
    泊まった部屋,これで6,300円は安いと思った

とりあえず,汗で汚い体を部屋のシャワーでキレイにしてフロントの人に聞いたおすすめの定食屋さんに行った. 今回は「佃政」というお店に行った.ハンバーグが美味しいらしい. ハンバーグを頼んだあとにメニューを見てると,「湯波刺し」という珍しいメニューがあった. 調べると栃木県の日光市は「湯波」が有名らしい.「湯葉」といえば,京都だが日光も有名で区別して「湯波」と表記するらしい.

icotto.jp

それなら,湯波を頼めばよかったと少し後悔した. その後,何気なく日本酒もメニューを見てみると,自分が大好物の「鳳凰美田」があった. 「鳳凰美田」は栃木県の小林酒造で作っている日本酒であることにそこで初めて気づいた. 大後悔した.

「湯波刺し」をつまみに「鳳凰美田」をやりたかった...

しかし,お金もかかるし,今日は我慢してハンバーグだけ食べることにした. ちなみにハンバーグもふわふわでジューシーでとても美味しかったです. f:id:muscle_keisuke:20190728230154j:plain

ご飯を食べたあとはコンビニで500ml缶のアサヒィ↓スゥパァ↑ドゥルァァァァイ↓とつまみを買って帰った. この後はメインの風呂だ.

風呂は離れにあって一度外に出る必要がある. 足場が悪くてスリッパで移動する必要があるのでそこは少しマイナスポイントだった.

しかし,去年建て替えたばかりだけのこともあって脱衣所も風呂場も檜のとてもいい香りがした. 風呂の種類は少ないが,柵がない全面に開けた露天風呂もあって最高だった. 内風呂も吹き抜けからおしゃれな照明が吊るしてあってとてもいい雰囲気だった.

大満足で風呂から上がり部屋でビール飲んで就寝した. ロングライドの後のビールが一番うまい.

帰宅日

鬼怒川温泉を堪能する(2日目)

今日は昨日食べられなかった湯波を食べてから帰ると決めていた.

しかし,湯波を置いてある店が開くのが10時なのでまだ時間が2時間程余っていた. とりあえず,朝風呂に入った.昨日真っ暗で見えなかった露天からの景色と貸切状態の風呂を楽しんだ.

10時にチェックアウトして湯波が置いてある店前の「杉ん子」という定食屋に入った. ここには毎日15色限定の「湯波丼」というものがあるらしい. ご飯に湯波をかけてその上にあんかけやきのこを乗せた丼らしい. 限定という言葉に弱く,それを頼んだ. f:id:muscle_keisuke:20190729004547j:plain

初めて湯波を食べたが,あれは食感を味わうものなのだろうか.湯波自体に味はあまりなかったが食感がとろとろで大豆の風味をほんのりと感じた.丼自体は美味しかった.

完食後,昨日の湯波刺しが忘れられず,結局追加で湯波刺しと目に付いた地ビールを頼んで散財してしまった. f:id:muscle_keisuke:20190729005007j:plain f:id:muscle_keisuke:20190728230202j:plain f:id:muscle_keisuke:20190729005012j:plain

どれも美味しかった.店入ってから出るまで誰も来なかったので店のおばちゃんとずっと話しながらご飯食べてた.

店を出て隣のお土産屋で会社へのお土産を買って,お酒が入ってしまったので駅まで自転車を押していった. 駅前に猿と人がいて何やら芸の準備をしていたが,自転車を分解しなければならなかったので猿の芸に湧く歓声を背にして輪行の準備をしていた. 乗り換えを極力したくなかったので特急券を買ってそれで浅草まで乗って乗り換えて無事家まで帰った.

まとめ

  • 梅雨続きで1ヶ月以上乗ってなかったのもあって簡単に足を攣ってしまってそのままDNF
  • ブルベは周りの人優しい
  • 遅刻しても参加を許可してくれたスタッフ
  • DNFしても励ましてくれる参加者
  • 次回,再挑戦したい
    • 200kmに慣れる
    • 乗り方を改善する
  • 鬼怒川温泉よかった
    • 旅館は安くていい部屋と風呂
    • 湯波も美味しかった
  • 次は電車で行って酒造巡りたい

自転車で北海道一周してきたのでGPSログをLaTeXで表示する

この記事はTeX & LaTeX Advent Calendar 2018 18日目の記事です. LuaTeX関係ありません.遅くなってしまって申し訳ありません.

はじめに

私はサイクリングが趣味で,休みの日はロングライドに出かけることもあります. そして,タイトルにある通り学生最後の夏休みに17日かけて室蘭市から北海道を反時計回りに出発し函館市までツーリングをしてきました.

f:id:muscle_keisuke:20181218162317j:plainf:id:muscle_keisuke:20181218162322j:plain
f:id:muscle_keisuke:20181218162328j:plainf:id:muscle_keisuke:20181218162342j:plain

私は自転車でロングライドする時には必ずGPSログを取ります.北海道一周のときにもこのログは取り続けていました. 自分が保存していたGPSログはGPXというフォーマットです. GPXファイルには位置,速度,標高などの情報がXMLスキーマベースで保存されています. 全てテキストデータになっています.

そこで思いつきました.

LaTeXGPSログを読み出せそう

ということで,GPXファイルをLaTeX上で読み込んで,そのルートをTikZで描画することにしました.

GPXファイルの中身をLaTeXで読む

GPXファイルについて

GPXファイルは以下のようなXMLスキーマベースで記録されています*1

<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="StravaGPX" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
 <metadata>
  <time>2017-09-04T00:57:35Z</time>
 </metadata>
 <trk>
  <name>Morning Ride</name>
  <trkseg>
   <trkpt lat="42.3847010" lon="141.0319980">
    <ele>65.4</ele>
    <time>2017-09-04T00:57:35Z</time>
   </trkpt>
   <trkpt lat="42.3846550" lon="141.0323940">
    <ele>64.9</ele>
    <time>2017-09-04T00:57:39Z</time>
   </trkpt>
   ...
  </trkseg>
 </trk>
</gpx>

<trk>というタグがトラックの始まりを表します.トラックには時間や緯度経度,標高などが記録されています. それぞれの数値はタグ内に記録されており,対応するタグは以下の通りです.

  • <trkpt>(緯度経度)
  • <time>(時間)
  • <ele>(標高)

今回はPDF上にルートを表示したいので緯度経度情報のみ取り出すことにします.

LaTeXでファイルの中身を読み出す

ファイルの読み込み

LaTeXにはファイルを読み出すコマンドがあります. 以下のソースはファイルを読み込み1文ずつ\filelineに格納していくプログラムです.

\newread\file
 \openin\file=filename
 \loop\unless\ifeof\file
  \read\file to\fileline
 \repeat
\closein\file

これを使ってGPXファイルから緯度経度情報の一覧を取り出します.

ある文字列を含む文のみ取り出す

LaTeXでファイルから1文ずつ取り出すことはできました. 次は必要な文だけ取り出すことを考えます. 緯度経度情報はGPXファイルの<trkpt>タグ内に記録されています. 次のようなフォーマットです.

<trkpt lat="緯度" lon="経度">...</trkpt>

ここから緯度,経度の数値のみ取り出します. まずは<trkpt ... を含む文章を取り出します. xstringパッケージは文字列処理に関するマクロが定義されています. その一つの\IfSubStrコマンドは文中に特定の文字列が入っているかどうか判定することができます. これを使って条件分岐を行います.

\IfSubStr{\filename}{<trkpt}{
 ...
}{}

第一引数に文,第二引数に含まれるか判定する文字列を渡します. 第一引数に今回は取り出した文が入った\filenameを指定し,<trkptを第二引数に指定します. これで<trkptから始まる文のみに分岐して処理を進めることができます.

次に取り出した文から緯度経度の数値のみ取り出します. 同じくxstringパッケージの\StrBetweenコマンドを使えば 特定の文字列に挟まれた文字列を取り出すことができます.

\StrBetween{}{取り出したい文字列の前の文字列}{取り出したい文字列の後の文字列}[取り出した後に格納する変数]

まずは緯度を取り出します.以下のフォーマットなので,

<trkpt lat="緯度" lon="経度">...</trkpt>
\StrBetween{\fileline}{lat="}{" lon}[\gpxlat]%

で取り出し,\gpxlatに格納します. 経度も同じように

\StrBetween{\fileline}{lon="}{">}[\gpxlon]%

で取り出し,\gpxlonに格納します. これで,

<trkpt lat="42.3847010" lon="141.0319980">

から 42.3847010141.0319980のみ取り出すことができました.

地図を表示する

地図表現の手法について

地図を表示しなければルートを描画しても位置がわかりにくいのでルートの下に地図を表示します. 最初のアイデアは地図をベクタ画像で表示し,その上に緯度経度から平面座標に変換した点をプロットして点間を線で結び, ルートを描画する方法でした. しかし,後述する複雑な数式によって,単純な平面座標への変換を断念したため, 今回は正方形タイルによる地図表現*2という手法を使い地図の表示をします. この手法はGoogleにより考え出された手法であり,現在,様々な地図アプリに採用されています. 平面座標への変換がしやすいという点で今回採用しました.

正方形タイルによる地図表現

正方形タイルによる地図表現は地図を縦横方向に敷き詰めた正方形タイルで表現する手法です. ズームレベルというものを定めズームレベルが高くなるにつれ, 敷き詰める正方形タイルを多くしてより詳しく地図を表現します.正方形タイルのピクセル数は256 x 256で統一され, ズームレベル0を初期状態とし,タイル数1で世界を表現します.

http://www.trail-note.net/images/zoom0.png

© OpenStreetMap contributors

ズームレベル1で縦横それぞれ2倍のタイル数になり2 x 2になります.

f:id:muscle_keisuke:20181219000859p:plainf:id:muscle_keisuke:20181219001114p:plain
f:id:muscle_keisuke:20181219001130p:plainf:id:muscle_keisuke:20181219001139p:plain
© OpenStreetMap contributors

つまり,ズームレベルnでタイル数は縦横それぞれ 2^n x  2^nとなります.

タイルにはそれぞれタイル座標というものがあり,例えばズームレベル1であれば, 左上のタイルのタイル座標は(0,0)で,右下のタイルのタイル座標は(1,1)となります. タイル座標とは別にピクセル座標というものもあります.これは全タイルを含めた総ピクセル数の内, どこの座標を指し示すかを表す座標です.ズームレベル1の場合256 x 256 のタイルが2 x 2敷き詰められているので, 総ピクセル数は512 x 512となります.よって,タイル座標(0,1)の中心点のピクセル座標は(384,128)となります.

地図を入手する

この正方形タイルに対応した地図を無償で公開している国土地理院から画像ファイルを持ってきます.

地理院地図|地理院タイル一覧

様々な地図をズームレベル毎にダウンロードすることができます. 今回は標準地図を使わせてもらいました.また,ズームレベル毎にタイル画像を用意すると大量になってしまうので, 今回はズームレベル11で固定しました. ズームレベル11の北海道本土のタイルをあらかじめすべて用意します. 今回用意したタイルのタイル座標は(1818,731)から(1854,764)です. 37 x 33 = 1221枚のタイルをLaTeXで貼り付けることになります. 貼り付けは\foreachを使って行います. \spreadtileというマクロを定義し,第一引数,第二引数に左上のタイル座標を渡し,第三引数,第四引数に縦横方向のタイル数を渡します. 今回は(1818,731)から37 x 33のタイルを敷き詰めるので \spreadtile{1818}{731}{37}{33}のように引数を渡します.

\newcommand{\spreadtile}[4]{
  \foreach \x in {0,...,#3}{
    \foreach \y in {0,...,#4}{
      \pgfmathparse{int(#1 + \x)}
      \let\numTileX\pgfmathresult
      \pgfmathparse{int(#2 + \y)}
      \let\numTileY\pgfmathresult
      \node[outer sep=0pt, inner sep=0pt] (image) at (\x*90.31,-\y*90.31){\includegraphics[]{maps/11:\numTileX:\numTileY.png}};
    }
  }
}

タイル画像を貼る座標指定についてですが,画像サイズがピクセルになっているため, LaTeX(TikZ)内の座標系と座標に変換する必要があります. tikzpicture環境は座標の刻み幅をxyそれぞれ1mmに設定しています.

\begin{tikzpicture}[x=1mm, y=1mm]
...
\end{tikzpicture}

なので256 x 256ピクセルの画像をmm単位に変換します. LaTeXのデフォルトのdpi(dot per inch)は72なので,1インチあたり72ピクセルのドットが入ります. 1ピクセルあたり1/72インチなので,256/72インチ(=3.555...インチ\approx90.31mm)になります. つまり,PDF内に原寸大で貼り付けられたタイル画像は90.31mm x 90.31mmになります. 次に座標系の変換です.といってもy軸方向の正負の向きが逆なだけです. よって,(x,y)番目の画像を貼り付ける座標は(90.31x, -90.31y)となります.

これで,地図タイルを隙間なく敷き詰めることができました.

緯度経度を平面座標に変換する

緯度経度 -> ピクセル座標 -> mm座標に変換する方法

PDFに描画するために緯度経度を平面座標に変換する必要があります. 単純に緯度経度を平面座標に変換する式は以下のリンクにありました. https://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/algorithm/bl2xy/bl2xy.htm しかし,数式が複雑過ぎてLaTeXで計算するのが困難です. 数式を書くのは簡単なんですけどね

上記の理由により,地図表現を正方形タイルによる方法に変更しました. 正方形タイルによる地図表現の場合,以下の情報が分かれば,平面座標を求めることができます.

  • \lambda : 緯度
  • \varphi : 緯度
  • z : ズームレベル

緯度経度からピクセル座標に変換する数式は以下の通りになります.


x = 2^{z+7}\left(\frac{\lambda}{180} + 1\right)


y = \frac{2^{z+7}}{\pi}\left(-\mathrm{tanh}^{-1}\left(\sin\left(\frac{\pi}{180}\varphi\right)\right) + \mathrm{tanh}^{-1}\left(\sin\left(\frac{\pi}{180}L\right)\right)\right)


L = 85.05112878

xを求める式を式1,yを求める式を式2とします.

引用:http://www.trail-note.net/tech/coordinate/

上記の式によって求まる座標は前節で説明したピクセル座標ですが,全世界における絶対座標になります. 今回は北海道のみしか地図に表示していないため,これをタイル内における座標に変換します. まず,求めた絶対座標を(x,y)としたときのタイル座標を求めます. タイルは256 x 256ピクセルなので x,yをそれぞれ256で割ると,割った商がタイル座標になります. 更に割った余りが求めたタイル座標内におけるピクセル座標となります. これを前節で説明した方法でmmに変換すると,PDFに表示された地図上に適切に点をプロットすることができます.

LaTeXによる実装

変換方法が確立したので,次はそれをLaTeXで実装します. しかし,LaTeXは複雑な計算をするとコンパイルに時間がかかってしまうので, 定数など計算可能な部分は先に計算します. 式1はこれ以上計算のしようがないのでこのままLaTeXで計算します. #2が経度,#3がズームレベルです.

\FPeval{\abpixcelX}{2^(#3+7) * (#2/180 + 1)}

問題は式2です.まず,式内の逆双曲線関数LaTeXに求める関数がないので,これを


\mathrm{tanh}^{-1}z = \frac{1}{2}\ln\left(\frac{1 + z}{1 - z}\right)

で変形します. すると,式2は


y = \frac{2^{z+6}}{\pi}\ln\frac{\left(1 - \sin\left(\frac{\pi}{180}\varphi\right)\right)\left(1 + \sin\left(\frac{\pi}{180}L\right)\right)}{\left(1 + \sin\left(\frac{\pi}{180}\varphi\right)\right)\left(1 - \sin\left(\frac{\pi}{180}L\right)\right)}

のように変形できる. L = 85.05112878より,


y = \frac{2^{z+6}}{\pi}\ln\frac{1.99627207622\left(1 - \sin\left(\frac{\pi}{180}\varphi\right)\right)}{0.00372792378\left(1 + \sin\left(\frac{\pi}{180}\varphi\right)\right)}


= \frac{2^{z+6}}{\pi}\ln\frac{\left(1 - \sin\left(\frac{\pi}{180}\varphi\right)\right)}{\left(1 + \sin\left(\frac{\pi}{180}\varphi\right)\right)} + \frac{2^{z+6}}{\pi}\ln\frac{1.99627207622}{0.00372792378}


= 2^{z+6}\left(2 + \frac{1}{\pi}\ln\frac{\left(1 - \sin\left(\frac{\pi}{180}\varphi\right)\right)}{\left(1 + \sin\left(\frac{\pi}{180}\varphi\right)\right)} \right)


= 2^{z+6}\left(2 + 0.31830988618\ln\frac{\left(1 - \sin\left(\frac{\pi}{180}\varphi\right)\right)}{\left(1 + \sin\left(\frac{\pi}{180}\varphi\right)\right)} \right)

となります.これをLaTeXで計算します.

  \FPeval{\abpixcelY}{2^(#3+6)/pi * (ln(1.99627207622*(1 - sin(pi*#1/180))/(0.00372792378*(1 + sin(pi*#1/180)))))}

これで絶対ピクセル座標が求まる.次にタイル座標を求め,タイル内ピクセル座標を求めます.

\FPeval{\tileX}{trunc(\abpixcelX / 256, 0)}
\FPeval{\tileY}{trunc(\abpixcelY / 256, 0)}

余りを求める式がFPパッケージにないため, 割った値の小数点以下を切り捨てた後,商を掛け,元の値との差を計算して余りを求めます. また,ピクセル座標は左上が原点なのに対し,LaTeX内に貼り付けるタイル画像は画像中心が原点なので, 求めたタイル内ピクセル座標に対し,座標系を変換した上で(-128, 128)の平行移動をさせます.

\FPeval{\localX}{trunc(\abpixcelX-(256*trunc(\abpixcelX/256,0)),0) - 128}
\FPeval{\localY}{128 - trunc(\abpixcelY-(256*trunc(\abpixcelY/256,0)),0)}

最後に敷き詰められた(x,y)番目の画像は(90.31x, -90.31y)なので, タイル内ピクセル画像を平行移動させ,ピクセル -> mmに変換して描画します. dpiが72で1インチ=25.4mmより,1mmあたりのピクセル数は72/25.4=2.83464566929で求まります. よって,

\newcommand{\convertmm}[2]{
  \pgfmathparse{\pixcelXonPDF/2.83468054}
  \let\mmXonPDF\pgfmathresult
  \pgfmathparse{\pixcelYonPDF/2.83468054}
  \let\mmYonPDF\pgfmathresult
}
\pgfmathparse{int(\tileX - \value{initTileX})*256 + \localX}
\let\pixcelXonPDF\pgfmathresult
\pgfmathparse{int(\localY - int((\tileY - \value{initTileY})*256})
\let\pixcelYonPDF\pgfmathresult
\convertmm{\pixcelXonPDF}{\pixcelYonPDF}

ついにプロットする点の真の座標(\mmXonPDF,\mmYonPDF)を求めることができました.

ルートの描画

LaTeXの限界

早速求めた点をプロットしようと思い,テストデータとして, 100km程度のロングライドのGPXデータを用意してコンパイルを走らせました. しかし,

! TeX capacity exceeded, ...

というエラーが起こりました. 作業領域として確保しているメモリーを使い果たしてしまったようです. 100km程度のロングライドでメモリーを使い果たしてしまうので, 2000km程度の北海道一周ツーリングをプロットするのは不可能です. なので,<trkpt...から始まる文を見つける度にカウンタをインクリメントし,100で割り切れる時のみ, プロットをすることにしました.

\newcounter{numPoint}
...
\IfSubStr{\fileline}{<trkpt}{%
 \pgfmathparse{int(mod(\value{numPoint},100))};
 \ifnum\pgfmathresult=0
  ....
  \filldraw [red, ultra thin] (\mmXonPDF, \mmYonPDF) circle (1);
  \ifnum\value{numPoint}=0\else
   \draw [red, line width = 7pt] (\mmXonPDF, \mmYonPDF) -- (previous);
  \fi
  \coordinate (previous) at (\mmXonPDF, \mmYonPDF);
 \fi
 \stepcounter{numPoint}

実際に描画した

北海道1周のGPXをすべて読み込んで,点のプロットをしてみました.

f:id:muscle_keisuke:20181219021343p:plain

100個に1つの割合で点をプロットしていますが,それでもかなりの精度でプロットできています.

f:id:muscle_keisuke:20181219133440p:plainf:id:muscle_keisuke:20181219133436p:plain
f:id:muscle_keisuke:20181219133441p:plainf:id:muscle_keisuke:20181219133445p:plain

PDFの実際のサイズは27000 x 240000になりました.

最後に

LaTeXでこれだけ作れたので,普通にWebアプリケーションとしてGPXビューワ作れそうだなと思いました. ちなみに今回の北海道1周のデータをコンパイルするのに30分近くかかります.遅すぎる.

実は北海道1周の後に日本縦断もしたので, そのデータも描画してみたかったです.今度やってみます.

LaTeXでプロデューサー名刺を作る

この記事は アイドルマスターAdvent Calendar 2018 13日目の記事になります. 遅れてしまい申し訳ありません!

これはなにか

プロデューサー歴3年目にも関わらずまだ名刺を持っていないので,LaTeXで名刺を作ってみた話です.

LaTeXとは

LaTeX は文書作成ツールで,数式を含む文書の作成が比較的簡単かつ綺麗にできるため,主に理工系の論文レポート執筆に用いられます.


あれ?

論文やレポート? どう考えても名刺作成向けじゃないよね?

はい,全く向いていないと思います. 他にやっている人もいないだろうというモチベーションで今回もやっていきたいと思います. ちなみに去年もそんな不純な動機によって作られたものがいくつかあります.

muscle-keisuke.hatenablog.com

muscle-keisuke.hatenablog.com

というわけでやっていきます.

まずはペイントツールで作りたい名刺を作る

というわけで作りました. f:id:muscle_keisuke:20181214035520p:plain f:id:muscle_keisuke:20181214035548p:plain


...? あれ?

名刺完成しちゃった!!!!

というわけで終わります.



というわけにもいかないので,完成した名刺を基にLaTeXで名刺を作っていきます. もはや何のためにやってるのかわかりません.

LaTeXで名刺を作っていく

LaTeXの設定

まずは印刷用に用紙の設定をしていきます. 適当に調べてでてきた名刺作成用の紙のサイズを参考に設定していきます.

f:id:muscle_keisuke:20181214040107p:plain 引用:https://www.biccamera.com

用紙サイズはA4,余白は横14mm, 縦11mmみたいです. この用紙の中に10枚の名刺を印刷します. geometryパッケージを使って余白を設定します.

\documentclass[dvipdfmx]{jarticle}
\usepackage{geometry}
\geometry{left=14truemm, right=14truemm, top=11truemm, bottom=11truemm}

また,LaTeXはデフォルトで字下げやページ番号などの機能が有効なので,これを無効化します.

\pagestyle{empty}
\parindent=0pt

必要なパッケージも読み込んでおきます.

\usepackage{tikz} % TikZを読み込むため
\usepackage{graphicx} % 画像を読み込むため
\usepackage{geometry} % 余白調整するため
\usepackage[deluxe]{otf} % ヒラギノ丸ゴシックを使うため
\usetikzlibrary{calc} % 座標計算のため

背景画像を表示する

それでは次に名刺作成の方法ですが,LaTeXには論文に載せる図などを描画することができるTikZというパッケージがあります. 今回はこれを使って名刺のデザインをやっていきます.名刺のサイズは91mm x 55mmなので,まずは中央の(45.5mm, 27.5mm)に 91mm x 55mmに縮小した画像を配置していきます.

\begin{tikzpicture}[x=1mm, y=1mm, outer sep=0pt, inner sep=0pt]
      \node[outer sep=0pt, inner sep=0pt] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{300328.png}};
      \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{tikzpicture}

300328.pngはみりあちゃんの一枚絵でback_ground.pngは完成図の中で透過していた背景画像です. 背景画像の方はopacity=0.8のオプションで2割透過した状態になっています. f:id:muscle_keisuke:20181214041809p:plain

f:id:muscle_keisuke:20181214041129p:plain
300328.png

f:id:muscle_keisuke:20181214041148p:plain
background.png
引用:http://cgss-fan.xyz

しかし,これだけでは,10枚中左上の1枚にしか画像が表示されないので, TikZのforeachコマンドで10回ループさせます.

\foreach \x in {1,2,...,10}{
\begin{tikzpicture}[x=1mm, y=1mm, outer sep=0pt, inner sep=0pt]
      \node[outer sep=0pt, inner sep=0pt] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{300328.png}};
        \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
  \end{tikzpicture}
}

これで,10枚表示されます. f:id:muscle_keisuke:20181214042028p:plain 画像同士に自動で余白が入ってしまい,2ページにまたがって表示されてしまいます. 水平方向に余白を空ける\hspace垂直方向に余白を空ける\vspaceに負の値を入れて縦横の余白を消します.

\ifodd\x % 奇数枚目と偶数枚目の間の水平方向の余白を消す.
    \hspace{-1em}
  \fi
  \vspace{-1pt}

\xはforeachのカウンタ変数です. これで10枚の画像が1ページにまとまります. f:id:muscle_keisuke:20181214042706p:plain

背景画像の切り抜き

今の時点では,透過した背景画像が全体にかかった状態になっているのでこれを切り抜いていきます. TikZには\clipというコマンドがあり,座標指定で結んだ線で囲まれた範囲を切り抜くコマンドがあります. これを使って背景画像を完成図のように上三角と下三角に切り抜いていきます. 1枚絵を読み込んだ後に以下の行を追加します.

\begin{scope}
  \clip (15,55) -- (91,55) -- (91,15) -- (15,55);
  \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{scope}
\begin{scope}
  \clip (0,40) -- (76,0) -- (0,0) -- (0,40);
  \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{scope}

切り取りしてしまうと元の画像がなくなるので背景画像を上三角用,下三角用に2枚読み込んでいます. また,他の画像を切り抜いてしまわないように各clipコマンドは外のコマンドに影響を与えないscope環境の中で実行しています. これで,名刺の背景は完成です. f:id:muscle_keisuke:20181214044134p:plain

文字を入れていく

背景は完成したので必要な情報を入れていきます. 今回載せる情報は以下の通りです.

  • プロデューサー名
  • 担当名
  • TwitterID
  • デレステのゲームID

それぞれ,表示する位置座標を定義しておきます.

\coordinate (myname) at (55,50);
\coordinate (tanto) at ($(myname) + (16pt * 2.5, -16pt * 1.5)$);
\coordinate (gameID) at (23,5);
\coordinate (twitter) at ($(gameID) + (0, 16pt * 1.5)$);

担当名とTwitterIDの座標はそれぞれプロデューサー名とデレステIDの座標から 相対的に設定しています.

次に,表示ですが,下書きの段階では文字は何も考えずヒラギノ丸ゴシックを使いました. それが原因で,下書きでは和文だけでなく欧文もヒラギノ丸ゴシックになってしまっていました. ヒラギノフォントには従属欧文というものがあり,和文だけでなく欧文も用意されています. 単純な従属欧文であれば,LaTeXでも出力可能なのですが,更に従属欧文の丸ゴシックとなると出力方法が分かりませんでした. なので,欧文部分はヒラギノゴシックの従属欧文で表示することにしました.

{\fontsize{16pt}{0pt}\selectfont
        \node at (myname) {\mgfamily\userelfont\selectfont うっひょいP};
        \node at (tanto) {\mgfamily 赤城みりあ担当};
}
{\fontsize{12pt}{0pt}\selectfont
        \node at (twitter) {\mgfamily\userelfont\selectfont Twitter @keisuke495500};
        \node at (gameID) {\mgfamily\userelfont\selectfont デレステID 407845058};
}

上三角部分は文字サイズ16ptで,下三角部分は12ptにしました. また,\mgfamily和文を丸ゴシックに\userelfont\selectfontで欧文をヒラギノフォントの従属欧文で表示しています. f:id:muscle_keisuke:20181214045409p:plain 完成です.

最後に

今回は簡単なデザインだったのですぐできました. ぎりぎりまでネタが思いつかなかったので1日でやるにはちょうどいいテーマだったと思います.

次からはちゃんとペイントツールを使いたいと思います.

アイドルマスター Advent Calendar 2018 14日目はuzuforestさんの記事です。