# 新组员环境配置流程

## 软件准备(以win10以上windows环境为例)

1. `git`: `https://www.git-scm.com/`
2. `texlive`: `https://tug.org/texlive/`
3. `vscode`: `https://code.visualstudio.com/`
4. `python`环境管理工具: `https://www.anaconda.com/`(用win7的同志请联系王伟叶获得其他版本的anaconda)

以上软件都可以在`http://gofile.me/5nvw8/XDWt3OwS2`下载(但版本可能不是最新的)

## 软件安装

以上四个软件可以按任意顺序安装, 其中`git`, `vscode`安装时间较短, `anaconda`安装时间稍长, `texlive`安装时间最长.

所有的四个软件全部按照默认选项一路Next即可.

注意所有的四个软件的安装目录中都**不要有中文名**

## 环境配置

### 确定自己在Gitlabtest项目里

在浏览器里输入`http://wwylss.asuscomm.com:30000/wangweiye/gitlabtest`, 登录(记得邮箱)后如果能打开, 就是在项目里, 否则请及时联系管理员(王伟叶)

### git环境配置

1. 新建一个要用来工作的文件夹, 建议用某盘根目录下的`test01`文件夹.
2. 在该文件夹中按鼠标右键, 选择`Git Bash Here`, 将弹出一个`git`的终端.
3. 在终端中分两行输入以下代码("Your Name"随便起, "Your Email"就是上一步的那个登录用的邮箱, 输入的时候都**不要带双引号**).

`git config --global user.name "Your Name"`

`git config --global user.email "Your Email"`

#### 获得rsa公钥

为了以后能用`vscode`不用每次输入密码登录服务器进行同步, 继续在刚才的终端中执行以下两行命令(这里的"comment"可以是前面的那个Email, 也可以是别的标识):
1. `ssh-keygen -t rsa -b 2048 -C "comment"`
2. 不断回车, 选择默认选项.
3. `cat ~/.ssh/id_rsa.pub | clip`

#### 在服务器上粘贴公钥

1. 登录`http://wwylss.asuscomm.com:30000`(如果是按顺序操作的话现在应该已经登录了)
2. 点击右上角的头像, 在弹出下拉列表中选择"Preferences".
3. 在左侧的列表中选择"SSH密钥".
4. 在"密钥(Key)"下的大型矩形框中按`ctrl-v`, 将上一步复制得到的公钥内容粘贴到框里.
5. 点击"添加密钥(Add key)".

### 开荒vscode

1. 打开`vscode`(稍等一会儿, 如果右下角跳出中文提示的话可以确认, 之后自动重启`vscode`后菜单会变成中文的).
2. 按`ctrl-shift-x`键, 在左边的"扩展"栏第一行输入`latex workshop`并安装使用人数最多的一个.
3. 按`ctrl-shift-x`键, 在左边的"扩展"栏第一行输入`python`并安装使用人数最多的一个.
4. 安装完毕以后按`ctrl-shift-p`键, 在上方出现的框里输入`jupyter`, 选择`Create: New Jupyter Notebook`
5. 然后vscode会提示安装一些扩展, 全部同意.
6. 安装好之后在界面上的第一个输入栏中输入`print(2 ** 16)`, 然后按`ctrl-enter`, 看看得到了什么.


### 设置和服务器测试项目的同步
1. 在文件(File)菜单中选择"打开文件夹", 选择刚才新建的那个空文件夹, 并点击"信任作者".
2. 点击左侧图标的第三个(`git`), 并选择"初始化仓库". 
3. 选择菜单中的"查看"-"终端".
4. 在下方的终端中输入`git remote add origin ssh://git@wwylss.asuscomm.com:30001/wangweiye/gitlabtest.git`(一行)并回车, 如果有提示的话输入yes.
5. 随后在终端中输入`git pull origin master`, 随后输入"yes"(以后同步就不用输入了).
6. 点击左侧图标栏的第一个, 不出意外的话, 现在空文件夹已经不空了, 随便编辑一个文件试试.
7. 编辑完成后保存, 这时第三个图标下会有个小蓝圈, 点击第三个图标, 在"更改"下面的文件旁按"+"符号进行暂存.
8. 所有更改的文件都到"暂存的更改"中之后在上方的"消息"中输入任意文字后按"提交"按钮.
9. "提交"按钮变成了"发布Branch", 按"发布Branch"按钮.
10. 这时刷新浏览器上的`gitlab`页面, 看一下文件是不是真的已经修改过了.
11. 以后用7-9的操作后"发布Branch"按钮会被"同步"按钮替代.
12. 可以自由地作一些测试.

## 和正式项目同步
1. 在任一盘符的根目录下建立一个新文件夹, 名字中不带有中文即可.
2. 在资源管理器里进入新建的文件夹, 右键点击后选`Git Bash Here`(win11的系统需要先选择`显示更多选项`).
3. 在弹出的窗口中输入`git init`后回车
4. 继续输入`git remote add origin ssh://git@wwylss.asuscomm.com:30001/wangweiye/mathdeptv2.git`(一行)并回车, 如果有提示的话输入yes.
5. 随后在终端中输入`git pull origin master`, 如果有提示的话输入"yes"(以后同步就不用输入了).
6. 打开vscode, 在`文件`菜单中选择`关闭文件夹`后(如果没有打开的文件和文件夹就忽略`关闭文件夹`), 选择`打开文件夹`, 并选择刚才新建的文件夹.
7. 如果vscode的最下方的状态栏里**没有**`Git Graph`字样, 输入`ctrl-shift-x`, 在`在应用商店中搜索扩展`栏中输入`Git Graph`后回车, 找到后安装. 如果有`Git Graph`字样的话跳过本步骤.
8. 点击下方状态栏中的`Git Graph`, 确定有粗体的`master`, 旁边有非粗体的`origin`.
9. 关闭`Git Graph`窗口, 在vscode左下角的状态栏中找到master字样并点击, 在弹出的小窗中选择`创建新分支`, 随后输入一个你觉得别人不会用的名字, 作为你的个人分支(测试分支).
10. 点击最左边栏的第一个符号(两张A4纸的符号)以切换显示"资源管理器", 让它显示出来. 在vscode的"资源管理器"中, 在`工具`文件夹(可以点开)下用鼠标右键(点在"工具"两个字上)新建`临时文件`文件夹.
11. 在`文本文件`文件夹中找到`metadata.txt`文件, 任意编辑后保存.
12. 点开最左侧边栏中有两根线和三个小圆的git图标, 点击`更改`右侧的加号.
13. 在`提交`上方的小框中输入任意字符并按`提交`, 如果`提交`按钮变为了`发布Branch`, 就再按一下, 直到它变灰.
14. 提交完成后点开`git graph`看看是不是提交的提示词已经被显示了? 如果有显示, 这就说明修改和服务器同步了.
15. 不用担心服务器上的master分支会被修改, 目前你没有修改master分支的权限, 所以可以随便玩这个新建的分支. 即使彻底玩坏了也能按照刚才的步骤马上重新从服务器上拉取一份master分支上最新的记录.

## 具体配置LaTeX环境和Python环境

### LaTeX环境
1. 在你用来放各种杂物的文件夹中用vscode建立一个新的文本文件, 复制(注意空行)下列代码后保存为`test.tex`
```
\documentclass[10pt,a4paper]{article}
\usepackage[UTF8]{ctex}
\begin{document}
 
测试
 
hello world
 
\end{document}
```
2. 在资源管理器`test.tex`的文件夹中右键点击鼠标, 随后选`在终端中打开`.
3. 在弹出的窗口中输入`xelatex test.tex`, 如果能够运行完, 会在刚才的文件夹下生成一个有两行字的pdf文件.
4. 回到vscode, 按`ctrl-shift-x`, 搜索`LaTeX workshop`, 如果没有安装的话安装一下, 如果已经安装了的话忽略本步骤.
5. 在vscode里找到或打开刚建立的`test.tex`文件, 将`测试`修改为`成功测试`, 按`ctrl-alt-b`编译, 下方状态栏中的转圈圈变成勾之后再按`ctrl-alt-v`预览pdf.

### Python环境
1. 在windows主菜单里找到`anaconda prompt`并运行.
2. 输入`conda create -n math python=3.10`并回车, 在随后的提示之后输入`y`表示确认.
3. 输入`conda activate math`并回车.
4. 进入正式项目的文件夹. 比如你的正式项目的文件夹是`E`盘根目录下的`mathdept`文件夹, 就输入`E:`回车, 再输入`cd \mathdept`回车.
5. 输入`pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple`(一行)并回车.
6. 输入`python`并回车, 进入python命令行模式, 提示符变为`>>>`.
7. 输入`import pandas as pd`并回车.
8. 如果没有出现错误, 说明环境已经配置好了, 可以输入`exit()`退回到普通命令行模式.


### 进一步配置LaTeX workshop的编译方式
1. 在vscode的`文件`菜单中找到`首选项-设置`(`preferences-settings`), 点进去.
2. 搜索`recipe`, 找到如下的字样:
```
Define LaTeX compiling recipes. Each recipe in the list is an object containing its name and the names of tools to be used sequentially, which are defined in Latex-workshop › Latex: Tools. By default, the first recipe is used to compile the project. For details, please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#latex-recipes.
```
3. 点击这段话下方的`在settings.json`中编辑, 会显示一个编辑窗口.
4. 把你看到的光标下方的前两个`latexmk`(`name`后面和`tools`后面)改为`xelatex`, 保存, 关闭`settings.json`窗口.
5. 重复第1步.
6. 搜索`latex tool`, 找到如下的字样:
```
Define LaTeX compiling tools to be used in recipes. Each tool is labeled by its name. When invoked, command is spawned with arguments defined in args and environment variables defined in env. Typically no spaces should appear in each argument unless in paths. List of available placeholders: %DOC%, %DOC_W32%, %DOC_EXT%, %DOC_EXT_W32%, %DOCFILE%, %DOCFILE_EXT%, %DIR%, %DIR_W32%, %TMPDIR% and %OUTDIR%, %OUTDIR_W32%. Please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders for a complete list of all placeholders.
```
7. 点击这段话下方的`在settings.json`中编辑, 会显示一个编辑窗口.
8. 把你看到的光标下方的前两个`latexmk`(`name`后面和`command`后面)改为`xelatex`, 保存, 关闭`settings.json`窗口.
9. 在你用来放各种杂物的文件夹中用vscode建立一个新的文本文件, 复制(注意空行)下列代码后保存为`test2.tex`
```
\documentclass[10pt,a4paper]{article}
\usepackage[UTF8, fontset = fandol]{ctex}
\begin{document}
 
xelatex测试
 
hello world
 
\end{document}
```
10. 按`ctrl-alt-b`编译, 下方状态栏中的转圈圈变成勾之后再按`ctrl-alt-v`预览pdf.