Unityでプレビュー時に毎回SteamVRが立ち上がるのをやめさせたい

UnityでSteamVR Pluginを導入して開発中、UnityEditor上でプレビューするたびにSteamVRが立ち上がります。 この機能は、HMDを使うときはありがたいのですが、SteamVR Pluginを導入してやっぱりやめた時やVR HMDを使わずにプレビューするときなどにSteamVRが勝手に立ち上がるのは不便です。

f:id:shiba6v:20180217034352p:plain

私は、Timelineで作った映像をムービーキャプチャでキャプチャしたかったのですが、Profilerで見たときにXR.WaitForGPUが邪魔をしてフレームレートが30fpsを大きく切ってしまったので、ムービーキャプチャを使う際は一時的にSteamVRを利用しないようにする必要がありました。

以下に、SteamVRが勝手に立ち上がらないようにする方法を書きます。 まず、ツールバー/Edit/Project Settings/Playerを開きます。 すると、こういったPlayer Settingの画面が出てきます。 このXR SettingsのVirtual Reality Supportedのチェックを外せばOKです。 f:id:shiba6v:20180217033813p:plain

よくよく考えればそりゃ当然だという感じですが、ちょっと困ったのでメモとして残しておきます。

Mercari BOLD Internshipでアメリカに行ってきた話

この記事はCAMPHOR- Advent Calendar 2017 13日目の記事です. CAMPHOR- は京都のIT系学生のためのコミュニティです.興味がある人は,遊びに来てくれると嬉しいです.

はじめに

この記事には,Mercari BOLD Internship 2017 GLOBALというインターンに参加した時の記録を日記のような形でまとめた.このインターンについてざっくり言うと,学生エンジニアと学生プランナーが2人1組でアメリカやイギリスに行って,メルカリが世界で戦うためのアイディアを考えてくる,ということだ.

このインターンに応募した理由は2つあって,アメリカに行ってアメリカ人の文化を直接お話をすることでよく知りたいと思ったこと,これからウケるアプリやサービスを作ろうとするならユーザーヒアリングを体験してみるのも役に立ちそうだと思ったことの2つだった.

メルカリのBOLD Internshipは以前にも行われていたが,その時は応募のタイミングを逃した.今回は別の海外に行く系のイベントに落選して海外に行きたさが高まっていたこともあり,思い切って応募した.

この記事には,メルカリに提出するアウトプットと重なるようなことはできるだけ書かないようにしているが,書いたらまずそうな内容があったらTwitter( @_6v_ )などで指摘してほしい. この日記は,時系列で書いたため起伏がなくなってしまったが,アメリカに来た気分になって読んで頂けるとありがたい.

渡航

渡航前にしかできないことはいろいろあるので,少し準備していった.細かいことはいいからアメリカの写真を見せろ,という方は「日記」の章まで読み飛ばしてほしい.

ペアを組んだ

僕は早稲田大学3年の学生(以下,相方)とペアになった.相方はサークルをいろいろ立ち上げていたり,政治経済に詳しかったりで,いろいろ話を聞けたので楽しかった. (相方がオラオラ系とかウェイ系でなくて気持ち的に助かったし,高校の部活が同じとか結構共通点もあって盛り上がった.)

僕はエンジニア枠で通ったが,アイディアを考えるのにエンジニアのアドバンテージってあるのか?と少し思った.エンジニア視点からの実現可能性を含めて考えさせるためか,エンジニア学生採用のためか,新サービスのプロトタイプを期待しているのか,よく分からない.よく分からないが,結果的に僕は英語力とレポート執筆力でかなり貢献できた.何もエンジニアリングしていないのは許してほしい.

コロラド州に行くことになった

説明会で紙が配られ,コロラド州に決まった.うっわ,名前的に田舎じゃん!と思って,説明会で偶然再会した高校の友人がイギリスに行くことになったのを羨ましく思った. コロラド州の良いところを探そうとして,コロラド州についてちょっと調べたところこんな感じだった. f:id:shiba6v:20171212194358j:plain

  • ロッキー山脈の近くで,標高は1600メートルあり寒い
  • 中継ぎ空港があるので,成田から便がたくさん出ていて楽そう
  • 銃は免許制らしく,銃規制が行われているが,最近銃乱射事件があった
  • 最近は,大麻解禁で大麻スタートアップが出てきている

うん.まあ悪くはなさそう.少なくとも畑しかないド田舎ではないからヒアリングはできる.よかった.という感想を持った.

渡航日程が11月末になった

メルカリの発表では,渡航日は11/1-1/8だった. 年末は学校が無いので行きたいという人が多かったのか,最初の発表(12月末くらいだった気がする)からちょっと伸びた.説明会が10/31だったので,準備も考えると11月中旬以降じゃないと無理だった.

僕が実際に行ったのは,11/29-12/6になった.最初は年末に行きたかったが,相方と予定が合わなかったのでこの日程にした.僕が所属するのは留年率の高い電気電子工学科で,実験を欠席するのは苦渋の決断だった.しかし,事前に相談しておいたおかげで先生の理解を得られたため,いろいろと配慮してもらえた.レポートは空港の待ち時間で書いてPDFで出したし,今も遅れた分を取り返すために実験のレポートを書いている.

11月末の日程で行くのは不本意だったが,今思い返せば結果としては年末に行かなくてよかった.年末だったらおそらく大学でのヒアリングはできなかっただろう.

事前に準備した

事前に2人でこれくらいの準備をしていった.

  • 日本グッズの購入 (5000円分)
  • 日本のお菓子の購入 (5000円分)
  • 計画はざっくりとだけ立てた
  • 宿泊予定のAirbnbの宿の準備
  • デンバーの人に聞きたいことをまとめる
  • 日本のメルカリユーザーにヒアリング

f:id:shiba6v:20171212194213j:plain

事前にヒアリングのお礼として渡すために,日本グッズとお菓子を買っていった.アマゾンギフト券も買っていくことを考えたが,1枚あたり高いこと,それを使うほど長くヒアリングしないだろうこと,必要なら現地で買うのが良いことを踏まえてやめた.

ヒアリングのお礼に関して渡航後に振り返ると,日本のお菓子が半分くらい,日本グッズは数点だけ使い,アマゾンギフト券は使わなかった.アマゾンギフト券を使うような長いヒアリングはしなかったし,ミニマリスト的な考え方の人が多いのか形として残る日本グッズはあまり人気がなかった.

お菓子の中では,抹茶のキットカットが非常に人気があった.アメリカでは赤と黒キットカットしか売っていないし,キットカットなのでよく分からないものは入っていないという安心感があったのかもしれない.

行動計画については,細かく決めようがないのでざっくりと決めた. メルカリが広まったのは若い女性からだったということを考えて,事前に日本の若い女性にヒアリングするということにしたが,数少ない女性のお友達に話しかけるのをビビってほぼ聞けず,ポンコツ具合を発揮した.相方とのミーティングはたぶん4回ぐらいした.

そんなこんなで,レポート,就職面接,学祭とMashup Awardsへ向けての「猫になる」VRの準備と展示をやっていたら気が付くと渡航日だった.

日記

期間は8日間で,出国日と帰国日(時差の関係で帰国には2日かかる)を除いた5日間が活動日だった.

出国日

新幹線で成田空港まで行き,デンバー国際空港への直行便に乗る. f:id:shiba6v:20171212190046j:plain

空港に到着.空気が薄くて息を吸っても吸い足りない. f:id:shiba6v:20171212190236j:plain

滞在中はレンタカーをずっと借りる予定でいたが,窓口で聞いてみるとどこも25歳以下に対して追加料金がほぼ2倍かかるらしい.

メルカリからレンタカー乗るならめっちゃ気をつけてとアナウンスがあり,可能な限り安全に行こうと思ったことや, ロッキーマウンテン国立公園に行くつもりだったが,途中の道が冬は閉ざされていることが分かったこともあり,レンタカーを断念.ケチったわけではない.

到着してすぐに計画を変更し,2時間ほど空港で右往左往.

まあなんとかなるだろうとのことで,電車でデンバー市内へ移動. f:id:shiba6v:20171212190513j:plain

その後はバスに乗った. 僕らはどうやってバスを降りるかを知らずに必死に停車ボタンを探していたが,運転手に聞いたら教えてくれた. バスを止めたい時は,黄色い紐を引くらしい.ちまちましたボタンなんて押してられるかという心意気を感じた. f:id:shiba6v:20171212190808j:plain

宿泊はAirbnbを使ってね,とのお達しで事前に予約した宿へ.宿は結局滞在中に2軒利用した. 毎日宿を変える案もあったが,荷物の持ち運びが大変だということと,毎日宿が変わるとさらに疲れるということがあり,結果的には欲張らずに2件まで絞って正解だった気がする.

こちらが宿である.広すぎ.巨人の家かよ.

f:id:shiba6v:20171212190956j:plain

お腹が空いたのでスーパーへ.エナジードリンクがとにかく沢山置いてあった.今までは,アメリカのニュースで「エナジードリンクを2本飲んで死亡」というのを見て2本程度で死ぬわけないと思っていたが,これは2本飲んだら死ぬと思った. f:id:shiba6v:20171212195017j:plain

僕は料理が下手で,「お前よくその飯食えるな」と言われることがある程だが,相方は僕よりさらに料理ができないらしく,僕が料理した.

肉を焼き,パンと野菜を切って,雰囲気アメリカっぽい飯を作った.

お味の方は,相方「アメリカの飯は体に合わない…日本のみんなに会いたい…」と大好評(?)だった.

f:id:shiba6v:20171212194924j:plain

三階建の部屋で,屋上にはHotTabがある.HotTabとは,庭や屋上などに置くデカい浴槽である. そう,このHotTab目当てにこの宿を選んだのである.

HotTub最高!! 2時間くらい出たり入ったりしていたが,次の日の計画を立てたい相方を待たせていて申し訳ない気持ちになった.

f:id:shiba6v:20171212193417j:plain

1日目

朝寝坊し,スーパーで朝飯のベーグルを買った.相方はベーグルが硬くて大きすぎて困っていたが,デブい飯が好きな僕は2つ食べた.

事前に決めてきた質問事項をまずぶつけるために,コロラド大学に聞き込みに行った. 話しかけたらなんとかなるもので,相方の愛想が良いこともあり割と快く答えてくれる.回答率は80%くらいの感じ. (僕は普段,胡散臭いとか怪しいとか言われるので,愛想が良いのは正直羨ましい.) f:id:shiba6v:20171212200105j:plain

役割分担は,初めてのヒアリングで自然に決まった. 相方は話しかけて質問し,最高の愛想の良さと笑顔で場をつなぐ. 僕は質問への回答を聞いてメモを取り,追加で疑問点があれば質問してメモを取る. まあ我ながらいいコンビネーションだと思った.

f:id:shiba6v:20171212195854j:plain

相方「服ってどこに売る?」
デンバーの学生「売らないよ」
僕「じゃあ使い終わった服どうしてる?」
デンバーの学生「あー寄付するよ」
相方「なるほどー!」
僕「どこに寄付するの?」
デンバーの学生「Goodwillに寄付するよ」
僕「ぐっどうぃる?」
デンバーの学生「GoodWill」

といった感じで,Goodwillが何なのか気になりGoodwillへ. (2人ともGoodwillの発音が悪すぎてあまり聞き取ってくれなかったことにこの後も苦しめられた)

Goodwillは,不用品を寄付として集め,安く売ることで生活が苦しい人の暮らしを助けている.他には貧しい人を雇用したり,売り上げを慈善活動に使ったりしているらしい. f:id:shiba6v:20171212200624j:plain

この服は2ドル(200円).安すぎる. f:id:shiba6v:20171212200404j:plain

PC用カバンは後日お土産を詰めるために買った.陳列は,商品なのか分からないほど雑. 値段が書いておらず,レジに持っていったら「500万ドルね!!ハッハッハ!!」と言われたが,5ドル(500円)で売ってくれた. f:id:shiba6v:20171212200601j:plain

その後,晩飯を食べるために,多少高いが寿司レストランへ.1日目にしてもう日本食が恋しくなってしまった. メルカリからは報酬として12万円出ているので,多少高くつく選択肢も思い切って選びやすくて良かった. f:id:shiba6v:20171212202025j:plain

僕はアメイジングロール(1200円)という料理を頼んだ.サーモンとマグロとハマチの寿司(もちろん海苔は内巻き)に,ホタテと刻みわさびが乗っていた.日本の寿司とそれほど変わらない味だったので少し落ち着いた. f:id:shiba6v:20171212201035j:plain

LEDの装飾がわさびで固定されているのは斜め上の発想だった.

f:id:shiba6v:20171212200924j:plain

店員がデンバーに10年在住の日本人で,何でも聞いてね,と携帯番号を教えてもらった.

2日目

この日はさらに寝坊した.僕は,昨日スーパーで買ったチーズとナッツの塊をパンに塗って食べた.相方は,よくそれ食べられるね・・・と言ってサブウェイで朝食をとった.

コロラド大学で1日目のヒアリングの続きをした後,別のサンプルも欲しいと思い メトロポリタン・ステート・ユニバーシティー・オブ・デンバー (以下,MSU)に行った. 訳すと首都州立大学デンバーになって首都大学東京っぽい名前だと思いつつ,聞き込みをしていった. f:id:shiba6v:20171212202500j:plain

MSUでは,ビリヤードなどで遊んでいる人が多く話しかけづらかったためコロラド大学へ戻った.

コロラド大学とMSUは非常に近い場所にある大学ではあるが,カラーが違った.コロラド大学は,National Universityという種類の大学で,世界から学生が集まり,博士課程までの教育を行う.MSUはRegional Universityという種類の大学で,地域の住民を中心に学士課程,修士課程の教育を行う大学らしい.日本で言うところのL型大学G型大学の話に近いのかなと思った.

アメリカはクレジットカードで決済を行うのが普通で,この滞在中には僕は現金を一切使わずクレジットカードだけで生活できた.自動販売機すらクレジットカード対応なのはとても驚いた. そうなると,怪しい自動販売機にクレジットカードが吸い込まれていくことは無いのかと思ったが,日本のように道端にたくさん自動販売機があるわけではないのでそのような問題は起きないことに気がついた.

f:id:shiba6v:20171212202630j:plain

昼過ぎは,昨日作った新たな角度からの調査項目に関してヒアリングをした.相方はお疲れの模様.そりゃそうだ.

夜にはピザを頼んだ.日本のピザのLサイズは直径36cmだが,これは50cm.これだけ大きくても,ハーフアンドハーフのようなみみっちいことはしないのだ.

チーズとマカロニの相性は最高だったが,これはデカすぎてさすがに残した.残した分は朝ごはんになった.相方が頼んだレモネードは日本のレモネードとは違って炭酸が入っていない優しい味だった.実際に見たわけではないが,アメリカで子供がレモネードスタンドで売っている光景が目に浮かんだ. f:id:shiba6v:20171212203016j:plain

3日目

3日目は気分転換のために観光の日にした.コロラドスプリングスに行くために,レンタカーを借りた.もちろん左ハンドルである. 僕の運転は,日本にいる時には「怖すぎて死ぬかと思った!運転やめろ!」とよく褒められるので,運転が好きだという相方に全部任せた.ありがたい. f:id:shiba6v:20171212203943j:plain

ロッキー山脈のパイクスピーク東のふもとの町,コロラドスプリングスに行き,ガーデンオブゴッズという観光地を見た.敷地内に駐車場がたくさんあるので,どれかに停めて歩いて回るという感じだった.入場は無料で,アメリカの懐の深さを感じた.

f:id:shiba6v:20171212204406j:plain

感想としては,とにかく岩がデカい.最近遊んだゼルダの伝説BoWで見た崖を思い出した.ロッククライミングをしている人もいて,より一層ゼルダの伝説BoWを思い出した.小さい頃からこういった景色を見て,大自然に触れて暮らせるコロラド州の子供が羨ましくなった.

f:id:shiba6v:20171212204735j:plain

3日目には全く関係ないが,1日目に空港の近くで見かけた銅像ゼルダの伝説BoWにあったものに非常に似ていたので驚いたことを思い出した. f:id:shiba6v:20171212224417j:plain

他に気づいたこととして,観光道でもスーパーでもそうだが,すべての道は車椅子の人にも通れる広さになっている.道が広いため,人と人がぶつかることは無いし,車が横断歩道前でギリギリまで人に近づくようなことも無い.

これは,バランスロックという崩れそうで崩れない岩.岩の塊と地面の接続部分は硬い地層になっていて,そうでない部分は触るとポロポロと崩れそうな部分もあった.

f:id:shiba6v:20171212205139j:plain

帰りにオールドコロラドシティというゴールドラッシュの時代に栄えたという町に寄り,昼食を食べた.

僕はアメリカで大きなハンバーガーを食べるのが夢だったので,迷わずハンバーガーを注文.店員に「〜〜〜?ポテトのせる?〜〜〜?」と聞かれてよく分からなかったのでYESと答えたらこれが出てきた.いやポテト乗せるのそこかい,とツッコんでしまった.

コショウが効きすぎでキツかったけど,食べ応えバツグンで美味しかった.

f:id:shiba6v:20171212210414j:plain

寿司レストランで会った日本人が,明日クリスマスパレードがあると言っていたことを思い出し,デンバーに戻ってレンタカーを返してから行くことにした. レンタカーを返そうとしたものの,営業時間外に鍵を返却する方法が分からず,とりあえず駐車場に車を置いてパレードに行った.かなり混んでいたが,見れてよかった.

f:id:shiba6v:20171212210816j:plain

マーチングバンドや踊りなど色々な行進があった.その中で,LEDで装飾したパトカーと救急車がサイレンを鳴らしたり停めたりして行進していたのがとても気に入った.これは日本でやったら苦情が来そうなクールさだと思った.

f:id:shiba6v:20171212211018j:plain

帰りはバスがマップ通りでなく,乗れそうになかったため,Uberを召喚した.

召喚!!!来いUber!!!

f:id:shiba6v:20171212211034j:plain

しかし,渋滞のせいで20分ほど待ってもほぼ動かず,これに乗っても帰れそうにないので召喚をキャンセルした.

その後もバスを探して歩き回ったが,結局,歩いて帰宅した.この日は2万歩歩いた.写真は一般道の高速レーンで,有料で専用レーンを通れるというものだが,これは車のナンバープレートをカメラが読み取って請求するらしい.ETCはなかった.

f:id:shiba6v:20171212211830j:plain

この日から別のAirbnbの宿に泊まることにしたが,鍵ボックスがあるタイプでなくホストに電話してロック番号を教えてもらう方式だった.電話をする際にSIMカードが必要だったので,ポケットWi-FiでなくSIMカードを持ってきて本当に良かったと思った.下手すると0℃近い外気温の中,野宿をしていたかもしれない.

f:id:shiba6v:20171212211705j:plain

4日目

レンタカーの鍵を返しに行く必要があったため,朝早く起きてデンバーに向かった.鍵を返却する場所を探した.どこに返せばいいのか・・・?

f:id:shiba6v:20171212212540j:plain

これかーい!!
返却の際は手続きは必要なく,鍵ボックスもただの引き出しで,不安になって店員に聞いてみたがこれに鍵を入れるだけで良いらしい.

昼食は,YelpやGoogle Mapで評価の高いNick's Dinerに行き,オムレツを頼んだ.中に入っている肉の味が濃くてとても美味しかった.

f:id:shiba6v:20171212213154j:plain

道を歩いていると,道端によく新聞が捨てられているのを見かけたが,これは捨てられているのではなく配達されているらしい.

f:id:shiba6v:20171212213625j:plain

この荷物もどうやら配達されているらしい.捨てられているようにしか見えない・・・

f:id:shiba6v:20171212213649j:plain

この日は,ヒアリング結果をまとめた.そうするうちに,デンバーの人の物の売買に対する課題がだいたい分かってきた.メルカリが新しく作るべきサービス案を作成し,次の日のヒアリングで新サービスに関する意見をもらうという予定を立てた.

夕食にはUber EATSでメキシコ料理をデリバリーした.タコスは外がサクサクでとても美味しかった. f:id:shiba6v:20171212214036j:plain

5日目

この日はコロラド大学に行き,新サービス案をぶつけて検証した. 疲れている相方に,まだ検証したいというワガママを聞いてもらって新サービスに対する意見をもらった.多少修正するべき部分もあったが,全体的には「それはとても便利だと思う!」という感じで好評だった. 大学で買って飲んだモンスターは炭酸が入っておらずスルスルと飲めてしまって怖かった.

f:id:shiba6v:20171212214554j:plain

この日もデンバー市内のお店を回って,どこから商品が来て誰に売るのかといったことを調査した.日本から来た学生だと言うといろいろ教えてくれるので,学生はとても良い身分だと思った.

出発日

帰る時に,駅でサンドイッチを食べた.半分でも満足できる量だが,ハムが大量に入っているので日本のコンビニのサンドイッチには見習ってほしい.

f:id:shiba6v:20171212215012j:plain

最後に

アメリカで行った場所や食べたもの,見たこと聞いたこと,それについて感じたことについて漫然と書いたが,このインターンに参加することができてとても良かったと思う.

ただ海外旅行をして観光地を見るのに比べると非常に多く現地の人の話を聞く機会があり,文化の違いに触れることができた.実際に行くまでは,ここまでアメリカの人の売り買い文化について理解が深まるとは思っていなかったので,とても満足だった.

最初はメルカリに提出するアウトプットの内容の見当も付かなかったが,行ってみると現地の人が抱えている売買に対する課題がたくさん見つかり,新規サービス案を考えることができた.

また,日本から世界へ向けてプロダクトを広げていくメルカリは本当にステキだと思った.世界の様子の現地調査をするのに学生をインターン生として雇うのもステキで,このインターンに来た学生がアメリカを見ることで日本に留まらない視点を持って,それがいずれ何らかの形で日本に還元されていくと思った.

他の企業でも,世界に向けてプロダクトを出している企業はステキだと思うので,その際の世界に向けた目と耳の役割を少しでも学生にインターンという形でやらせてもらえると,10年後20年後,面白いサービスが日本から世界に向けて沢山出てくるような気がする.

おしまい!

次回,CAMPHOR- Advent Calendar 2017 14日目は @marty1martie の担当です.

RailsでGoogle AdsenseのJavaScriptがエラーを吐く (adsbygoogle.push() error: All ins elements in the DOM with class=adsbygoogle already have ads in them.)

Railsで作っているプロジェクトにGoogle Adsenseのタグを埋め込んでいました. 新しく作ったリンクへページ遷移をすると,次のエラーが出ました.

"adsbygoogle.push() error: All ins elements in the DOM with class=adsbygoogle already have ads in them."

f:id:shiba6v:20171112000718p:plain

adsbygoogle.push()で,新しい広告を<ins>に追加しようとしたけど,もう既に広告あるじゃん!っていう意味です.

Railsの機能のturbolinksが邪魔しているだろうなと思ったので,次のサイトを参考にturbolinksをオフにしたらエラーが出なくなりました.

qiita.com

turbolinksをオフにしてページの読み込みが遅くなるのが嫌だったので,turbolinksをオンに戻してどうにかできないか探しました.

次の記事によると,<script><body>内に書くとturbolinksとは共存しないらしいことが分かりました.

qiita.com

また,Google Adsense turbolinksで調べてたら,turbolinksの対応方法が出てきました.

Turbolinks Compatibility with Google AdSense

う〜んわからん・・・ でもturbolinks切りたくない・・・

もしかして,既に広告があるのが悪いなら,リロードの度に消せば良い・・・?

改変前Google Adsenseコード

    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-xxxxxxxxxxxx"
         data-ad-slot="xxxxxxxxxxx"
         data-ad-format="auto"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>

改変後Google Adsenseコード

    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-xxxxxxxxxxxx"
         data-ad-slot="xxxxxxxxxxx"
         data-ad-format="auto"></ins>
    <script>
    var element = document.getElementsByClassName("adsbygoogle")[0];
    while (element.firstChild) element.removeChild(element.firstChild);
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>

<ins>の子要素をエラーの原因になった(adsbygoogle = window.adsbygoogle || []).push({});の前に毎回消すようにしました. やってみると,エラーは出たままですが(謎)リロードの度に広告が表示されるようになりました. よかった〜!

理系大学生のための超手抜きLaTeXレポート入門

概要

  • とりあえず書き始める (CloudLaTeX)
  • 最低限のTeXの書き方 (section, equation, enumerate, itemize)
  • 参照を使う (label, ref)
  • 図を貼る (figure, 絶対配置)
  • Excelから表を作る (csv2tex)
  • ソースコードを貼り付ける(listing)
  • 見やすくする (Atomパッケージでハイライトする)

とりあえず書き始める

登録

環境構築をしたくないので,今回はTeXをインストールしません. CloudLaTeXというサービスを使います. 最初に会員登録をしてください.

プロジェクト作成

テンプレートから作成 > XeLaTeX 入門レポート > 作成 を押してください.

f:id:shiba6v:20171025131040p:plain

左側のmain.texを押してファイルを開いて,右上のコンパイルボタンを押すとPDFが生成されます.

これでTeXを書き始めることができるようになります.

書き始める

  • エディタ(Atomとか)を開く
  • 実験レポートテンプレートをエディタに貼って保存
  • エディタ上でレポートを書く
  • ある程度書いたらエディタからCloudLaTeXにコピペ
  • コンパイルボタンを2回押す.

それ以降は,書いてコピペしてコンパイル×2,を繰り返せばOKです. 一旦エディタ上でレポートを書くのは,書きやすいのとオフラインでも作業できるのが理由です.

実験レポートテンプレートは一番下にあります.

最低限のTeXの書き方

section

\section{あああ}

\sectionの後の{}で挟んだ日本語がセクションのタイトルになります.

セクションは階層構造にできます.subsubsectionもあるので3段階作れます.

\section{あああ}
  \subsection{あああ1}
  \subsection{あああ2}

f:id:shiba6v:20171025135736p:plain

インデントをスペース2個とかで正しくやっておくと,見やすくなるのに加えてエディタの機能で必要ない部分を非表示にできたりする機能が使えたりするのでお得です.

equation

      \begin{equation}
        v_{o} = - \frac{R_{f}}{R_{0}} (v_{1} + v_{2})
        \label{eq:m_add_io_2}
      \end{equation}

\begin{equation}\end{equation}で挟まれた行に数式を書けます.labelは後で説明します.この例の,\frac{分子}{分母}は分数の書き方です.()は普通にカッコとして表示されます.$R_{f}$はRの下にfを付けた下付き文字です. f:id:shiba6v:20171025135839p:plain

複数行equationを書きたいときはeqnarrayなどもありますが,equationを複数回書けばいいと思います.

数式モード

equationでは中に式を書けましたが,文章中で数式を書きたいときは$$で挟みます.例えば,Ωなどのギリシャ文字は全角で入れても入らないので$\Omega$とします.ωなら$\omega$です.

enumerate

原理の章などで,手順の順番を付けて箇条書きにしたい場合はenumerateを使います.

    \begin{enumerate}
      \item コンパレータの出力が負になる.
      \item Duty比が小さくなる.
    \end{enumerate}

\beginと\endで挟むのはequationと同じですが,\itemを増やしていけば要素を増やせます. f:id:shiba6v:20171025141014p:plain

itemize

使用器具の章などで,順番を付けずに箇条書したい場合はitemizeを使います.

  \begin{itemize}
    \item 摺動抵抗 75$\Omega$
    \item 電解コンデンサ 4700$\mu$F 耐圧16V
  \end{itemize}

書き方はenumerateと同じです.

f:id:shiba6v:20171025141511p:plain

参照を使う

equationの説明で貼った\label{eq:m_add_io_2}に対して,文中で参照をすることができます.

結果を式\ref{eq:m_add_io_2}に示す.

f:id:shiba6v:20171025142405p:plain

labelの内容を\ref{}で挟めば参照できます.参照が失敗すると出力PDFでは?で出てくるので,レポート提出前にPDFに?で検索をかけましょう.

labelの中身には書き方があって, equationへの参照の場合は,\label{eq:hogehoge} sectionやsubsectionなら,\label{sec:hogehoge} figureなら\label{fig:hogehoge} tableなら\label{tab:hogehoge} と書きます.

図を貼る

使いたい図をCloudLaTeXにドラッグアンドドロップします. ファイル名とlabelを揃えておくと楽です. 今回はr_sokutei_1.pngというファイルを使いました.

\begin{figure}[htbp]
\begin{center}
\includegraphics[width=10cm]{r_sokutei_1.png}
\caption{1回目の測定の図}
\label{fig:r_sokutei_1}
\end{center}
\end{figure}

図が思った位置に出ない場合は,\begin{figure}[htbp]\begin{figure}[H]にしてみてください. (一番下のテンプレートを利用しない場合は,\usepackage{here}を上の方に書いてみてください.)

Excelから表を作る

Excelの表をコピペしてこのサイトから表を作れます.

csvをLaTeXのtabularで使える形式に

Excelでセルを選択して, 「区切り文字はタブ」,「行末に\hlineを付ける」に両方チェックを入れて,変換ボタンを押しましょう. (ファイル形式がcsvの場合は,「区切り文字はタブ」のチェックを外してください.)

f:id:shiba6v:20171026165028p:plain

表(table)は次のタグで囲みます.

\begin{table}[H]
  \begin{center}
    \caption{測定結果}
    \begin{tabular}{|r|r|r|} \hline

    \end{tabular}
    \label{tab:r_1}
  \end{center}
\end{table}

\hlineはhorizontal lineで,表の横線を引くために書きます. 表の縦線は\begin{tabular}{|r|r|r|}|(Shift+円マーク)で引きます.rというのは,右寄せということです.(cは中央寄せ,lは左寄せ)

{|r|r|r|}の部分が列の数と配置を決めています.今回の例は2列なので,{|r|r|}にするとコンパイルが通ります.

f:id:shiba6v:20171026170558p:plain このエラーは数式を数式モードで書いていないことが理由のエラーです.$$で囲んで,さらに下付き文字を{}で囲みましょう.(囲まないとVinのiだけ下付きになります.)

$V_{in}$ & $V_{out}$

labelも文中で参照するために変えておきましょう.

ソースコードを貼り付ける

\begin{lstlisting}
  #include <stdio.h>
  int main(){
    return 0;
  }
\end{lstlisting}

equationと同じ感じで,\begin{lstlisting}と\end{lstlisting}ではさみます. インデントも含めて書いたとおりそのままに出力されます.

見やすくする

Sublime Textの場合

インストールしてすぐの状態でシンタックスハイライトをつけてくれるらしいです.こちらをおすすめします.

Atomの場合

latexerとlanguage-latexのパッケージを入れます.

メニューバーの Atom > Preferences > Install から検索してインストールできます.(macの場合)

language-latex

デフォルトだとTeXの原稿に色が付いていないのですが,このパッケージを入れると,シンタックスハイライトを付けてくれます.エディタ上で書いている原稿を.texの拡張子で保存すると利用できます.

latexer

補間をしてくれます. subsecと打つと,\subsection{subsection name}を出してくれます.

この記事はこれでおしまいです!! 残りはおまけです.ありがとうございました.

おまけ

僕のやっている参照の命名規則

書いている途中に \label が何のlabelかわからなくなりがちです.結果のlabelは \label{sec:r_hoge} といったようにprefix(接頭辞)としてrをつけたりすることで,ラベルの名前から何のlabelなのか分かるようにしています.

図や表のlabelの内容は,sectionのlabelと合わせると分かりやすくなります.

図を後で入れたい

僕は,文章とかを先に大まかに入れてしまって,図は後で書くと早いタイプです.最初の段階では図を入れる予定の部分に?を暫定的に入れておきます.しばらくして図を書いたら?でエディタ内で検索をかけて図を入れます.

その他のコマンド

\\

行末に入れると改行になります.

\newpage

強制的に改ページします.図がはみ出る場合にもどうぞ.

_

$v_{out}$と書くと,vの下にoutが付いた下付き文字ができます.v_outだとこのようになります. f:id:shiba6v:20171026173300p:plain

僕はミス防止のために$v_{o}$などの下に付く文字が一文字でも{}で囲みます. ちなみに上付き文字は_の代わりに^を使えば良いです.

複数texファイルを作った場合

画像を2つのtexファイルで共有したい場合などに,texファイルを複数作ることがあると思います. その場合は,コンパイル先を指定する必要があります.

例えば,この場合は,編集のために開いているのはreport.texですがコンパイル先として指定しているのはmain.texです.どんなにreport.texを編集してもPDFとして出てくるのはmain.texになってしまいます. f:id:shiba6v:20171028135618p:plain

コンパイル先を変えるには,ターゲット設定を行いましょう.アイコンが黒くなっているtexファイルがコンパイルのターゲットになっているファイルです. f:id:shiba6v:20171028135731p:plain

付録

実験レポートテンプレート

\documentclass[a4paper,11pt]{bxjsarticle}
\usepackage{xltxtra}
\usepackage{zxjatype}
\usepackage{here}
\setjamainfont[BoldFont=ipaexm.ttf]{ipaexm.ttf}
\setjasansfont[BoldFont=ipaexg.ttf]{ipaexg.ttf}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{listings}
\usepackage{bm}
\lstset{
basicstyle={\scriptsize}
}

\begin{document}
\begin{titlepage}
  \begin{center}
    \vspace*{150truept}
    {\Huge 実験1 hogeの実験}\\ % タイトル
    \vspace{120truept}
    {\huge 学生番号 1026-27-xxxx}\\ % 学籍番号
    \vspace{50truept}
    {\huge 京大太郎}\\ % 著者
    \vspace{50truept}
    {\huge 平成29年10月25日}\\ % 提出日
  \end{center}
\end{titlepage}

%=====================================================================
\section{目的} %purpose


%=====================================================================
\section{原理} %methods
  \subsection{}
    \label{sec:m_}

%=====================================================================
\section{方法} %how to
  \subsection{}
    \label{sec:h_}
    \begin{enumerate}
      \item
      \item
      \item
    \end{enumerate}

%=====================================================================
\section{使用器具} %equipments
  \begin{itemize}
    \item
    \item
  \end{itemize}

%=====================================================================
\section{結果} %results
  \subsection{}
  \label{sec:r_}

%=====================================================================
\section{考察} %discussions
  \subsection{}
  \label{sec:d_}

%=====================================================================
\section{課題} %assignments
  \subsection{課題1.1}
  \label{sec:a_}


%=====================================================================
\section{参考文献}
京都大学工学部電気系教室: 「電気電子工学実習」 \\

\end{document}