TeXstudio 編寫Latex論文的若干問題


TeXstudio 編寫Latex論文的若干問題解決方案總結
 
 
 
問題1: 如何安裝TeXstudio 以及 Texstudio當中的中文字體使用問題.
 
一、如何安裝TeXstudio
很多人推薦使用TexStudio。注意,texstudio是一個latex編譯器,而非latex的軟件實體。正如rstudio和r的關系。因此,先要安裝latex軟件,之后才能使用TexStudio。
 
1. 到這里下載並安裝MikTex: http://miktex.org/ 或者TexLive2015:  http://tug.org/texlive/
 
2. 到這里下載並安裝最新的texstudio  http://texstudio.sourceforge.net/
 
 
二、 Texstudio當中的中文字體使用
但texstudio當中中使用ctex中文包總是出錯。怎么回事呢?主要是兩個問題:中文字體,字體編碼。
如何解決呢?
 
1. 為支持中文字體在miktex中安裝ctex包
 
2. 設置字體的編碼
這一步並不那么簡單,需要在軟件中設置兩個地方(見這篇 博客),在代碼中聲明兩個地方。如下:
 
(2a) 選項->設置->編輯器->Default Font Encoding 選擇" System" 並勾上Auto Detect Encoding of Loaded files.
(2b) 編輯"->設置編碼->{如果是GBK編碼,就選擇" S ystem"},並點重新載入即可。
(2c) 在Latex代碼中聲明usepackage{ctex},如下代碼
 
讀者設置了2a和2b之后可以嘗試run下面這個簡單的例子:
 
\documentclass[10pt,a4paper]{article}
\usepackage{ctex}
\begin{document}
good morning!\
中文English中文
\end{document}

 

 

問題二 :如何在TexSduio中使用JabRef來插入文獻,自動生成文獻列表的問題.
 

傳統的添加文獻的方法:

//--------------------------------------

\begin{thebibliography}{}

        這里輸入文獻

\end{thebibliography}

 

//-------------------------------------

這種添加文獻的方法比較原始,不適合管理大型文獻,手工操作繁瑣,麻煩,目前更好的解決方案為:

在tex文檔中, 指定文獻數據庫和文獻格式文件,創建了文獻數據庫就可以在所需排版參考文獻的位置使用文獻格式命令和文獻數據庫命令

1.首先在tex里加上兩個宏包

      \usepackage{cite}

      \usepackage{hyperref}

 

2.刪除tex論文中的這兩行:

\begin{thebibliography}{}

\end{thebibliography}

 

3.在要插入文獻的位置 添加下面兩行

\bibliographystyle{文獻的格式,如IEEEtran}

 \bibliography{文獻數據庫的名字} 

 

解釋:

數據庫內存放我們自己搜集整理的各種文獻,可以從各大數據庫IEEE, WebScience,Springer,ElserVierew...下載bibtex文獻形式,可以結合使用JabRef文獻管理軟件管理所有文獻,

文獻的格式一般所要投稿的期刊會給出,如IEEE會刊的IEEEtran即為其文獻格式,這樣在插入文獻時,tex會自動轉換為IEEE指定的文獻樣式,簡單快捷,JabRef開源免費,適合大型文獻的管理和應用.

  • 1.添加文獻的格式文件到tex文檔中,如" \bibliographystyle{文獻格式名} ", 文獻格式名擴展名為.bst,這里不需要添加擴展名,只需添加相應的文件格式名即可
  • 2.添加自己的文獻數據庫.bib文件到tex文檔中,如 "\獻數據1名字,文bibliography{文獻數據庫2名字,...} " ,文獻數據庫的擴展名為.bib,同上,也不需要在大括號里添加擴展名,只需添加相應的數據庫名即可

 

latex中如何設置sci期刊名(如圖所示,分單雙頁、左右對齊)

開頭添加: \documentclass[journal,twoside]{IEEEtran}, 注:必須在選項參數里添加上twoside,否則,無效果.

tex文中采用\markboth{xxx-期刊名}{xxx-文章題目信息等}


 

為什么要用 Jabref?

JabRef 是一個開源的參考文獻管理軟件,使用 Java 語言編寫,所以天生具有跨平台特性,通用於安裝有 Java 支持的 Windows, Linux 和 Mac,軟件主頁在:http://jabref.sourceforge.net/ 。它可以很方便地管理下載到本機的文獻,生成 BibTeX 文獻數據庫,供 LaTeX 或其它軟件使用,可以與 Kile, Emacs, Vim, WinEdt 等多種軟件結合使用。

寫論文的工具有兩大類:一類是用 LaTex,一類是用 Microsoft Word。兩類都是工具,內容才是實質,無論如何,只要文章的內容好就行。不過現在就是在討論工具嘛:

如果你想日子好過些,遠離 Word。

用 Jabref 的好處是,無論是用 LaTeX 還是 Word,它都支持。

  • LaTeX。直接裝一個 Jabref 就好了。
  • Word。Jabref 之外還需要裝Bibtex4Word。

其實,如果細說,Jabref 就是一個高級的 BibTeX 文件管理工具。說 Jabref 支持 Word 也是靠着Bibtex4Word 讓 Word 能結合 BibTeX 使用。說到底,遠離 Word 吧。用Bibtex4Word支持 Word 是一種不得已而為之的方法,因為很多時候用 Word 是無法避免的。

Jabref 是免費的,不用費盡心思去找各種激活文件。

Mendeley 目前只能去 Google Scholar 找文獻信息,很多時候返回的結果還需要手工修正。

Papers 在查找文獻信息的時候很不錯,管理也很不錯。Windows 版的還比較簡陋。Mac 版的 Papers3雖然是正式版,但是功能還不完善;Papers2雖然功能完善,但是缺少了 Dropbox 同步。是的,因為 Papers 是收費軟件,我當然期待它完美無缺。Linux 版還木有。

至於其他的 Endnote 什么的,沒用過,覺得都是是上個世紀的產品。

BibTeX 是什么?

BibTeX 是 TeX 的衍生系統,專門處理參考文獻。具體BibTex 和 TeX 結合的實現機理我不清楚,也覺得沒必要。只需要知道 BibTeX 是通過一種以 .bib 的文本文件體現就夠了。文本文件的優點就不必說了,跨平台,無論什么平台的電腦都能打開。體積小,傳輸也方便。

JabRef 適合什么人使用?總的來說 JabRef 最大的特點就是使用 BibTeX 格式的數據庫,所以它最適合 LaTeX 用戶使用;如果僅僅使用它的管理功能,也可以用於本地電子書的管理;對於使用 M$ Office 寫論文的用戶來說,EndNote 是最好的選擇,它能集成到 M$ Word 中,所以不推薦使用 JabRef。

附:JabRef的下載列表:http://jabref.sourceforge.net/  ,JabRef基本界面:

 

 在文章中插入文獻時可以用命令\cite{Tremonti2004}來完成,編譯后,會tex編譯系統會在文后自動插入相應的文獻,如下所示:


 

 

其他latex中的一些小問題總結(不斷更新... ... ... )

 

 如何實現雙擊pdf文件中的文字跳轉到源文件相應的位置?

 

右擊選擇“點擊以跳轉到行(ctrl+click)”,或者按ctrl鍵加單擊文字,會自動跳轉到源文件的相應內容上去。


 如果以上出現問題,很大可能原因是,你的源文件放在了中文目錄下。

 

 

 

部分期刊模板下表格、圖片的引用會出現不正確的問題。比如第一張圖片定義的label為label{fig1},tex文件中引用ref{fig1},但編譯后出現的是Figure 2或是Figure x.x。

 

解決方法:

在figure(table類似)環境中,先寫caption{}再寫label{},也就是說,一定要把label{}放在caption{}后面

 

2.算法命令\REQUIRE和\ENSURE顯示為Input:和Output:

\usepackage{algorithm} 宏包,在tex文中寫偽代碼時遇到的問題:
(1)首先在導言區加入語句:
    \usepackage{algorithm
   % \usepackage{algorithmic}
(2)在導言區,用\renewcommand 改變現有命令的定義。加入如下語句:
 
\ renewcommand{ \algorithmicrequire}{  \textbf{Input:}}      %Use Input in the format of Algorithm
\ renewcommand{ \algorithmicensure}{  \textbf{Output:}}     %UseOutput in the format of Algorithm
 
顯示效果:
 

總結:  排版可能需要的包

\usepackage{algorithm} //format of the algorithm

\usepackage{algorithmic} //format of the algorithm

\usepackage{multirow} //multirow for format of table

\usepackage{amsmath}

\usepackage{xcolor}

DeclareMathOperator*{argmin}{argmin} //argmin或argmax公式的排版

\enewcommand{algorithmicrequire}{ extbf{Input:}} //Use Input in the format of Algorithm

\enewcommand{algorithmicensure}{ extbf{Output:}} //UseOutput in the format of Algorithm

 

排版圖片可能需要的包:

usepackage{graphics}

usepackage{graphicx}

usepackage{epsfig}

 

算法的排版舉例:

\begin{algorithm}[htb] %算法的開始

\caption{ Framework of ensemble learning for our system.} %算法的標題

\label{alg:Framwork} %給算法一個標簽,這樣方便在文中對算法的引用

\begin{algorithmic}[1] %這個1 表示每一行都顯示數字

\REQUIRE ~~\ %算法的輸入參數:Input

The set of positive samples for current batch, $P_n$;\

The set of unlabelled samples for current batch, $U_n$;\

Ensemble of classifiers on former batches, $E_{n-1}$;

\ENSURE ~~\ %算法的輸出:Output

Ensemble of classifiers on the current batch, $E_n$;

\STATE Extracting the set of reliable negative and/or positive samples $T_n$ from $U_n$ with help of $P_n$; label{code:fram:extract} %算法的一個陳述,對應算法的一個步驟或公式之類的; label{ code:fram:extract }對此行的標記,方便在文中引用算法的某個步驟

\STATE Training ensemble of classifiers $E$ on $T_n cup P_n$, with help of data in former batches; label{code:fram:trainbase}

\STATE $E_n=E_{n-1}cup E$; label{code:fram:add}

\STATE Classifying samples in $U_n-T_n$ by $E_n$; label{code:fram:classify}

\STATE Deleting some weak classifiers in $E_n$ so as to keep the capacity of $E_n$; label{code:fram:select}

\RETURN $E_n$; %算法的返回值

\end{algorithmic}

\end{algorithm}

 

排版效果圖:

 

在文中對算法和算法的某個步驟的引用:Therefore, in step
ef{code:fram:extract} of algorithm
ef{alg:Framwork}, we extract $T_n$, a set of reliable negative samples

1、 For和While循環語句的排版舉例

(1) 排版效果圖

 

(2)排版代碼

\begin{algorithm}[h]

\caption{An example for format For & While Loop in Algorithm}

\begin{algorithmic}[1]

\FOR{each $iin [1,9]$}

\STATE initialize a tree $T_{i}$ with only a leaf (the root);\

\STATE $T=Tigcup T_{i};$\

\ENDFOR


\FORALL {$c$ such that $cin RecentMBatch(E_{n-1})$} label{code:TrainBase:getc}

\STATE $T=T cup PosSample(c)$; label{code:TrainBase:pos}

\ENDFOR;


\FOR{$i=1$; $i<n$; $i++$ }

\STATE $//$ Your source here;

\ENDFOR

 

\FOR{$i=1$ to $n$}

\STATE $//$ Your source here;

\ENDFOR

 

\STATE $//$ Reusing recent base classifiers. label{code:recentStart}

\WHILE {$(|E_n| leq L_1 )and( D
eq phi)$}

\STATE Selecting the most recent classifier $c_i$ from $D$;

\STATE $D=D-c_i$;

\STATE $E_n=E_n+c_i$;

\ENDWHILE label{code:recentEnd}

 
\end{algorithmic}

\end{algorithm}

 3. 在LaTex中的注釋有3種:

1. 用%注釋一行文字, 在%后的文字都不予編譯;

2. 用\iffalse .... \fi 包含一段文字, 被包含的文字被注釋掉了;

3. 用\begin{comment} ... \end{comment} 包含被注釋的文字, 但是需要在引言區包括相應的宏包, 即 \usepackage{verbatim}.

 

 

 


免責聲明!

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



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