畢業(yè)論文LaTeX模板

多文件編譯

畢業(yè)論文篇幅較長掖肋,單一文件的編譯方式不太方便仆葡,可按照文檔的邏輯層次,把整個(gè)文檔分成多個(gè)\Tiny \TeX源文件 志笼,\Tiny \LaTeX提供的\include{filename}命令可用來導(dǎo)入另一個(gè)文件的內(nèi)容作為一個(gè)章節(jié),文件名不用帶.tex擴(kuò)展名把篓。\include{filename}命令會在命令之前和之后使用\clearpage\cleardoublepage另起新頁纫溃,并將文件內(nèi)容貼到\include{filename}命令所在位置。

定制論文樣式

設(shè)置標(biāo)題字體及標(biāo)題樣式

Arial字體的使用

  • 先定義新字體Arial:\newfontfamily\sectionef{Arial}
  • 在需要使用Arial字體的地方輸入命令:\sectionef

設(shè)置標(biāo)題

  1. 英文標(biāo)題字體采用\Tiny Arial韧掩,中文標(biāo)題采用黑體
  2. 一級標(biāo)題居中紊浩,小三號
  3. 二級標(biāo)題左對齊,四號
\usepackage{titlesec}
\newfontfamily\sectionef{Arial}                                     % 設(shè)置Arial字體     
% \newCJKfontfamily\sectioncf{STXihei}                              % 設(shè)置黑體
\titleformat{\section}{\center\zihao{-3}\heiti\sectionef}{          % 設(shè)置一級標(biāo)題居中疗锐,中文字體為黑體坊谁,英文字體為Arial,字號為小三號
第\,\thesection\,章}{1em}{}
\titleformat*{\subsection}{\zihao{4}\heiti\sectionef}               % 設(shè)置二級標(biāo)題中文字體為黑體滑臊,英文字體為Arial字號為四號

設(shè)置頁邊距口芍,頁眉,頁腳

  1. 頁邊距左右均為3.2 cm雇卷,上下均為3.8 cm
  2. 頁眉居中顯示當(dāng)前章標(biāo)題
  3. 頁腳居中顯示當(dāng)前頁碼
  4. 封面不顯示頁碼鬓椭,中英文摘要和目錄頁碼采用大寫羅馬格式颠猴,正文及參考文獻(xiàn)采用小寫阿拉伯格式

由于titlesec宏包會改變頁眉章標(biāo)題格式,所以需要重新定義頁眉章標(biāo)題格式小染,如果沒有引入titlesec宏包翘瓮,可采用\fancyhead[C]{\leftmark}完成頁眉居中顯示當(dāng)前章標(biāo)題。

\usepackage{geometry}                                               
\geometry{left=3.2cm,right=3.2cm,top=3.8cm,bottom=3.8cm}            % 設(shè)置頁邊距
\usepackage{fancyhdr}                                               % 設(shè)置頁眉
\pagestyle{fancy}   
\fancyhf{}
\cfoot{\thepage}                                                    % 設(shè)置頁碼
\renewcommand{\sectionmark}[1]{\markboth{第\thesection 章\quad        % 設(shè)置頁眉內(nèi)容為章標(biāo)題
\ #1}{}}

頁碼格式的設(shè)置可在不同源文件中加入頁碼控制語句裤翩,具體參見\Tiny \LaTeX論文源碼一節(jié)资盅。

%---------------------------cover.tex-------------------------------
\thispagestyle{empty}                       %  當(dāng)前頁不顯示頁碼
%------------------------abstract_cn.tex-------------------------------
\setcounter{page}{1}                        % 設(shè)置當(dāng)前頁頁碼編號從1開始計(jì)數(shù)
\pagenumbering{Roman}                       % 設(shè)置頁碼字體為大寫羅馬字體
%----------------------------main.tex-------------------------------
\setcounter{page}{1}                        % 設(shè)置當(dāng)前頁頁碼編號從1開始計(jì)數(shù)
\pagenumbering{arabic}                      % 設(shè)置頁碼字體為小寫阿拉伯字體

定義中英文摘要環(huán)境

定義中文摘要環(huán)境

% -*- coding: utf-8 -*-
\newcommand{\cnabstractname}{\zihao{-3}摘\quad 要}                        % 定義中文摘要環(huán)境
\newenvironment{cnabstract}{%
% \quotation
    \par\small
    \mbox{}\hfill{\bfseries \cnabstractname}\hfill\mbox{}\par
    \vskip 2.5ex}{\par\vskip 2.5ex}

定義英文摘要環(huán)境

\newcommand{\enabstractname}{\zihao{-3}Abstract}                                % 定義英文摘要環(huán)境
\newenvironment{enabstract}{%
% \quotation
    \par\small
    \mbox{}\hfill{\sectionef{\enabstractname}}\hfill\mbox{}\par                 % \sectionef:英文摘要使用Arial字體
    \vskip 2.5ex}{\par\vskip 2.5ex} 

目錄的生成及相關(guān)問題處理

\tableofcontents可以自動生成目錄,但是所生成的目錄中不包括中英文摘要和參考文獻(xiàn)踊赠,因此我們需要將他們手動添加到目錄呵扛。 這里以英文摘要為例:

\phantomsection                                         % 解決目錄中超鏈接地址錯(cuò)誤問題
\addcontentsline{toc}{section}{ABSTRACT(英文摘要)}      % 將英文摘要添加到目錄

\addcontentsline{toc}{section}{ABSTRACT(英文摘要)}雖然可以將ABSTRACT(英文摘要)添加至目錄,但是此時(shí)的鏈接地址是錯(cuò)誤的臼疫,需要加上\phantomsection進(jìn)行調(diào)整择份。

編譯警告的處理

在添加中文摘要至目錄時(shí),編輯器出現(xiàn)警告:Token not allowed in a PDF string烫堤,原因是\Tiny \LaTeX一些命令語句無法在書簽中顯示荣赶。例如:

\addcontentsline{toc}{section}{摘\quad 要}            % 將中文摘要添加到目錄

這里的\quad就無法在書簽中顯示,需要用空格替換后才能顯示鸽斟,可采用如下操作進(jìn)行處理拔创。

\addcontentsline{toc}{section}{摘\texorpdfstring{\quad}{} 要}         % 將中文摘要添加到目錄

設(shè)置參考文獻(xiàn)格式

設(shè)置參考文獻(xiàn)引用格式

\usepackage[bookmarks=true,colorlinks,linkcolor=black,
citecolor=black]{hyperref}                                          % 設(shè)置超鏈接
\usepackage[superscript]{cite}                                      % 引入?yún)⒖嘉墨I(xiàn)格式包
\bibliographystyle{mybst}                                           % 參考文獻(xiàn)格式采用自制的mybst
\newcommand{\upcite}[1]{\textsuperscript{\textsuperscript{
\citeleft}\cite{#1}\textsuperscript{\citeright}}}                   % 設(shè)置參考文獻(xiàn)序號格式

文獻(xiàn)按引用順序排序,引用標(biāo)號形式為:^{\Tiny [1]}富蓄,顏色為黑色剩燥,\upcite{1,2,3}可達(dá)到^{\Tiny [1-3]}的效果。

設(shè)置參考文獻(xiàn)顯示格式

\Tiny \LaTeX提供了七種基本的參考文獻(xiàn)顯示格式立倍,但是都不符合畢業(yè)論文參考文獻(xiàn)的引用格式灭红,所以需要我們自己定制參考文獻(xiàn)格式控制文件bst。由于bst是逆波蘭式語法口注,且參考文獻(xiàn)格式控制文件bst篇幅較長变擒,因此我們可以直接復(fù)制一種基本的參考文獻(xiàn)顯示格式,并對其修改寝志,這里修改unsrt娇斑。

將文獻(xiàn)年份放在期刊卷數(shù)和頁碼之前

bst文件中的format.date "year" output.check放在format.vol.num.pages output之前,這里以article類為例:

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.date "year" output.check                           
      format.vol.num.pages output                               
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

中文期刊作者超過三個(gè)人材部,在第三作者后加等

新定義article_cn類表示中文期刊毫缆,在bst文件中添加以下代碼:

FUNCTION {format.names.cn}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "其他" =
                { " {\kaishu 等}." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors.cn}
{ author empty$
    { "" }
    { author format.names.cn }
  if$
}

FUNCTION {article_cn}
{ output.bibitem
  format.authors.cn "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.date "year" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

引用中文文獻(xiàn)時(shí),在bib文件中寫入以下內(nèi)容即可在第三作者后添加 “ 等 ” 乐导。

@article_cn{關(guān)鍵字,
    title   =   "題目",
    journal =   "期刊名",
    year    =   "年份",
    volume  =   "卷數(shù)",
    pages   =   "開始頁碼-結(jié)束頁碼",
    author  =   "作者1 and 作者2 and 作者3  and 其他",
}

文獻(xiàn)不同屬性用"."分隔

output.nonnull函數(shù)中的{ ", " * write$ }修改為{ ". " * write$ }即可苦丁,函數(shù)實(shí)現(xiàn)如下:

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ". " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

文獻(xiàn)年份和期刊卷數(shù)以“,”隔開

format.vol.num.pages函數(shù)中的volume field.or.null修改為 :

 volume empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.volume }
        { ", " * volume * }
      if$
    }
  if$

修改后的format.vol.num.pages函數(shù)如下:

FUNCTION {format.vol.num.pages}
{ 

  volume empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.volume }
        { ", " * volume * }
      if$
    }
  if$

  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * }
      if$
    }
  if$
}

去掉文獻(xiàn)末尾的"."

去掉fin.entry函數(shù)中的add.period$兽叮。

FUNCTION {fin.entry}
{ 
  write$
  newline$
}

去掉期刊名稱的強(qiáng)調(diào)字體

journal emphasize "journal" output.check修改為journal "journal" output.check

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal "journal" output.check
      format.date "year" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {article_cn}
{ output.bibitem
  format.authors.cn "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal "journal" output.check
      format.date "year" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

LaTeX論文源碼

  • 論文封面源文件cover.tex
% -*- coding: utf-8 -*-
% cover.tex
\thispagestyle{empty}
\begin{figure}[t]
    \parbox{1.5cm}{
        \includegraphics[scale=0.7]{sdu.jpg}
        }
    \parbox{5.5cm}{
        \begin{center}
            \includegraphics[scale=0.25]{words.png}

            \tiny ****************** \quad ** \quad **********              % 填寫學(xué)校的英文名字
        \end{center}
        }
\end{figure}

\begin{center}
    \quad \\
    \quad \\
    \heiti \fontsize{45}{17} 畢\quad 業(yè)\quad 論\quad 文
    \vskip 3.5cm
    \heiti \zihao{2} 在此打印論文題目芬骄,二號黑體  
\end{center}
\vskip 3.5cm

\begin{quotation}
    \songti \fontsize{15}{15}
    \doublespacing
    \par\setlength\parindent{12em}
    \quad 

    學(xué)\hspace{0.61cm} 院:\underline{略略略略學(xué)院\quad}

    專\hspace{0.61cm} 業(yè):\underline{略略略略略略略}

    學(xué)生姓名:\underline{\qquad 德彪西\qquad }

    學(xué)\hspace{0.61cm} 號:\underline{\quad 00000000000\quad}

    指導(dǎo)教師:\underline{\qquad 傅里葉 \qquad}
    \vskip 2cm
    \centering
    2019年**月**日
\end{quotation}
  • 論文中文摘要源文件abstract_cn.tex
% -*- coding: utf-8 -*-
% abstract_cn.tex
\setcounter{page}{1}                                                    % 設(shè)置當(dāng)前頁頁碼編號從1開始計(jì)數(shù)
\fancyhead[C]{中\(zhòng)quad 文\quad 摘\quad 要}                               % 設(shè)置頁眉內(nèi)容為“中 文 摘 要”
\pagenumbering{Roman}                                                   % 設(shè)置頁碼字體為大寫羅馬字體
\newcommand{\cnabstractname}{\zihao{-3}摘\quad 要}                        % 定義中文摘要環(huán)境
\newenvironment{cnabstract}{%
% \quotation
    \par\small
    \mbox{}\hfill{\bfseries \cnabstractname}\hfill\mbox{}\par
    \vskip 2.5ex}{\par\vskip 2.5ex}
% \clearpage
\phantomsection                                                         % 解決目錄中超鏈接地址錯(cuò)誤問題
\addcontentsline{toc}{section}{摘\texorpdfstring{\quad}{} 要}         % 將中文摘要添加到目錄
\begin{cnabstract}
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要 
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要     
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要 
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要     
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要 
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要     
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要
    中文摘要 中文摘要 中文摘要   中文摘要 中文摘要 中文摘要     

    \textbf{關(guān)鍵字:}中文摘要
\end{cnabstract}
  • 論文英文摘要源文件abstract_en.tex
% abstract_en.tex

\fancyhead[C]{英\quad 文\quad 摘\quad 要}                                       % 設(shè)置頁眉為“英 文 摘 要”
\newcommand{\enabstractname}{\zihao{-3}Abstract}                                % 定義英文摘要環(huán)境
\newenvironment{enabstract}{%
% \quotation
    \par\small
    \mbox{}\hfill{\sectionef{\enabstractname}}\hfill\mbox{}\par                 % \sectionef:英文摘要使用Arial字體
    \vskip 2.5ex}{\par\vskip 2.5ex} 
\phantomsection                                                                 % 解決目錄中超鏈接地址錯(cuò)誤問題
\addcontentsline{toc}{section}{ABSTRACT(英文摘要)}                              % 將英文摘要添加到目錄
\begin{enabstract}
    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.    
    This is the abstract in English.    This is the abstract in English.
            
    \textbf{Keywords:}  Abstract
\end{enabstract} 
  • 論文目錄源文件contents.tex
% contents.tex
\phantomsection                                                 % 解決目錄中超鏈接地址問題
\renewcommand{\contentsname}{目\quad 錄}                          % 自定義目錄標(biāo)題格式
\addcontentsline{toc}{section}{目\texorpdfstring{\quad}{} 錄} % 將\quad替換為“ ”在書簽中顯示猾愿,并將目錄地址添加到目錄
\begin{center}
    \tableofcontents                                            % 顯示目錄
\end{center}
  • 論文結(jié)論、參考文獻(xiàn)账阻、致謝源文件conclusion_reference_thanks.tex
% conclusion_reference_thanks.tex

\fancyhead[C]{結(jié)\quad 論}                         % 設(shè)置頁眉內(nèi)容為“結(jié) 論”
\phantomsection                                     % 解決目錄中超鏈接地址問題
\addcontentsline{toc}{section}{結(jié)論}                  % 將結(jié)論添加到目錄
\section*{結(jié)\quad 論}                             % 無編號標(biāo)題“結(jié) 論”
\newpage                                            % 另起一頁
\fancyhead[C]{參\quad 考\quad 文\quad 獻(xiàn)}           % 設(shè)置頁眉內(nèi)容為“參 考 文 獻(xiàn)”
\phantomsection                                     % 解決目錄中超鏈接地址問題
\addcontentsline{toc}{section}{參考文獻(xiàn)}                % 將參考文獻(xiàn)添加到目錄
\bibliography{reference.bib}                        % 顯示參考文獻(xiàn)                            
\newpage                                            % 另起一頁
\fancyhead[C]{致\quad 謝\quad 及\quad 聲\quad 明}        % 設(shè)置頁眉內(nèi)容為“致 謝 及 聲 明”
\phantomsection                                     % 解決目錄中超鏈接地址問題
\addcontentsline{toc}{section}{致謝及聲明}           % 將致謝及聲明添加到目錄
\section*{致\quad 謝  }                               % 無編號標(biāo)題“致 謝”
衷心感謝導(dǎo)師***教授和***副教授對本人的精心指導(dǎo)蒂秘。
他們的言傳身教將使我終生受益。
二位導(dǎo)師廣博的學(xué)識和嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度將使我受益終生淘太。

感謝***教研室的全體老師和同學(xué)多年來的關(guān)心和支持姻僧!
感謝所有關(guān)心和幫助過我的人們! 
  • 論文參考文獻(xiàn)引用示例源文件reference.bib
% Encoding: UTF8
@article{1,
    title   =   "Measurements of total kinetic-energy released to the {$N=2$} dissociation limit of {$H_{2}$} - evidence of the dissociation of very high vibrational Rydberg states of {$H_{2}$} by doubly-excited states.",
    journal =   "Chem. Phys. Lett",
    year    =   "1994",
    volume  =   "224",
    pages   =   "260-266",
    author  =   "Elidrissi M C and Roney A and Frigon C and others",    
}
@article_cn{2,
    title   =   "利用{REMPI}方法測量{BaF}高里德堡系列光譜",
    journal =   "化學(xué)物理學(xué)報(bào)",
    year    =   "1995",
    volume  =   "8",
    pages   =   "308-311",
    author  =   "馬輝 and 李儉 and 劉耀明 and 其他",
}
@article{3,
    title   =   "{R}ydberg series and ionization potential of the {$H_{2}$} molecule. {J. Mol}",
    journal =   "Spectrosc",
    year    =   "1972",
    volume  =   "41",
    pages   =   "425-486",
    author  =   "Herzberg G and Jungen Ch", 
}
  • 論文主文件main.tex
% -*- coding=utf-8 -*-
% main.tex
\documentclass[UTF8, a4paper]{ctexart}
\usepackage{titlesec}
\newfontfamily\sectionef{Arial}                                     % 設(shè)置Arial字體     
% \newCJKfontfamily\sectioncf{STXihei}                              % 設(shè)置黑體
\titleformat{\section}{\center\zihao{-3}\heiti\sectionef}{          % 設(shè)置一級標(biāo)題居中蒲牧,中文字體為黑體撇贺,英文字體為Arial,字號為小三號
第\,\thesection\,章}{1em}{}
\titleformat*{\subsection}{\zihao{4}\heiti\sectionef}               % 設(shè)置二級標(biāo)題中文字體為黑體冰抢,英文字體為Arial字號為四號
\usepackage{geometry}                                               
\geometry{left=3.2cm,right=3.2cm,top=3.8cm,bottom=3.8cm}            % 設(shè)置頁邊距
\usepackage[bookmarks=true,colorlinks,linkcolor=black,
citecolor=black]{hyperref}                                          % 設(shè)置超鏈接
\usepackage{graphicx}
\usepackage[superscript]{cite}                                      % 引入?yún)⒖嘉墨I(xiàn)格式包
\bibliographystyle{mybst}                                           % 參考文獻(xiàn)格式采用自制的mybst
\newcommand{\upcite}[1]{\textsuperscript{\textsuperscript{
\citeleft}\cite{#1}\textsuperscript{\citeright}}}                   % 設(shè)置參考文獻(xiàn)序號格式
\usepackage{setspace}
\usepackage{fancyhdr}                                               % 設(shè)置頁眉
\pagestyle{fancy}   
\fancyhf{}                                                          
\cfoot{\thepage}                                                    % 設(shè)置頁碼
% \CTEXsetup[name = {第,章}]{section}                             % 設(shè)置章節(jié)格式
\begin{document}
    \include{cover}                                                 % 封面
    \include{abstract_cn}                                           % 中文摘要
    \include{abstract_en}                                           % 英文摘要
    \fancyhead[C]{\leftmark}                                        % 設(shè)置頁眉內(nèi)容為章標(biāo)題
    \include{contents}                                              % 目錄
    \setcounter{page}{1}
    \pagenumbering{arabic}
    \renewcommand{\sectionmark}[1]{\markboth{第\thesection 章\quad    % 設(shè)置頁眉內(nèi)容為章標(biāo)題
    \ #1}{}}
    \markboth{leftmark}{rightmark}
%------------------以下部分可寫成一個(gè)文件然后以章節(jié)形式導(dǎo)入---------------------------
    \section{引\texorpdfstring{\quad}{} 言}                           % 將\quad替換為“ ”在書簽中顯示
    \subsection{課題的目的和意義}
    核輻射開始放假\upcite{1,2,3}
    \newpage
    \section{Arial Unicode MS}
%----------------------------------------------------------------------------------------------------------
    \include{conclusion_reference_thanks}
\end{document}
  • 論文參考文獻(xiàn)格式源文件mybst.bst
% -*- coding=utf-8 -*-
% BibTeX standard bibliography style `unsrt'
   % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
   % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
   % Unlimited copying and redistribution of this file are permitted as long as
   % it is unmodified.  Modifications (and redistribution of modified versions)
   % are also permitted, but only if the resulting file is renamed to something
   % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
   % This restriction helps ensure that all standard styles are identical.
   % The file btxbst.doc has the documentation for this style.

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
  }
  {}
  { label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ". " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ % 去掉add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "{\em " swap$ * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.names.cn}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "其他" =
                { " {\kaishu 等}." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors.cn}
{ author empty$
    { "" }
    { author format.names.cn }
  if$
}

FUNCTION {format.authors}
{  author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
        { ", editors" * }
        { ", editor" * }
      if$
    }
  if$
}

FUNCTION {format.title}
{ title empty$
    { "" }
    { title "t" change.case$ }
  if$
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {format.date}
{ year empty$
    { month empty$
        { "" }
        { "there's a month but no year in " cite$ * warning$
          month
        }
      if$
    }
    { month empty$
        'year
        { month " " * year * }
      if$
    }
  if$
}

FUNCTION {format.btitle}
{ title emphasize
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { "volume" volume tie.or.space.connect
      series empty$
        'skip$
        { " of " * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}

FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { output.state mid.sentence =
            { "number" }
            { "Number" }
          if$
          number tie.or.space.connect
          series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { " in " * series * }
          if$
        }
      if$
    }
    { "" }
  if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
        { edition "l" change.case$ " edition" * }
        { edition "t" change.case$ " edition" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
        { "pages" pages n.dashify tie.or.space.connect }
        { "page" pages tie.or.space.connect }
      if$
    }
  if$
}

FUNCTION {format.vol.num.pages}
{ 

  volume empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.volume }
        { ", " * volume * }
      if$
    }
  if$

  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
        { "chapter" }
        { type "l" change.case$ }
      if$
      chapter tie.or.space.connect
      pages empty$
        'skip$
        { ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
        { "In " booktitle emphasize * }
        { "In " format.editors * ", " * booktitle emphasize * }
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { "Technical Report" }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
        { "need key or journal for " cite$ * " to crossref " * crossref *
          warning$
          ""
        }
        { "In {\em " journal * "\/}" * }
      if$
    }
    { "In " key * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
        'skip$
        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " et~al." * }
            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      "In "
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { series empty$
            { "need editor, key, or series for " cite$ * " to crossref " *
              crossref * warning$
              "" *
            }
            { "{\em " * series * "\/}" * }
          if$
        }
        { key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { booktitle empty$
            { "need editor, key, or booktitle for " cite$ * " to crossref " *
              crossref * warning$
              ""
            }
            { "In {\em " booktitle * "\/}" * }
          if$
        }
        { "In " key * }
      if$
    }
    { "In " format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal "journal" output.check
      format.date "year" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {article_cn}
{ output.bibitem
  format.authors.cn "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal "journal" output.check
      format.date "year" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  new.block
  format.title "title" output.check
  howpublished address new.block.checkb
  howpublished output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      new.sentence
      publisher "publisher" output.check
      address output
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.pages output
      address empty$
        { organization publisher new.sentence.checkb
          organization output
          publisher output
          format.date "year" output.check
        }
        { address output.nonnull
          format.date "year" output.check
          new.sentence
          organization output
          publisher output
        }
      if$
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization empty$
        'skip$
        { organization output.nonnull
          address output
        }
      if$
    }
    { format.authors output.nonnull }
  if$
  new.block
  format.btitle "title" output.check
  author empty$
    { organization empty$
        { address new.block.checka
          address output
        }
        'skip$
      if$
    }
    { organization address new.block.checkb
      organization output
      address output
    }
  if$
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  "Master's thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  title howpublished new.block.checkb
  format.title output
  howpublished new.block.checka
  howpublished output
  format.date output
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.btitle "title" output.check
  new.block
  "PhD thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization output }
    { format.editors output.nonnull }
  if$
  new.block
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  address empty$
    { editor empty$
        { publisher new.sentence.checka }
        { organization publisher new.sentence.checkb
          organization output
        }
      if$
      publisher output
      format.date "year" output.check
    }
    { address output.nonnull
      format.date "year" output.check
      new.sentence
      editor empty$
        'skip$
        { organization output }
      if$
      publisher output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  note "note" output.check
  format.date output
  fin.entry
}

FUNCTION {default.type} { misc }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

READ

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}

由于\Tiny \LaTeX默認(rèn)的加粗方式不是偽加粗松嘶,而是以粗體字代替原字體,例如宋體加粗后以黑體的形式展示挎扰,因此標(biāo)題中的黑體默認(rèn)是粗體翠订,換句話說即\Tiny \LaTeX中的黑體不支持加粗命令。如果非要加粗或者改成黑體的正常體遵倦,可以嘗試修改線寬尽超。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梧躺,隨后出現(xiàn)的幾起案子似谁,更是在濱河造成了極大的恐慌,老刑警劉巖掠哥,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巩踏,死亡現(xiàn)場離奇詭異,居然都是意外死亡续搀,警方通過查閱死者的電腦和手機(jī)蛀缝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來目代,“玉大人,你說我怎么就攤上這事嗤练¢涣耍” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵煞抬,是天一觀的道長霜大。 經(jīng)常有香客問我,道長革答,這世上最難降的妖魔是什么战坤? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任曙强,我火速辦了婚禮,結(jié)果婚禮上途茫,老公的妹妹穿的比我還像新娘碟嘴。我一直安慰自己,他們只是感情好囊卜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布娜扇。 她就那樣靜靜地躺著,像睡著了一般栅组。 火紅的嫁衣襯著肌膚如雪雀瓢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天玉掸,我揣著相機(jī)與錄音刃麸,去河邊找鬼。 笑死司浪,一個(gè)胖子當(dāng)著我的面吹牛泊业,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播断傲,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼脱吱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了认罩?” 一聲冷哼從身側(cè)響起箱蝠,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垦垂,沒想到半個(gè)月后宦搬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劫拗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年间校,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片页慷。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憔足,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酒繁,到底是詐尸還是另有隱情滓彰,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布州袒,位于F島的核電站揭绑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏郎哭。R本人自食惡果不足惜他匪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一菇存、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邦蜜,春花似錦依鸥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至井辆,卻和暖如春关筒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杯缺。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工蒸播, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人萍肆。 一個(gè)月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓袍榆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親塘揣。 傳聞我的和親對象是個(gè)殘疾皇子包雀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容