卒論修論のための最高な環境構築論

# 思いついたことは大抵は誰かがやっている
私は普段Texで論文を執筆,PythonやRで分析している
ある日修論執筆に向けてgithubで管理すれば最高なのではと思いつく

先人たち

https://fromatom.hatenablog.com/entry/2014/02/09/001136

https://www.slideshare.net/kinmemodoki/git-2016-70268276

https://qiita.com/taikis/items/a15efc220d084a04ca9c

https://qiita.com/tamusou1/items/a9288e3b9a77927bcfd5

やっぱり誰かしらやっている！
だからこの先人の方達のやり方をまとめるだけで理想の卒論修論環境が整うのである
以降ほとんど内容は一緒だが初心者に向けての解説を行う

# 全体像
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/e3d7f4ab-184a-69b9-a818-dbb41fd0c311.png)


# 実際の管理画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/cfb25ff7-b639-1dcc-b6be-154b27b9ae82.png)

# 作業フロー
<script async class="docswell-embed" src="https://www.docswell.com/assets/libs/docswell-embed/docswell-embed.min.js" data-src="https://www.docswell.com/slide/K2RGRZ/embed?key=2022-12-09-123031" data-aspect="0.5625"></script>

# メリット

<script async class="docswell-embed" src="https://www.docswell.com/assets/libs/docswell-embed/docswell-embed.min.js" data-src="https://www.docswell.com/slide/KL426K/embed?key=2022-12-11-172530" data-aspect="0.5625"></script>

## バージョン管理
GitやGithubを使う最大の利用としてはバージョン管理ができるようになることである.さらにブランチやプルリクエストの機能を使うことでより痒いところに手が届くようになる

:::note info
例：第1章を書く

1\. 「第１章」用のブランチを作成する
2\. 「第１章」を書き進めていく
3\. 「第１章」の１節が書き上がるごとに1で作成したブランチにコミットしていく
4\. 「第１章」が完成したら担当教員や先輩に対して添削してもらうためプルリクエストを実施([第１章ブランチ]を[master]にマージしていいのか聞いている)
5\. プルリクエストの結果
　　5.1\. プルリクエストが承認された場合→masterにマージ

　　5.2\. プルリクエストが承認されなかった場合→修正してブランチにコミットし再度プルリクエスト（プルリクエストが承認されるまで繰り返す
:::

## バックアップ：私が死んでも代わりはいるもの

今回の仕組みでは最大で３個のバックアップを取ることになる
githubはたまにサーバーダウンするしCloudLaTexも卒論シーズンが近づいてくるとサーバーが重くなったりブラウザからアクセスできない可能性があるので卒論のデータのバックアップはあればあるほど良い

:::note info
GoogleDriveでは無料で１５GBまでクラウドに保存できる
OneDriveやDropboxでも代用可能
:::


## Wordを使わない
CloudLaTexというサービスが，VScodeへ拡張機能を提供してくれているおかげでローカルで実行的できる環境が整備できる

これで卒論を書いていくたびに重くなっていくWordを起動する煩わしさから解放される！
しかもTexで書き進めるのでテンプレートなどを用意すれば体裁を気にすることなく執筆に集中できるのでとても良い

# 環境構築


## Texの実行環境　Cloud LaTeX

 [Cloud LaTeX](https://cloudlatex.io/)
Googleアカウントがあればすぐ使うことができる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/fecf1a9b-e820-0966-4e08-5ddeb4969c2e.png)

新規プロジェクトをクリックして既定のテンプレートからプロジェクトを作成してみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/5d105848-d32f-35c8-f60c-3ecc9c69b11c.png)
こんな感じでテンプレートが作成されているはず
コンパイルをクリックすることによってコードが実行され文書が作成される

## Anacondaインストール

https://www.anaconda.com/products/distribution

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/4298f816-5645-b03e-7e98-31543c80f7ac.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/d7f2a81c-691d-4e09-edb8-9e19f90a01f1.png)


## Anaconda仮想環境を利用したVScodeインストール


### 仮想環境を作成
ターミナル(Anaconda Prompt)を開いて以下のコマンドを記述
base環境をコピーして新しい環境を作成するコマンド

``` :ベースをクローンして仮想環境を作成
conda create -n 任意の名前(python39など) --clone base
```

コマンドを入力後しばらくすると、環境が生成される
念のため確認する

```　:環境の確認
conda info -e
```

```　:出力
(base) C:\Users\〇〇>conda info -e
# conda environments:
#
base                  *  C:\Users\〇〇\anaconda3
python39                 C:\Users\〇〇\anaconda3\envs\python39
```

### Visual Studio Codeのインストール/設定
インストール

https://code.visualstudio.com/

拡張機能の追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/eac16b21-066f-ab28-0bd9-a62c77fc2f85.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/0004c9a6-caae-f19d-cdb3-ceabdbcc0b34.png)

:::note info
その他に便利な拡張機能
**indent-rainbow**
**Material Icon Theme**
**Night owl**
**ZenKaku**
**Python Indent**
**Code Runner**
**Excel Viewer**
**Git Graph**
**Jupyter**
:::

https://yurupro.cloud/767/

### パスの設定
VS Code画面左下の歯車のマーク→設定→検索窓に「python」と入力して検索

「Python: Default Interpreter Path」の項目を見つける

先ほど作成した仮想環境のパスを入力

```
base                  *  /Users/anaconda3
python39                 /Users/anaconda3/envs/python39
```

## Cloud LaTeX連携

### VScode拡張機能Cloud LaTeXをインストール

拡張機能からCloudLaTeXを検索してインストール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/21b726db-dca8-c610-b880-c7566bfb0b08.png)


### トークンの生成
Cloud LaTeXのマイページから下記の「プラグイン連携」を探す

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/54aca423-dc57-d83b-066c-e794906537cc.png)

プラグイン連携をクリックすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/db81f273-d5ad-e2ca-e5dd-086c817da086.png)

となるのでパスワード入力するとトークンが生成される

### VScodeとの連携

ブラウザのCloudLaTeXに戻りURLの[\https://cloudlatex.io/projects/〇〇〇〇/edit]の　〇〇部分が数字となっていてProject IDになっているので確認

VScodeにCLのタブが追加されている→「set account」をクリック

メールアドレス，先ほど生成したトークンを順にコピペで入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/ccd7153d-60d8-b966-d0d4-b5e8a106afb6.png)


ワークスペースに行き「Project ID」を探す→先ほど確認したProject IDを入力

"Enabled"にチェック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/0c3d1ccf-915a-8011-a543-b9f73dd4e386.png)


## Git

### ファイルの拡張子表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/dc50a930-0939-3d31-8fc9-06074cfbd130.png)

### Gitインストール
#### mac
MacであればGitはインストール済

#### Windows
##### 公式ページからインストーラーをダウンロード

https://gitforwindows.org/

Git Bashを起動して以下のコマンドでインストールできているか確認
```
git --version
```

### Gitの初期設定
Macだとターミナル、WindowsだとGit Bashでコマンド入力作業を行う

#### ユーザ名とメールアドレスを登録する作業
``` :ユーザ名の登録
git config --global user.name 任意のユーザ名
```
```:メールアドレスの登録
git config --global user.email 任意のメールアドレス
```
```:確認
git config --list
```

## GitHubのアカウント作成

https://github.com/

ユーザ名・メールアドレス・パスワードを入力し、「Sign up for GitHub」ボタンをクリック
「Join a free plan」を選択
「Complete setup」ボタンをクリック

## GitHubにアクセスし、リモートリポジトリを作成
トップ画面で「Create Repository」ボタンをクリック 

## SSHkey生成

```:SSHkey生成
ssh-keygen -t ed25519 -C 'メールアドレス'
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/18a950ac-8f6e-01bd-44d0-5f2099704284.png)

Enterキーを入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/3bb4abed-b4df-2861-09b8-e4857fcac880.png)

任意のパスワードを設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/a7907e66-bdd1-f342-3cc0-fe941ecc4e4a.png)

もう一度設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/40641891-6aaf-fbd5-00f9-779960077e3f.png)

生成したSSH鍵をクリップボードにコピー

```:生成した鍵をクリックボードにコピー:Windows
clip < 生成した鍵の絶対パス/id_ed25519.pub
```

```:生成した鍵をクリックボードにコピー:Mac
pdcopy < 生成した鍵の絶対パス/id_ed25519.pub
```
GithubのSettingに行き[SSH and GPG Keys]を選択し[New SSH key]をクリック
keyのフィールドにコピーした公開鍵を貼り付け[Add SSH Key]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/6bd19936-cc02-f189-cdde-c0dafb8b030a.png)

```:認証
ssh -T git@github.com
```

コマンドを入力してYesを入力すると認証を求められるのでパスワードを入力して認証

## Git 基本操作

新しいフォルダを作成して右クリックでVSCodeで開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/b3b0f969-1fc9-623d-dc13-82d7df768502.png)
「リポジトリを初期化する」
``` :リポジトリの初期化 = ローカルリポジトリの作成
git init   
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/5699f4a7-b3e2-ebdb-c2af-c0b11bcfd241.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/cd3e99b4-786d-0562-84d4-66dbc883b831.png)

``` :README.mdの作成
echo "# 〇〇" >> README.md    
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/f4492ec8-679f-0dfd-118b-72332ac4d4a2.png)

``` :ステージ
git add README.md  
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/6fe98dd1-da88-81ad-2bfd-e69e6d80f2d4.png)


```:コミット
git commit -m "first commit"  
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/b80c5333-5926-66b0-aa67-a5737c4c5c64.png)

``` :リモートリポジトリの追加
git remote add origin git@github.com:〇〇〇〇1024/〇〇.git
```

```: プッシュ
git push -u origin main   
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/d3d9ac4e-2475-5611-8107-083aa6d31c0b.png)

githubのリモートリポジトリを見ると追加されているはず
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/165f1d86-ff3e-910a-1171-a6db3a8a875a.png)

## Google Drive 自動同期機能

下記URLからダウンロード

https://support.google.com/a/answer/7491144?hl=ja

インストールが完了すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/1e884d19-059d-1450-ea27-1be3dc4a5c07.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/9266b9d9-8be2-23ad-9d6c-d08efaeabcb4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/0875211e-a23b-7c3a-1d35-516d41abd93b.png)

## gitignoreでtmp.driveuploadを無視
自動同期機能をオンにするとtmpフォルダ並びにファイルが生成されるのでgitでそれを無視するように設定する(隠しファイル)
vscode内で.gitignoreを作成して同期したフォルダ内にある.tmp.driveuploadのパスを記載する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/33390eb2-fe28-67bd-7bfc-25a700a17217.png)

参考

https://drivechecker.taf-jp.com/blog/42914

https://qiita.com/THAKAORI/items/1697a423841704b26d53

# 便利なTeXコーディング補助サイト/ツール

## 画面キャプチャで数式をLaTeX形式に自動変換ツール　Mathpix Snip

https://mathpix.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/62f09536-b6ff-3402-3a71-8eb8da262fac.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/91e957cf-8c54-5716-8c9f-643df6be484c.png)

詳しいインストール方法について

https://gigazine.net/news/20200106-mathpix-snip/

### 方法
統計Webのロジスティック回帰モデルの式をキャプチャしてみる

https://bellcurve.jp/statistics/course/26934.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/e71f23e2-4797-8a97-0156-d0d50df01a53.png)

カーソルが＋になるのでロジスティック回帰モデルの式をキャプチャすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340152/d3c4fedd-66e8-10a6-df62-3fa2deb7f753.png)

TeX形式のコードが出力される

## 表の作成

https://www.tablesgenerator.com/latex_tables

私の主な使い方としては、パワポで表を軽く作ったら表ごとコピペしてこのサイトにコピペすることでコードが生成される
詳しい使い方については下記のサイトを参照

https://muscle-keisuke.hatenablog.com/entry/2016/07/02/170205

# 参考

https://nkgtt.hatenablog.jp/entry/2020/12/24/000000

https://fromatom.hatenablog.com/entry/2014/02/09/001136

https://www.slideshare.net/kinmemodoki/git-2016-70268276

https://miya-system-works.com/blog/detail/vscode-github/

https://qiita.com/taikis/items/a15efc220d084a04ca9c

https://qiita.com/aj1m0n/items/6175ed109823c524d0c1

https://qiita.com/THAKAORI/items/1697a423841704b26d53

https://www.curict.com/item/60/60bfe0e.html

https://hogetech.info/oss/git

https://yurupro.cloud/767/

https://drivechecker.taf-jp.com/blog/42914

https://qiita.com/THAKAORI/items/1697a423841704b26d53

https://gigazine.net/news/20200106-mathpix-snip/

https://muscle-keisuke.hatenablog.com/entry/2016/07/02/170205