github.io + jekyll での自作サイト設定

ごめんなさいやっぱり無理でした…

流れ

  1. ローカルのコンピュータにruby, jekyllの環境を構築します
  2. jekyllで適当なサイトを作成します
  3. 作成したサイトをgithub pagesに反映させてみます
  4. 作成したサイトのテーマを変更してみます

参考資料

段階 1, 2, 3 で参考になります。

qiita.com

環境構築

まずはDependency versionsで、今github pages側が

  1. どのバージョンのrubyに対応しているか
  2. github-pagesのバージョンはいくつか

といったことを確認しましょう。 

pages.github.com

Rubyの導入 (Linux)

rubyの導入のためにまずはrbenvを入れます。

が、さらにその前にanyenvの導入をおすすめします。

anyenvはrbenvのみならずpyenvといった他の言語のenvをまとめて管理できるツールです。

github.comanyenvの導入や設定方法、使い方は上記のサイトを参照してください。

もちろん、rbenv単体で利用したとしても操作方法に一切差はありません。

 

さて、rbenvで、rubyのバージョンを指定しつつrubyをインストールします。

rbenv install (Dependency で指定されている rubyのバージョン)

rbenv global (Dependency で指定されている rubyのバージョン)

例) rbenv install 2.4.2

例) rbenv global (rubyのバージョン)

Ubuntuなら ~/.bashrcの編集等をお忘れなく。

github-pages の導入

続いてgem でgithub-pagesを導入。

gem install github-pages -v (指定のgithub-pages のバージョン)

例) gem install github-pages -v 175

これでDependency versions に書いてあるgemは全部一括で、しかも記載された通りのバージョンで導入できました。

jekyll new (ディレクトリ名)
rm Gemfile Gemflie.lock

rm Gemfile Gemfile.lock の実行についてはQiita記事を参考にしているのでなんとも言えません。Gemfileは削除してもしなくてもいいが、Gemfileを使う場合は必ず以下の1行目をコメントアウトし、2行目を追加する必要がある。

gem "jekyll", "~> 3.6.2"


gem 'github-pages', group: :jekyll_plugins

 

jekyll s

でローカルでどのようなサイトが出来上がるかを確認することができます。

github pagesに反映

で、とりあえずこのサンプルページをgithubpages上にあげてみます。

ちなみに、 (githubユーザー名).github.io に直接ページを作成するならリポジトリ名を(githubユーザー名).github.ioに設定すればよいですが、そうでないならばブランチ名をgh-pagesに設定することで、<githubユーザー名>.github.io/リポジトリ名に設定することができます。

git init

git add .

git commit -m "Initial commit"

git branch -m master gh-pages

git remote add origin https://github.com/(ユーザー名)/(リポジトリ名).git

git push -u origin gh-pages

見た目がおかしいとき

で、このままだとページの見た目が大きく崩れていると思います。

そこで、以下のStackOverflowのQ&Aを参考にして

stackoverflow.com_config.ymlからbaseurlの設定を見つけ出してリポジトリ名を書き込みます。

また、index.html の css の設定を変更します。

以上の変更をgithub上に反映すれば、ページは綺麗に表示できるようになったと思います。

 

他のテーマの使用

はじめに

他のテーマの使用のためには、Gemfileを編集する必要があります。

数字は一例ですが、以下の記述を

gem "jekyll", "~> 3.6.2"

以下のように変更してください。

# gem "jekyll", "~> 3.6.2" 

gem 'github-pages', group: :jekyll_plugins

また、念の為に libcurl4-openssl-dev を apt-get等で導入してください。

本題

minimal mistakes という、githubが公式で提供しているわけではないテーマを使うためには、

_config.ymlに対して以下の行を追加します。

plugins:
  - jekyll-remote-theme

remote_theme: mmistakes/minimal-mistakes

なお、おそらくminimal mistakes以外にも追加することは可能と思われます。

以下のissue内ではテーマカラーを選択することができないと言われていますが、現在では

minimal_mistakes_skin : "default" # この他 "dark" 等あり

 でちゃんと変更することができてます。

github.comほか、_config.ymlに設定を追加していくことで、minimal mistakesが持つ特徴を反映させることが可能です。

_config.ymlに追加するべきオプション等については、テーマ元となるリポジトリにある_config.ymlを参考にしてください。例えば、minimal mistakesであれば

以下のリポジトリ

github.com(↑テーマのはいったリポジトリ ↓リポジトリのなかでも参照すべきファイル)

minimal-mistakes/_config.yml at master · mmistakes/minimal-mistakes · GitHub

 

jekyll s をローカルで実行された方は気がつくかもしれませんが、github pages上サイトにテーマを反映させるにはわりかし長い時間がかかります(それでも記事一切無しで1分未満、細かく言えば36秒でした)。

 

注意点

ローカルでうまく動かないからと言って凹まないで…設定さえ合っていればリモートで動くから…

 

備忘録

Minimal Mistakesというテーマを気に入ったので、このテーマを利用します。

 

以下の手順1, 3の詳細はここ見ればOK

Adding a Jekyll theme to your GitHub Pages site with the Jekyll Theme Chooser - User Documentation

 

 githubpagesの導入

1. githubに登録したら、以下の手順に従います

pages.github.com

github側では既定のデザインテーマが用意されているのでそっち使ってもOK

この場合はrubyのインストールとか飛ばしてもへーき(手順も英語読めれば余裕)

Adding a Jekyll theme to your GitHub Pages site with the Jekyll Theme Chooser - User Documentation

 

jekyllの導入

2. PC上にrubyをインストールします

オブジェクト指向スクリプト言語 Ruby

(私はUbuntuのrbenvでインストールしました、Windowsでの設定はgemの設定で文句いろいろ言われるので調教を諦めました)

 

3. gemでJekyll, bundleを導入します

(rbenvでruby入れたせいか以下の設定が必要でした)

(ubuntuのaptだと普通にbundleのバージョンが古いし勝手にruby2.3をインストールしようとするのでダメ)

qiita.com

使いたいテーマの導入

4. 導入したいテーマがプリセットなものでない場合は以下を参考に導入する。

たまたま私もminimal mistakesが気に入ったので以下のバイブルを参考にした。

ともかく後の運びはこの記事を読めばわかる。

k11i.bi

以下のダウンロードからzipファイルを引っ張ってきて、

ローカルの<username>.github.io上に展開する

mmistakes.github.io

展開したらGemfileが見つかるはずなので、githubpages用にGemfileを以下のように編集する

source "https://rubygems.org"
gem "github-pages", group: :jekyll_plugins

その後 bundle update, または bundle installを実行

_config.ymlに以下を記述

remote_theme: "mmistakes/minimal-mistakes"

 

たぶんこの時点で

bundle exec jekyll serve

を実行すればローカルでページが生成されて、アドレスがコンソール上に表示される

そのアドレスをブラウザで開けば完成形が見られる。

 

 

Webサイトの設定

_config.ymlを編集する。

ファイルの末尾に以下を追加する

remote_theme : "mmistakes/minimal-mistakes"

以降はここ参照。

mmistakes.github.io

minimal_mistakes_skin : では様々なカラーテーマがあるので選ぶ

locale : "en-US" から "ja-JP"  に変更

title : "サイトのタイトル"

ほかにもsnsとの連携、サイト管理者情報(bio)、アクセス統計をとるシステムとの連携(google analyticsなど)、記事のタグ付け方法、コメント掲載機能(reCHAPTA対応、様々なアカウントと連携可能)

等々、設定はいろいろあるけれども、先ほど示した日本語のページに詳しく書かれているのでそちらを参照してください。

あと、_config.yml についてはそのファイル形式上極めて面倒な形式が決まっているのだけれども、エラーがでた時はその行数と位置を絶対当てにしないで欲しい。

 

あとはおいおいwikiを追っていけばわかる

RC直列回路

はじめに

以下のサイトの内容を実際に実験した結果をまとめたものです

Introduction to RC Circuits [Analog Devices Wiki]

回路図等の図は上記を参照願います

 

使用機器

www.analog.com

www.analog.com

実験結果

RC直列回路(@50Hz)

f:id:heruwakame:20180218193050p:plain

 

RC直列回路(@500Hz)

f:id:heruwakame:20180218193118p:plain

 

RC直列回路(@1000Hz)

f:id:heruwakame:20180218193150p:plain

 

RC直列回路(@1500Hz)

f:id:heruwakame:20180218193211p:plain

 

結論

周波数が高くなると明らかに振幅が小さくなっていることがわかります

測定結果を出力して周波数による振幅比の変化をグラフで表示しても良かったんですが、どうもExport Data機能が完全に死んでいるらしいので難しいですね。ソフトウェアを管理者権限で動かしたら保存できるのかな?

分圧・分流の法則

はじめに

以下のサイトの内容を実際に実験した結果をまとめたものです

M1K Basics and Voltage/Current Dividers [Analog Devices Wiki]

回路図等の図は上記を参照願います

 

使用機器

www.analog.com

www.analog.com

実験結果

分圧回路

定電圧源

f:id:heruwakame:20180218185755p:plain

電圧実測値:\(2.9221 {\rm V}\)

電圧理論値:\(V=5.0\times\frac{1.5}{1.0+1.5}=3.0 {\rm V}\)

 

正弦波電圧源(交流ではない)

f:id:heruwakame:20180218185816p:plain

 

電圧理論値-最大値:\(V_{\rm max}=4.5\times\frac{1.5}{1.0+1.5}=2.7 {\rm V}\)

電圧理論値-最小値:\(V_{\rm min}=0.5\times\frac{1.5}{1.0+1.5}=0.3 {\rm V}\)

電圧実験値:理論値とだいたい一緒(細かい電圧値を見る方法がわからないので…)

 

分流回路

定電流源

f:id:heruwakame:20180218185908p:plain

電圧実測値:\(2.7221 {\rm V}\)

よって\(1.0{\rm k}\Omega\)抵抗を流れる電流値は

電圧理論値:\(V=\frac{2.7221}{1.0}=2.7221 {\rm mA}\)

 

正弦波電流源(交流ではない)

f:id:heruwakame:20180218185920p:plain

 

何が起きたのかよくわからない。計算値と合わない。

「考察」とは

今北産業*1

考察のためには

  1. 文章力が大事
  2. 統計学も大事
  3. 調査能力も大事

 

まえがき

工学部の実験講義で課されるレポートの中で最も頭を抱えたくなるのは、

  • その分量の多さ
  • 何を書けばいいのかさっぱりわからない実験原理
  • 大量のデータ処理がとてもめんどくさい実験結果
  • まず問題文からして言っていることがさっぱりわからない課題

以上4つのいずれでもなく、間違いなく

  • 定性的・定量的な考察

の部分であろう。

 

私が普通科高校に在籍していたときに課された実験の実施回数は片手で数える程度でしかなく、またその実験に関してたとえいい加減なレポートを書いて提出したとしても最低でも「良」(またはB)評価が来たものだった。

しかし大学ではご丁寧にも「定性的・定量的な考察」という評価観点が入ってくる。

普通ならそんなこと言われたって…わけがわからないよ…としょげるところである。

実際私も言っている意味がよくわからなかったので、とりあえずTAから貰ったヒントを活かして、精度や誤差、平均値などを論じたりした。しかし、今考えるともっとやりようはあったのではないかと思う。*2

目的

本記事の目的は、そのような「定量的な考察ぅ?わけがわからないよ…」という、大学1年のときの私のような人に対して、定量的な考察の仕方をまとめて示すことにある。*3

考察とは?

そもそも考察とは、例えば実験結果で見つかった傾向や外れ値の、要因または原因の追究や、実験結果は理論的に得られる結果と比較して妥当であるかどうかの分析を行う、レポートの中では最も重要な部分である。

 

以下しばらくポエム

考察という部分がなかったら、「ピサの斜塔のてっぺんから鉄球を落としたら地面に向かって落ちました、羽を落としたら鉄球よりもゆっくりと地面に向かって落ちていきました!」と報告する「だけ」で済んでしまう。このような報告は観察日記に過ぎない。(極論)

より重要なのは、実験結果についてその妥当性を検証を行うこと、あるいはたとえ後世で間違っていたと証明されてしまうにしても何らかの仮説を立てることであり、そしてその場合は単に仮説をたてるだけではなく、その仮説が成り立つ理由を、レポートを読んだ人が十分納得できるように列挙していく過程にある。

と私は考えている。

ポエム終了

 

考察に必要なこと

考察は学生によってその質と量とに大きく差が出る。

1. 文章力

まず、読み手を納得させるためには、読みやすい文章*4が必須である。

例えば、複数の実験結果について比較するときに、実験1について言及していたかと思えば、いつの間にか断りもなく実験2の結果について言及していていたり、かと思えばやはり何の断りもなく再び実験1の結果について言及している、という場合や、「あれ」や「それ」、「これ」の指示語の先が明らかでない場合があると、「今この文章は何について述べているんだろう?」となりかねない。

適当にガーッと考察を書いているとたまにそういった文章が現れるため、レポートを書くときは「今この文章は何について述べているか」を常に意識することが大切である。

この点を満足するには、何かに言及するときははっきりと対象を述べたり、「これ」といった指示語を控えて「この傾向は」「この結果は」「この値は」といったように名詞を伴って利用するべきであるし、もしどうしても指示語単体を使う必要がでてきたときには、指示先となる文章との距離を最低限に抑えるべきである。また、「しかし」「一方で」「したがって」「ほかにも」「加えて」といった接続詞を適切に使う必要がある。*5 *6

 

この記事にあるような支離滅裂な文章って読んでて辛い。現にいま読み直していて辛い。レポートを読む先生は更に大変だと思う。もしかしたら実は先生方は精神や感情を押し殺してレポートを読んでいるのではないだろうか。あまりに酷い文章だと点数に悪影響を与えているかもしれない。

 

2. 統計学的な知識

実験ではデータを多く扱うので、その処理や表現方法に長けている必要がある。

例えばデータの性質は何でもかんでも平均値で表せばいいというものではない、ということを十分把握しておく必要がある。

この点最も必要になる知識は、やはり統計学の知識である。

平均値

統計学的な量として最初に習う平均値と言う言葉にすら複数の算出方法が存在する。

  1. 相加平均
  2. 相乗平均
  3. 調和平均
  4. …他にある?あったら教えてね
  • 相加平均

$$\mu=\frac{1}{n}\sum^n_{k=1}{x_k}=\frac{x_1+x_2+x_3+...+x_n}{n}$$

相加平均のよいところは簡単なところ。n個の値を足してnで割るだけ。

相加平均の悪いところは単純なところ。1個でも極端に大きな値があるとモロに影響を受けてしまう。

  •  相乗平均

$$\mu_G=\sqrt[n]{\prod^n_{k=1}{x_k}}=\sqrt[n]{x_1x_2x_3...x_n}$$

  • 調和平均

$$\frac{n}{\mu_H}=\frac{n}{\sum^n_{k=1}{\frac{1}{x_k}}}=\frac{n}{\frac{1}{x_1}+\frac{1}{x_2}+\frac{1}{x_3}+...+\frac{1}{x_n}}$$

相乗平均、調和平均の使い所や利点・欠点は知らないので誰か教えて欲しい。

 

これは余談だが高校数学を習っているならば、1と2を「相加・相乗平均の関係式」として一度は聞いたことがあるはずである。*7

 

相加平均にメリット・デメリットが存在することがわかったところで、データの性質を表す他の方法を思い出そう。

 

すると、やはり高校数学で習ったであろう分散や偏差といったことが思い当たるはずである。

(母集団・標本)分散・標準偏差

分散は平均値まわりのデータの散らばり具合を示す統計的な指標である。

標準偏差は、分散のままだと実験データに対して得られる次元が$({もとの次元})^2$ということになってしまうので、$\sqrt{分散}$をとって元のデータとの次元をつじつま合わせした統計指標である。

(数式はどういうわけかMathjaxで入力できないので諦めた)

使いみちとしては、例えば複数回実験を行った場合、得られたデータには「必ず」ばらつきが生じる。

このばらつきの程度を評価しなければ、得られたデータに関して「その結果が得られたのって単なる偶然なんじゃないの?」と言われたときに返す言葉がなくなってしまう。

*8

したがって、実験データに見られる傾向が有意であることを示すために、標準偏差を用いてデータのばらつき具合を評価して、その小ささを示す必要がある。

やる気なくしたのでここまで。

 

正規分布

ここで、正規分布を導入する。(数Bにあったかな?)

正規分布ガウス分布ともよばれる。

 

平均値の不確かさ

正規分布を利用して平均値の不確かさを議論する方法が存在することに気がつけば、あとは容易に定量的な考察のポイントを大量に稼ぐことが可能である。

 

最小二乗法とその評価

最小二乗法、線形回帰、線形回帰の結果得られるR2値といったものもあるが、個人的にちょっと面白いと感じている方法として、「あえて対数をとって線形回帰をとり、その係数から次数を求めていろいろ判断を下す」といったものもある。

 

Excelの機能

特にExcelを使っている場合は線形回帰によって得られるパラメータを事細かに表示してくれたりする便利機能があるので、ぜひ活用するべきである。

  • 機能の有効化方法*9
  • 機能の利用方法*10

 

3. 文献漁り

研究室配属後のことはよくわからないが、どうやら入居したらいろいろ先行論文を読むことになるらしい。その読み物に関して私なりに考えていることは、「先行論文を読むことで研究領域の雰囲気もキーワードもつかめるし、同じ研究を2度繰り返した挙句に卒論発表会で『同じような先行研究あるよ』とすべてを台無しにされる可能性も薄くなる。また、学会で発表されるような論文それ自体は審査を受けているので、安心して参考文献リストに載せることができ、これにより自分の論理をパワーアップさせることができる。」という程度である。RPGか?

以上で述べたように、私は文献漁りを、キーワードをつかむために非常に重要な行動であると考えている。なぜなら、キーワードをつかむことができればGoogle検索なりOPACで書名を検索したり、関連論文を当たることができる、すなわち更に詳しい情報を得られるからである。*11

大抵の場合、ずさんな学生実験でなければ参考文献リストが載っている。これは暗に「お前らこの本借りて読むくらいはしろよ?」という先生からのお達しである。学生の中にはちゃんとレポートを書きましたよという雰囲気を出すために読んでもいない本を参考文献に載せる人もいるかもしれないが、これは愚かな行動である。読んだほうがいい。時々課題の解答すら載っている。

この情報を漁る能力は、定性的な考察において威力を発揮する。

教科書の些細な記述からでもいいので情報をたくさん持っていると、色々と考えを巡らせることができるのである。

 

0.おまけ

プログラミングによる実験を行ったので再実験がいくらでもできる、という場合は、入力データや内部処理を僅かに変えて変化を追って考察を行う、といったことも可能であるが、普通の学生実験では仮説を立てたところで再実験する暇はない。その場合は「こうすればこの仮説について検証することが可能である」という、自らが立てた仮説が正しいかどうかを示すための実験方法を示せばよいのである。

ここで先程の落体の実験の例を再度引き合いに出すことにする。実験結果から「羽は鉄球よりも質量が軽かったのでゆっくり落ちたのだ」と考えたのであれば、「羽は鉄球よりも軽かったために、鉄球に比べて落下に時間がかかったのだと考えられる。このことを検証するには、同じ質量の羽根と鉄球を同時に落としたら同じ時刻に同時に地面に落下することを、実験して示せば良い。」などと記述すれば良い。

もちろん実際には羽に対する空気抵抗が関わっているために、そのような結果が得られるわけではない。そのときは、「羽は手球よりも軽かったために、鉄球に比べて落下に時間がかかった」という仮説を棄却することができる。また、もし再実験の結果から空気抵抗の存在を見抜けたのであれば、「真空中で実験したらどのような結果が得られるだろうか?」という新たな疑問が湧いてくるはずである。

www.youtube.com

www.youtube.com

 

まとめ

考察は、教授陣にとって「実験を通じて勝手に育って欲しい能力」に違いない。

しかし自分から動かなければ全く育たない能力でもあるので、学部生の間に点数稼ぐという主目的をもちつつ、統計学について色々学んで力をつけていおいたほうがいいかもしれない。

*1:俺は3行といったんだが4行あるぞ?どういうことだ?

*2:そもそも大学1年や2年のはじめの時期に、多くの観点から考察できる人は限られているといってよい。これは経験上の話になるが、私の学科のレポート採点も一部を除いて甘かった。とはいえ採点が厳しい先生は一律で厳しいので、点数が低くても落ち込むことはない。また、時折理不尽な理由で減点されることもあるが気にすることはない。ないったらない。厳しい先生の中で高い点を勝ち取り、その中でも考察の点数が高ければ、それはそれで非常に喜ばしいことである。

*3:

もちろんこんなオープンな場でイキり倒したら「ご高説垂れてるところ申し訳ないけどそれ間違ってるよ」とか「他にもやり方あるよ」とか、「もうちょっとさぁ…数学勉強しよ?」という至極真っ当な指摘が飛んで来ると思うので、そのときは恥を忍んでちゃんと精進します…

*4:読みにくい文章書いておきながら何を偉そうに言ってるんだ俺は?

*5:そういえば「それゆえ」「このため」の「それ」「これ」って指示語を伴う接続語だよなぁと思ったりしている

*6:どうでもいいことですが、私はある本を読んだところ、換言表現である「つまり」「すなわち」の使い方に関する自信を失いました

*7:この関係式は結構強力だったと記憶していて、受験範囲の都合上数3を出題できない某有名文系専門国公立大学の問題では、うまく式変形をすれば微分を使うことなく最大値最小値を求められるパターンが存在するほどである。(隙あらば自分イキり)(微分を使うと2回微分まで求めなければならず面倒だが、相加相乗平均を使うと瞬殺できたパターン)

*8:1回しか実験しなかった場合は当然そのような評価をすることはできない。時間とお金があるなら実験を何回か繰り返すのは大事だと思うの。

*9:ファイル->オプション->アドイン->分析ツール->設定->ソルバーアドイン, 分析ツールのチェックボックスにチェックを入れる->OK

*10:データ タブ-> データ分析 -> 統計学のツールがいっぱい出てくる -> ごちゃごちゃ設定すると勝手に計算してくれる

*11:もちろん見切りをつけることも大事。

LaTeXでソースコードをきれいに組版する方法

前提

 TeX Live インストール済

 

準備

jlistingsのインストール

以下のリンクからjlisting.styをダウンロードする

ja.osdn.net

WindowsならWSLで、macOSLinux, UNIXならbunzip2でファイルを解凍

以下基本的にWindowsの場合で説明する。

 

1. listingsのファイル階層を探す

  WindowsTeX Live使ってインストールした人はみんなここ。

C:\texlive\2017\texmf-dist\tex\latex\listings

2. jlisting.styを上記のファイル階層に貼り付ける

3. コマンドプロンプトでmktexlsr コマンドを実行。

C:\Users\(USER_NAME)>mktexlsr

4. jlisting.styが認識されるようになったはず

 

MATLABのコードをきれいに表示するための組版

mcodeは5分触ったが、扱いづらかったので候補から外した。 

matlab-prettifierを使ったほうが数千倍楽。

github.com

使い方は大本のドキュメントを読んで下さい、使用例も書いてあるので楽です。

\documentclass{jsarticle}
\usepackage{jlisting, listings, matlab-prettifier}
\begin{document}
\lstinputlisting[
style = Matlab-editor,
basicstyle = \mlttfamily,
]{(ここにファイル名またはファイルパス)}
\end{document}

 

利用方法

.texソースコードの読み込み方法

1. ソースコードを.texにベタ貼りする

\begin{lstlisting}

    ///ここにソースコードベタ貼り

\end{lstlisting}

2. ソースコードをファイルから読み込む

\lstinputlisting[

 ここに,

 オプションを,

 追加する,

 (カンマ区切り),

]{(ここにファイル名)}

listing, jlistingのオプション類

載せるの大変。以下を当たってください。

http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf

方法論としては、先達が既にWebに載せてくれているコードに書かれたオプションを適度に漁り、その後気になったオプションについて公式ドキュメント内を検索して読めば完璧。

VS Code 環境構築

 

Windows

VS Code 導入すべきアドオン

対象言語のコード補完機能、シンタックスハイライト、デバッグ等をこなすアドオン
コードをきれいにする
  • Beautify
簡単にコードを実行する
  • Code Runner
アイコンをわかりやすく、クールにする
LaTeXをつかう(やめといたほうがいい)
Gitを使う
  • Git Lens

 

AtomVimキーバインドを再利用したいならそれ専用のアドオンがあるので導入おすすめ

 

Code Runnerの設定

以下のような動作を想定する

以下の設定により、Code Runnerは原則WSLのUbuntu上で動くようになった。

言語ごとの設定はまだやってないので後で。

"code-runner.runInTerminal": true,
"terminal.integrated.shell.windows":"C:\\Windows\\System32\\bash.exe",

深いファイル階層で作業していると、WSL上(VS Code上のターミナルでは Codeと表示されるが)のcdコマンドが長くて見づらい。そもそもWSLのターミナルを開く時点で作業用ディレクトリに移動しているので、そこでわざわざcdコマンドを打つ必要はない。

"code-runner.executorMap": {

  "c": gcc $fileName -o $fileNameWithoutExt"

  "cpp": g++ $fileName -o $fileNameWithoutExt"

}

と追記することで、表示されるコマンドを短くできる。実際、このようにしても問題なく動作した。file not found 等のエラーが将来発生した場合は、この設定が原因かもしれないのでコメントを書き足しておくとよいだろう。

C#powershell, bat等を除いては、WSL上で問題なく実行できるはずである。(もちろん、WSL単体で上手く動く場合に限る。そうでなければVS Code上でも上手く動かない。)

 

 LaTeXの環境構築

われわれはかしこいのでその程度の設定は朝飯前なのです。

かしこくないのです。LaTeXは特化したエディタを使うべきなのです。

VS Codeのこのアドオンだとエラーとか見れないのですよ…

"latex-workshop.latex.toolchain":[{
"command": "ptex2pdf",
"args": [
"-l",
"-ot",
"-kanji=utf8 -synctex=1",
"%DOC%"
]
}

 

以上の設定をユーザー設定に追加。

Git LensまたはGit

どうしてもWSLのGitを使いたいのであれば以下を参照。

Rustで書かれてるっぽい。
github.com

ただGit for Windowsのほうが設定楽勝なのでWSLに固執しないで。

 

git-for-windows.github.io

 

Ubuntuの場合

VS Code 導入したアドオン

対象言語のコード補完機能、シンタックスハイライト、デバッグ等をこなすアドオン
コードをきれいにする
  • Beautify
簡単にコードを実行する
  • Code Runner
アイコンをわかりやすく、クールにする
Gitを使う
  • Git Lens

 

VS Codeの設定

ターミナルの設定
  • ターミナルのフォントを変更する

"terminal.integrated.fontFamily" : "TakaoGothic"

Git Lensは勝手にgitを検出してくれるので楽。

 

  • ターミナルにおけるvenvやpyenvの認識

python : select interpriter

を実行すれば、認識しているpythonのバージョン(pyenv含む)や、ワーキングディレクトリにあるvenv環境を一覧で示してくれる。

 

  • Code runner におけるvenvやpyenvの認識

いまのところできないっぽい。

 

pyenvやvenvの導入については

github.comこ↑こ↓を参照

28.3. venv — 仮想環境の作成 — Python 3.6.3 ドキュメント

ほかのenv系も多分認識してくれるはずだが試してない

 

VS Code で pyenv + venv つかうよ

VS Codeが結構よさ気だったので導入した。

ただし何も設定しないでvenvを使うには、いちいち source activateしなければならない。

これは本当にめんどくさいので設定をいじってみた。

 

pyenv については

github.comgit clone して パスをとおしてあげればよい。

pyenv install で 好みのpythonのバージョンをインストールすることができる。

pyenv global (バージョン名) で普段使いのpythonのバージョンを指定できる。

pyenv global でPythonのバージョンを決めたら以下に移る。

 

 

ここでは、「pyenvで作ったPythonのバージョン」、かつ「更にそのバージョンのvenvコマンドで作った仮想環境」を用いたい、VS Codeのプロジェクトのファイル階層を、 ~/VSCode/project0 と仮定する。

 

まずはvenvの作成。project0 以下に作成する。

python -m venv ~/VSCode/project0/venv

ここで、仮想環境を作成するフォルダ名をvenvとしたのは、あとの設定で面倒なことを起こさないようにするため。

プロジェクトごとに仮想環境を用意すれば、仮想環境の名前を区別してあげる必要はない。

 

以下を参照。

code.visualstudio.com

VS Codeで何らかのフォルダを開くと、同じディレクトリ階層に.vscodeというフォルダが生成される。

その中に、settings.jsonというファイルがある。

このファイルを開いて表示される、左右分割されたウィンドウの右側に、

"python.pythonPath" : <ゴニョゴニョ>

と表示されているはず。

これを

"python.pythonPath" : "${workspaceRoot}/venv/bin/python"

 と書きなおしてあげる。

${workspaceRoot} は現在開いて作業しているファイル階層を示す変数であるので、

どのようなフォルダを開いても、(/venv と名のついたフォルダ内にある、) venv 仮想環境を参照してくれるようになる。