latextools \cite 自動補全


最近在用latex寫畢業論文,編輯環境用的是Sublime Text 2 加 latextools 插件,在使用latextools的\cite命令來引用參考文獻時,我們希望輸入\cite{ 后自動彈出所有參考文獻提示,本文總結一下設置過程中遇到的坑。

 

首先要保證設置文件LaTeXTools.default-settings中參考文獻自動補全命令設置為true:“"cite_auto_trigger": true”

 

latextools插件中當輸入\cite{ 時會觸發一個名為“latex_cite_completions.py”的python腳本,該腳本分析當前的tex文件,找到該文件中\bibliography和\addbibresource語句所指定的bib文件, 獲得bib item信息。

 

有時候我們的\bibliography 語句只在一個主tex文件中,該主文件包含很多子tex文件,在編輯子tex文件時,如果輸入\cite{ ,由於latex_cite_completions.py腳本在該子文件中找不應用bib文件的語句,所以會彈出 “No bib files found”的錯誤提示。因此,為了讓分析腳本能在子文件中找到bib文件,我們可以在子文件的開頭加上語句:    本文地址

\iffalse

\bibliography{mybibfile.bib}

\fi

這樣腳本就會在子文件中找到bib文件,但是在編譯的過程中,上面的語句會被忽略,從而不會和主文件中的\bibliography 語句沖突。


bib格式注意事項

另外bib文件中需要注意一下格式:參考文獻的關鍵字需要和 @ 在同一行,如下:

@article{tak05,
  title={A physically-based motion retargeting filter},
  author={Tak, S. and Ko, H.},
  journal={ACM Transactions on Graphics (TOG)},
  volume={24},
  number={1},
  pages={98--117},
  year={2005},
  publisher={ACM}
}

 

 

如果不在同一行,latextools則不能識別,下面的格式就不能識別

@article{
  tak05,
  title={A physically-based motion retargeting filter},
  author={Tak, S. and Ko, H.},
  journal={ACM Transactions on Graphics (TOG)},
  volume={24},
  number={1},
  pages={98--117},
  year={2005},
  publisher={ACM}
}

 

並且.bib文件中所有參考文獻需要滿足正確的格式,有一個格式不對,latextools也不能識別。

 

參考:

http://shouxi.name/blog/2013/11/SublimeText-LaTeXTools-cite-tips.html

https://github.com/SublimeText/LaTeXTools/issues/27

 

【版權聲明】轉載請注明出處:http://www.cnblogs.com/TenosDoIt/p/4185021.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM