標籤:

從零開始配置跨平台多人合作LaTeX論文寫作環境

Q1:什麼是跨平台多人合作Latex論文寫作環境?

支持多人在不同系統(Windows、iOs、安卓)不同設備(PC、平板、手機)的終端上同時合作編輯LaTeX論文的寫作環境

Q2:與單機寫作環境相比有哪些優勢?

  1. 只需在伺服器(或VPS)上安裝一次LaTeX軟體,免去你在諸多終端設備上安裝LaTeX的煩惱,即使內存空間小的手機也可以隨時隨地進行論文創作

  2. 在不同的終端上使用同一個LaTex軟體以及配置,不會出現LaTeX版本衝突或配置衝突等問題

  3. 每個LaTeX文檔只有一個單一的主版本,每個人都可以訪問,避免版本衝突的問題出現,因此你可以繼續寫作而不必等待合作者發送的最新版本

  4. 支持多人同時一起完成一份文檔,你可以在屏幕中直接看到合作者在哪打字,並且對文檔的改變會直接立即顯示在你的屏幕上

  5. 便於研究團隊集中管理收集到的LaTeX模板,構建常見論文的模板共享庫和專有辭彙庫

Q3:有沒有現成的解決方案?

有,例如ShareLaTeX。但缺點是不免費(ShareLaTex每月8-30刀,overleaf每月12-20刀),而且不能根據需求進行個性化配置

Q4:需要什麼硬體資源?

一台擁有公網IP(或域名)的裝有Linux系統的伺服器(或VPS),但如果你只在區域網內使用的話,隨便一台裝有linux的電腦即可

Q5:使用者需要哪些基礎技能?

熟悉linux基本命令,通過搜索引擎可以無障礙的使用VIM

-----------------------------------------------------華麗的分割線-----------------------------------------------------------

  • 目錄

  1. Vim和Texlive的安裝
  2. 測試Texlive是否安裝成功
  3. 安裝Vim-LaTeX
  4. 測試Vim-LaTeX是否安裝成功
  5. 讓Vim在編輯tex文件時具備英文單詞自動補齊功能,以及增加專有詞的方法
  6. 安裝Apache,配置身份驗證
  7. 編寫LaTeX自動化編譯腳本
  8. 多人共享寫作屏幕的配置

1.vim和Texlive的安裝

註:本文所有的安裝和配置方法均在CentOS6.6上進行,Ubuntu或其他發行版的安裝方法類似

  • 安裝vim:

sudo yum install vimn

  • 安裝texlive(不要用yum 或apt安裝,因為texlive版本更新快,使用repository 安裝會出現各種奇奇怪怪的版本問題)

wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gzntar xvf install-tl-unx.tar.gzncd install-tl-20170413/n./install-tl 註:出現「Enter command:」時,輸入i並按回車necho "PATH=/usr/local/texlive/2016/bin/i386-linux:$PATH" >>~/.bashrcnsource ~/.bashrcn

2.測試Texlive是否安裝成功

wget http://www.acm.org/binaries/content/assets/publications/consolidated-tex-template/acmart-master.zip 註:這裡下載ACM論文模板進行測試,也可以下載其他模板nunzip acmart-master.zipncd acmart-masternrm -f sample-sigconf.pdfnpdflatex sample-sigconf.tex nbibtex sample-sigconf.auxnpdflatex sample-sigconf.tex 註:沒有打錯哦,就是和上上一條命令一樣n

上述命令執行完畢後,如果在當前目錄下成功生成了sample-sigconf.pdf,那麼恭喜你,Texlive安裝成功了~

3. 安裝Vim-LaTeX

cd ~nmkdir -p .vimngit clone https://github.com/vim-latex/vim-latex.gitncp -rf vim-latex/* .vimnecho filetype plugin on >>~/.vimrcnecho set grepprg=grep -nH $* >>~/.vimrcnecho filetype indent on >>~/.vimrcnecho "let g:tex_flavor=latex" >>~/.vimrcnecho "nnoremap <space> za" >>~/.vim/ftplugin/tex.vimn

4. 測試Vim-LaTeX是否安裝成功

進入第二步的acmart-master目錄中

vim samplebody-conf.texn

若出現如上圖所示的顯示結果,那麼恭喜你Vim-LaTeX安裝成功了。可以按空格鍵打開和關閉摺疊內容,例如在上圖第一行按空格鍵,展開摺疊後如下圖所示:

5. 讓Vim在編輯tex文件時具備英文單詞自動補齊功能,以及增加專有辭彙字典的方法

對於英文不怎麼好的童鞋來說,英文單詞自動補齊功能實在友好~

wget http://www.vim.org/scripts/download_script.php?src_id=6351 -O engspchk.tar.gznntar xvf engspchk.tar.gznnawk {$1="";print $0} CVIMSYN/engspchk.dict |sed "s/ /n/g" |head -n 49629|tail -n49617|sed -e /^$/d|uniq|sort >~/.vim/ftplugin/latex-suite/dictionaries/english.dictnnecho setlocal dictionary+=~/.vim/ftplugin/latex-suite/dictionaries/english.dict >>~/.vim/ftplugin/tex.vimnnecho setlocal complete+=k >>~/.vim/ftplugin/tex.vimn

至此,增加了一個包含四萬九千多辭彙的英文詞庫,自動補齊使用方法為:輸入單詞的前幾個字母,然後按組合鍵Ctrl+n,此時會彈出匹配出的辭彙集,如下圖所示

同時不同的專業領域擁有特定的專有辭彙,對這類辭彙的自動補齊也很重要。添加專業專有辭彙字典的方法也很簡單,步驟如下:

  1. 建立專有辭彙字典文件,格式要求為每行一個單詞,按字母升序排列
  2. 將該文件拷入目錄~/.vim/ftplugin/latex-suite/dictionaries/
  3. 執行如下命令,其中XXX為你所建立的專業辭彙字典文件名

    echo setlocal dictionary+=~/.vim/ftplugin/latex-suite/dictionaries/XXX >>~/.vim/ftplugin/tex.vimn

6. 安裝Apache,配置身份驗證

因為生成的論文pdf文件是存在伺服器端的,終端設備需要通過瀏覽器瀏覽論文pdf,因此需要在伺服器上開啟web服務,同時在論文正式發表前是不希望放在公網上讓其他人看到的,因此需要添加身份驗證

sudo yum -y install httpd 註:安裝Apache,ubuntu下安裝命令不同nnvim /etc/httpd/conf/httpd.conf n將httpd.conf文件中的 #ServerName http://www.example.com:80改為 ServerName localhost:80n在httpd.conf文件末尾增加如下7行:n<directory /var/www/html/>nAuthType basicnAuthName htmlnAuthBasicProvider filenAuthUserFile /var/www/.htpasswdnRequire valid-usern</directory>nnhtpasswd -c /var/www/.htpasswd centos 註:centos可改為任意用戶名n接著根據提示輸入用戶密碼nnservice httpd startn

用瀏覽器打開你伺服器的ip地址,如果配置沒有問題的話會出現如下驗證界面,當輸入正確的用戶名和密碼後可進行解鎖

7. 編寫LaTeX自動化編譯腳本

還是以步驟2的ACM模板為例,進入acmart-master目錄

vim creat-pdf.sh 腳本內容如下(這裡以編譯sample-sigconf.tex生成pdf為例)nn#!/bin/bashnrm -rf ./sample-sigconf.pdf;pdflatex ./sample-sigconf.tex && bibtex ./sample-sigconf.aux && pdflatex ./sample-sigconf.texn[ -f ./sample-sigconf.pdf ] && cp ./sample-sigconf.pdf ~/var/www/html n

chmod u+x creat-pdf.shn

運行

./creat-pdf.sh n

打開瀏覽器輸入http://你的伺服器ip/sample-sigconf.pdf (第一次訪問需要輸入用戶名和密碼,以後刷新不需要輸入)可查閱剛剛生成的論文pdf

總結一下,經常處於的工作循環為:用vim編輯tex文件 =>運行編譯腳本=>刷新瀏覽器查看pdf

8. 多人共享寫作屏幕的配置

安裝screen

sudo yum install screenn

screen -S introductionWriting 註:建立一個共享窗口,窗口名可以隨便取 nnscreen -x introductionWriting 註:其他終端設備可通過該命令也連接到該窗口n

9. 在瀏覽器中進行編輯(5月28日增加)

為了解決手機平板電腦不方便安裝ssh客戶端的問題,可進行以下步驟:

安裝shellinabox:

sudo yum install openssl shellinaboxn

啟動shellinabox服務:

service shellinaboxd startn

在瀏覽器中輸入https://你的伺服器ip:4200 即可打開如上圖所示的登錄頁面,輸入用戶名和登錄密碼登錄後即可正常訪問伺服器了。下圖用瀏覽器編輯Latex文檔的效果圖

另外,多人同時編輯同一份文檔時遇到衝突的解決方法可參考我寫的另一篇文章vim多人編輯是一種什麼樣的體驗 - 知乎專欄

推薦閱讀:

vim 中文輸入解決方案
Stack Overflow:幫助一百萬開發者退出 Vim
vim多人編輯是一種什麼樣的體驗
為什麼很多人認為編輯器比 IDE 更酷?
如何提高右手小拇指打字的靈活性?

TAG:LaTeX | Vim | 论文 |