# NKUST thesis template 操作說明 ###### tags: `NKUST` `碩士` 本章分為已有環境的操作、Docker、CLI 文件編寫、VSCode 文件編寫。 [![yuhao-kuo - badge-generator](https://img.shields.io/static/v1?label=yuhao-kuo&message=NKUST-thesis-template&color=blue&logo=github)](https://github.com/yuhao-kuo/NKUST-thesis-template) [![forks - badge-generator](https://img.shields.io/github/forks/yuhao-kuo/NKUST-thesis-template?style=social)](https://github.com/yuhao-kuo/NKUST-thesis-template) [![stars - badge-generator](https://img.shields.io/github/stars/yuhao-kuo/NKUST-thesis-template?style=social)](https://github.com/yuhao-kuo/NKUST-thesis-template) :::info 強烈建議撰寫前先觀看 [文章寫好了卻為排版苦惱?也許你該考慮用 LaTex 完成下一個專業的報告 (使用 Overleaf 雲端編輯器)](https://www.youtube.com/watch?v=mQamBS6uTOc)。 ::: :::success 如果沒有時間架設環境,可以選擇使用 [Overleaf](https://www.overleaf.com/latex/templates/nkust-thesis-overleaf/qwdpqjqnztsp) 環境。 ::: ## 已有環境 ### CLI 直接透過 CLI 執行編譯指令。 ``` $ make all # 編譯文件 $ make clean # 清除暫存檔 $ make distclean # 完整清除編譯產生的檔案 ``` ### VSCode 連線遠端伺服器 1. 安裝 remote extension 2. 連線遠端伺服器 * 詳細教學請見文件 [SSH keygen+VSCODE](https://hackmd.io/aHHs9hAeSDKHnaLV-oHbhQ)。 4. 透過 latex extension 進行自動編譯或使用 CLI 進行操作。 * VSCode 的自動編譯設定,請見 [setting.json](https://github.com/yuhao-kuo/NKUST-thesis-template/blob/master/.vscode/settings.json)。 * CLI 操作請見**已有環境**小節。 ## Docker 佈署編譯環境到伺服器經常是 linux 新手網管的惡夢,在加上希望支援 windows 系統的目標,因此決定加入 docker 的支援。 安裝部份請見 docker 文件。 ### iamge 編譯 :::success 編譯後 image 為 4.32GB。 編譯時間約485秒 CPU: Intel i5-1035G1 4核8緒 Memory: 16GB DISK: SSD ::: 專案中內建 docker image 編譯腳本,可直接雙擊檔案執行或以指令進行。 1. 編譯 ``` ### Linux / Mac $ ./Docker/linux/build ### Windows PowerShell / cmd > Docker\windows\build.bat ``` 3. 開啟 ``` ### Linux / Mac $ ./Docker/linux/start ### Windows PowerShell / cmd > Docker\windows\start.bat ``` 5. 關閉,可透過腳本或接管 Container 進行關閉。 使用腳本 ``` ### Linux / Mac $ ./Docker/linux/stop ### Windows PowerShell / cmd > Docker\windows\stop.bat ``` 接管 Container ```bash ### Linux / Mac $ ./Docker/linux/attach ### Windows PowerShell / cmd > Docker\windows\attach.bat ``` 在 Container 中關閉 ``` $ exit ``` 如接管後不想關閉機器可按 `ctrl+P` + `ctrl+Q` 退出 Container。 ### 運作架構 使 container 運作於背景中,開機時會把 host 中的 NKUST-thesis-template 掛載到 Container 上。 利用 vscode remote development extension 進行遠端編輯,與編譯。 ## CLI 本節主要提供給使用非 VSCode 的使用者。 1. 啟動 Docker 與進入容器 ``` $ ./Docker/linux/start # 啟動容器 $ ./Docker/linux/attach # 從 Host 端進入容器 ``` 3. 編譯與清除 ``` $ make all # 編譯文件 $ make clean # 清除暫存檔 $ make distclean # 完整清除編譯產生的檔案 ``` 5. 關閉 Docker 容器 ``` $ exit # 在 docker 容器中進行 $ ./Docker/linux/stop # 在 Host 端進行 ``` ## VSCode 本節提供給 VSCode 的使用者。 1. 安裝 remote extension ![](https://raw.githubusercontent.com/yuhao-kuo/NKUST-thesis-template/master/Docs/images/docker/vscode_remote_extension.png) 2. 啟動 container 進行服務可雙擊檔案或以 terminal 於專案目錄中執行啟動指令。如果正常運作執行後終端機將會自動關閉。 * Linux / Mac ``` $ ./Docker/linux/start ``` * Windows ``` > ./Docker/windows/start.bat ``` 3. `ctrl+p` 呼叫命令工具,找到(可直接輸入) `> Remote-Container: Attach to Running container ...`,點擊後選擇 *latex-srv* 即可進入開發環境。 ![](https://raw.githubusercontent.com/yuhao-kuo/NKUST-thesis-template/master/Docs/images/docker/vscode_attach_container.png) ![](https://raw.githubusercontent.com/yuhao-kuo/NKUST-thesis-template/master/Docs/images/docker/vscode_select_container.png) 4. 開啟資料夾,論文目錄預設掛載在 `/home/<使用者名稱>/thesis` 中。 ![](https://raw.githubusercontent.com/yuhao-kuo/NKUST-thesis-template/master/Docs/images/docker/vscode_attach_container.png) ## reference * [Use non-root user in docker container](https://wshs0713.github.io/posts/fe688d83/) * [實作撰寫第一個 Dockerfile](https://ithelp.ithome.com.tw/articles/10191016?sc=hot) * [Docker —— 從入門到實踐 正體中文版](https://philipzheng.gitbook.io/docker_practice/) * [使用Visual Studio Code 遠端操作docker環境下的檔案](https://medium.com/%E5%A4%BE%E7%B8%AB%E4%B8%AD%E6%B1%82%E7%94%9F%E5%AD%98%E7%9A%84%E4%BA%BA%E9%A1%9E/%E4%BD%BF%E7%94%A8visual-studio-code-%E9%81%A0%E7%AB%AF%E6%93%8D%E4%BD%9Cdocker%E7%92%B0%E5%A2%83%E4%B8%8B%E7%9A%84%E6%AA%94%E6%A1%88-ebb35292a5b1) * [Docker 中刪除 Images 鏡像 及 Containers](https://www.opencli.com/linux/docker-delete-images-containers)