keywords: linux, MacOS, TeX, LaTeX, XeLaTeX, bibtex, .bst

在长时间 用 LaTeX 写文章或者论文 (我用 vim-latex)后发现了 其很多的优势。 比如完全不用担心文章格式就可以投稿到专业科学期刊。 不用像 Word 一样在那里 struggle with 格式 (如果不幸被拒稿了,还要重新修改成新目标期刊的格式)。

仔细想想,其实你原本可以3年博士毕业的,为什么你花了比3年多的时间? 因为你把时间花费在这些 trivial 的浪费上了。 为什么总是在朋友圈炫耀你几点下班, 其实(也许)在使用更高效的工具后, 你吃过中饭就下班了 (work smart not hard!)。

这些都归功于 LaTeX 中的 bibtex; 它让写文章时的文献引用变的特别容易。 具体就是, 在你 tex 文件中加载 文献配置文件 (比如, bibliography.bst 文件) 来告知 LaTeX 编译成怎么样的文献格式。 然后, 你需要做的事就是在写作的时候 \cite{yourPaperHere}, 相当的 intuitive (也许你会质疑: 怎么可能会记住 paper 的名字呢?  因为我自己使用 vim-latex suite 的缘故, 我只要输入作者姓名中的几个字符, 然后按功能键 F9 就让跳出可能的对应相)。

也许在我强力推荐你使用 LaTeX 写东西的时候, 你主要会以它在中文写作上比较水土不服 来搪塞。 这个问题存在, 但似乎又不是一个问题。 如果你在 “如何进行中文输入” 方面有问题, 请阅读这篇博客; 如果你是因为 bibtex 生成的参考文献格式不符合你们坑爹学校的要求, 那么这正是这篇博客所回答的问题 (通常, 那些洋气的跟国际接轨的名校都有自己的 TeX  模板及相应 .bst 文件下载。 如果你们学校没有, 那么很可惜, 你跟我一样读了一个野鸡学校)。

其实有些人不知道, Patrick W. Daly 写了一个 makebst 的程序, 来生成你自己所需要的 .bst 文献配置文件。 同时他也写了一本关于 LaTeX 的书 (Guide to LaTeX), 有兴趣可以读一读。

要使用 makebst 程序, 你必须要明白你所需要的参考文献要求是怎么样的, 比方说,下面图片是我坑爹母校的博士论文要求中的一部分:

Screenshot-2017-12-1 上海理工大学--学位论文的格式要求_百度文库

其实,这个要求并没有使文献排版变的好看。 值得注意的也就是, 用 comma 分隔作者; period 结束作者列表, title 后面要加文献类型 然后period 结束; 期刊名用 comma 结束;卷(期)之间没有空格且其后用冒号结束; 冒号后紧跟页码。 随便提一下, 如果我的坑爹母校愿意花点钱, 我其实是愿意给我的母校做个模板的, 哈哈。

示范

下面有就示范使用 bibtex 来生成一个特定的 bst (bibliography style file)。

首先在命令终端中输入

 latex makebst 

后会 pop-up 这个 cli 的人机交互, 让你选择具体配置 (也就是上面提及的逗号冒号空格之类), 我尽量逐条解释(也有一些 exceptions 我也没有办法解释,希望你们能补充)。 在下面 backslash 后面的部分你可以看到我的选择 (留白则表示选择默认)。


***********************************
* This is Make Bibliography Style *
***********************************
It makes up a docstrip batch job to produce
a customized .bst file for running with BibTeX
Do you want a description of the usage? (NO)

\yn=n

Enter the name of the MASTER file (default=merlin.mbs)

\mfile=

Name of the final OUTPUT .bst file? (default extension=bst)

\ofile=USST

Give a comment line to include in the style file.
Something like for which journals it is applicable.

\ans=
\openout3 = `USST.dbj'.

Do you want verbose comments? (NO)

\yn=n
(/usr/share/texmf-dist/tex/latex/custom-bib/merlin.mbs
<<< For more information about the meanings of
<<< the various options, see the section on
<<< Menu Information in the .mbs file documentation.

EXTERNAL FILES:

Name of language definition file (default=merlin.mbs)

\cfile=

Name of language file: \cfile=.

Include file(s) for extra journal names? (NO)

\yn=

No included files. 

这部分没有什么特别的,首先问你需要不需要给生成的 .bst 文件一个用途说明,然后问你输出文件的名字是什么?


INTERNAL LANGUAGE SUPPORT (if no external language file)
(*) English words used explicitly
(b) Babel (words replaced by commands defined in babelbst.tex)
Select:

\ans=
You have selected: English 

这里选择默认 English, 如果你要使用德国法语等其他语言则需要 babel package。 但由于中文(简体和繁体)都没有被 babel 包含在内, 所以根本没有必要选择它 (能不能告 babel 的程序员 racial?)


STYLE OF CITATIONS:
(*) Numerical as in standard LaTeX
(a) Author-year with some non-standard interface
(b) Alpha style, Jon90 or JWB90 for single or multiple authors
(o) Alpha style, Jon90 even for multiple authors
(f) Alpha style, Jones90 (full name of first author)
(c) Cite key (special for listing contents of bib file)
Select:

\ans=
You have selected: Numerical 

这里询问引用处的引用标记方式。 由于我的目标方式是 方括 [1] 上角标, 所以我选择 Numerical as in standard LaTeX; 如果你需要引用处显示“作者+年代”, 则选 a; 在一些特别专业的博士论文中, 比如数学, 会使用 Alpha 格式; 最后一个选择 c 是直接显示你 bib 文件中的 entry。


HTML OUTPUT (if non author-year citations)
(*) Normal LaTeX output
(h) Hypertext output, in HTML code, in paragraphs
(n) Hypertext list with sequence numbers
(k) Hypertext with keys for viewing databases
Select:

\ans=
You have selected: Normal LaTeX 

这是一个链接问题, 在一些论文中, 文献引用处是有 HTML 链接的, 你点击后直接后跳到 reference 相应处。 如果你不需要这种链接, 则选择默认。


LANGUAGE FIELD
(*) No language field
(l) Add language field to switch hyphenation patterns temporarily
Select:

\ans=
You have selected: No language field 

这里是有关 hyphenation 的 (白话的说就是一个单词放不下了, 使用 hyphen 比如 hyphe-nation),我们中文使用者没有这个问题, 选择默认。


ANNOTATIONS:
(*) No annotations will be recognized
(a) Annotations in annote field or in .tex file of citekey name
Select:

\ans=
You have selected: No annotations 

这是一个注解(annotations)问题。 但是我不明白文献引用的时候需要有注解(也许我无知, 请你们告知)。 通常, 选择默认无。


PRESENTATIONS:
(*) Do not add presentation type for conference talks
(p) Add presentation, speaker not highlighted
(b) Presentation, speaker bold face
(i) Presentaion, speaker italic
(c) Presentaion, speaker in small caps
Select:

\ans=
You have selected: Do not add presentation type 

如果你引用中有会议文章, 要不要在引用中标明 presentation 类型(比如 oral, post 等)。 怎么会有这么变态的引用。 应该可以很安全的选择 默认无。


ORDERING OF REFERENCES (if non-author/year and non-alph)
(*) Alphabetical by all authors
(c) Citation order (unsorted, like unsrt.bst)
(d) Year ordered and then by authors
(r) Reverse year ordered and then by authors
Select:

\ans=c
You have selected: Citation order 

重要! 这里是询问 reference section 中文献的排列顺序, 默认选择是 alphabet 。 我的目标要求中是“按引用顺序”, 所以我的选择是 c 。 剩下两个是按 年代 排序 (normal and reverse) 。


ORDER ON VON PART (if not citation order)
(*) Sort on von part (de la Maire before Defoe)
(x) Sort without von part (de la Maire after Mahone)
Select:

\ans=
You have selected: Sort on von part 

这个很好玩, 也许国内都没有注意这个选项。 比如, 如果我是德国版的 溥仪爱新觉罗。 那么我在发表论文时候就会写 溥仪 von 爱新觉罗。 意思就是我是来自(von) 爱新觉罗家族的溥仪。 那么问题来了, 我的姓到底是什么, 是 von 爱新觉罗呢? 还是 爱新觉罗?

所以这里让你选择, 这些曾经来自贵族的人的姓中的 von 部分, 参与不参与 alphabet 的排序。


AUTHOR NAMES:
(*) Full, surname last (John Frederick Smith)
(f) Full, surname first (Smith, John Frederick)
(i) Initials + surname (J. F. Smith)
(r) Surname + initials (Smith, J. F.)
(s) Surname + dotless initials (Smith J F)
(w) Surname + comma + spaceless initials (Smith, J.F.)
(x) Surname + pure initials (Smith JF)
(y) Surname + comma + pure initials (Smith, JF)
(z) Surname + spaceless initials (Smith J.F.)
(a) Only first name reversed, initials (AGU style: Smith, J. F., H. K. Jones)
(b) First name reversed, with full names (Smith, John Fred, Harry Kab Jones)
Select:

\ans=s
You have selected: Surname + dotless initials 

重要! 具体姓名排序。 在引用中文期刊时,不会有这个问题,因为我们都直接输入姓名。 但是对于外文期刊 (不论是国人写的还是洋人), 都会有姓和名的排序问题。 除此之外还有 middle name 的缩写方式问题。

我的目标要求是姓在前, 空格然后 first name 缩写 空格 middle name 缩写 (缩写不加点)。 所以我的选择是 s 。 请你自己选择你所需要的。


EDITOR NAMES IN COLLECTIONS (if author names reversed)
(*) Editor names NOT reversed as edited by J J Smith
(r) Editor names reversed just like authors'
Select:

\ans=r
You have selected: Editor names reversed 

Editor 的名字排序问题。 我选择和 author 保持一致。


POSITION OF JUNIOR (if author names reversed)
(*) Junior comes last as Smith, John, Jr.
(m) Junior between as Smith, Jr., John
Select:

\ans=
You have selected: Junior comes last 

洋人的名字真的不是很方便。 我个人还是觉得中文名字在 individuality 上很据优势。 这里具体问, 那些名字中有 Junior 的人怎么处置。 我自己觉得天朝应该都不会考虑这个的。


PUNCTUATION BETWEEN AUTHOR NAMES:
(*) Author names separated by commas
(s) Names separated by semi-colon
(h) Names separated by slash /
Select:

\ans=
You have selected: Author names separated by commas 

重要! 用什么标点符号分割作者。可供选择有 comma, semicolon, forward slash。 通常 默认作者之间用 comma 分割。 


ADJACENT REFERENCES WITH REPEATED NAMES:
(*) Author/editor names always present
(d) Repeated author/editor names replaced by dash
(2) Repeated author/editor names replaced by 2 dashes
(3) Repeated author/editor names replaced by 3 dashes
Select:

\ans=
You have selected: Author/editor names always present 

我们通常嘲笑中国有起码几千万人 叫 张伟。 在洋人的世界里就更严重了, 总共也就那么几个名字 (比如我们组就有很多叫 Martin 的)。这里需要你告知,如果两个相同的名字出现时怎么处理。 默认是保持他们同时存在。 其他选项则使用不同 dash 来表示 (想想不公平,为什么我的名字和你一样就要被 dashed)。


NUMBER OF AUTHORS IN BIBLIOGRAPHY:
(*) All authors included in listing
(l) Limited authors (et al replaces missing names)
Select:

\ans=l
You have selected: Limited authors
Maximum number of authors (1-99)

\num=3
You have selected maximum 3 authors
Minimum number (before et al given) (1-3)

\num=3
You have selected minimum 3 authors 

重要! 多作者时怎么处理。 这里有两个选择,在 reference 中列出所有作者; 列出固定个数作者然后加 et al. 。通常作者多了后就加 et al. 了事, 所以选择 l 。 然后指定几个作者后加 et al. 。


AUTHORS IN CITATIONS:
(*) One author et al for three or more authors
(m) Some other truncation scheme
Select:

\ans=
You have selected: One author et al 

注意以上是在 reference 中的显示, 这里是问在 引用处 的显示。


TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:
(*) Normal font for author names
(s) Small caps authors (\sc)
(i) Italic authors (\it or \em)
(b) Bold authors (\bf)
(u) User defined author font (\bibnamefont)
Select:

\ans=
You have selected: Normal font for author names 

选择作者名字的字体, 是否需要加粗,斜体,大写等


DATE POSITION:
(*) Date at end
(b) Date after authors
(j) Date part of journal spec. (as 1994;45:34-40) else at end
(e) Date at very end after any notes
Select:

\ans=j
You have selected: Date part of journal spec. 

文献中日期的位置选择。 有一些期刊会把发表时间放在作者后面(b), 也有一些直接放在最最后面(*)。 但是,据我不完全统计,在我们 engineering 学科中, 都是作为 期刊详情的一部分 (j) 。


DATE FORMAT (if non author-year citations)
(*) Plain month and year without any brackets
(p) Date in parentheses as (May 1993)
(b) Date in brackets as [May 1993]
(c) Date preceded by colon as `: May 1993'
(d) Date preceded by period as `. May 1993'
(m) Date preceded by comma as `, May 1993'
(s) Date preceded by space only, as ` May 1993'
Select:

\ans=
You have selected: Plain month and year 

重要! 日期格式选择, 我们的要求中, 日期是没有任何括号的。 所以我的选择是默认。


SUPPRESS MONTH:
(*) Date is month and year
(x) Date is year only
Select:

\ans=x
You have selected: Date is year only 

重要! 在日期中, 不包含月份信息; 只有年份。


DATE PUNCTUATION (if date not at end)
(*) Date with standard block punctuation (comma or period)
(c) Colon after date as 1994:
(s) Semi-colon after date as 1994;
(p) Period after date even when blocks use commas
(x) No punct. after date
Select:

\ans=
You have selected: Date with standard block punct.  

重要! 这里是问年份后面的标点符号。 有些是 colon (c) , 有些是 semicolon (s) 。  p 选项是强制使用 句号,即使 bibtex 中定义 blocks 是 commas; x 选项是 omit punctuation。


BLANK AFTER DATE:
(*) Space after date and punctuation
(x) No space after date as 1994:45
Select:

\ans=
You have selected: Space after date 

根据我们的目标要求,  date 后面要空格 (commas), 所以这里的选择是默认。


DATE FONT:
(*) Date in normal font
(b) Date in bold face
Select:

\ans=
You have selected: Date in normal font 

日期的字体格式。 日期字体是 normal  不加粗。


TITLE OF ARTICLE:
(*) Title plain with no special font
(i) Title italic (\em)
(q) Title and punctuation in single quotes (`Title,' ..)
(d) Title and punctuation in double quotes (``Title,'' ..)
(g) Title and punctuation in guillemets (<<Title,>> ..)
(x) Title in single quotes (`Title', ..)
(y) Title in double quotes (``Title'', ..)
(z) Title in guillemets (<<Title>>, ..)
Select:

\ans=
You have selected: Title plain 

论文题目字体选择。 同样的, 我选择了 plain normal。 不加双引号之类的标识。


CAPITALIZATION OF ARTICLE TITLE:
(*) Sentence style (capitalize first word and those in braces)
(t) Title style (just as in bib entry)
Select:

\ans=t
You have selected: Title style 

重要! 字体的大小写问题。 默认选项是首字母大写。 还有一个选项是保持和 bib 资料中一致。 其实, 理论上是第一种选择比较好啊。 但是由于一个技术性问题, 不得不选择第二种。

因为在目标要求中, 需要在文章题目后加 文献类型 (比如[J])。 这个(似乎)没有办法通过 bibtex 办到。 我所采用的就是自己在 reference.bib 的 title entry 后面手动添加 [J]。 所以需要保持文章题目和 reference.bib 中一致。


ARTICLE TITLE PRESENT:
(*) Article title present in journals and proceedings
(x) No article title
Select:

\ans=
You have selected: Article title present 

这里问你需要不需要在 “参考文献” 中输出 title。 (有一些书或者期刊中, 不需要显示标题的)


JOURNAL NAMES:
(*) Periods in journal names are retained, as `Phys. Rev.'
(x) Dotless journal names as `Phys Rev'
Select:

\ans=
You have selected: Periods in journal names 

需要不需要在期刊的缩写后面加 period。


JOURNAL NAME FONT:
(*) Journal name italics
(r) Journal name normal font
Select:

\ans=r
You have selected: Journal name normal 

期刊名字字体选择, 斜体或者 normal。


THESIS TITLE:
(*) Thesis titles like books
(a) Thesis title like article
(x) No thesis title
Select:

\ans=
You have selected: Thesis titles like books 

选择博士论文的题目与 什么一样, 是 专著书籍还是 文章?


TECHNICAL REPORT TITLE:
(*) Tech. report title like articles
(b) Tech. report title like books
Select:

\ans=
You have selected: Tech. report title like articles 

选择技术报告类(不知道专利是不是属于这一类)与 什么一样, 是专著书籍还是文章?


TECHNICAL REPORT NUMBER:
(*) Tech. report and number plain as `Tech. Rep. 123'
(i) Tech. report and number italic as `{\it Tech. Rep. 123'}
Select:

\ans=
You have selected: Tech. report and number plain 

技术报告字体选择


JOURNAL VOLUME:
(*) Volume plain as vol(num)
(i) Volume italic as {\em vol}(num)
(b) Volume bold as {\bf vol}(num)
(d) Volume and number bold as {\bf vol(num)}
Select:

\ans=
You have selected: Volume plain 

重要! 期刊 的格式选择。 在很多期刊中, 卷通常都加粗, 但是我的要求里是 plain normal。


JOURNAL VOL AND NUMBER:
(*) Journal vol(num) as 34(2)
(s) Journal vol (num) as 34 (2)
(c) Journal vol, num as 34, 2
(n) Journal vol, no. num as 34, no. 2
(h) Journal vol, \# number as 34, \#2
(b) Journal vol number as 34 2
(x) Journal vol, without number as 34
Select:

\ans=
You have selected: Journal vol(num) 

重要! 这里设置卷和期 的格式, 是否有括号, 是否有空格等等, 选择你自己相对应的。


VOLUME PUNCTUATION:
(*) Volume with colon as vol(num):ppp
(s) Volume with colon and space as vol(num): ppp
(h) Volume with semi-colon as vol(num); ppp
(c) Volume with comma as vol(num), ppp
(b) Volume with blank as vol(num) ppp
Select:

\ans=
You have selected: Volume with colon 

重要! 卷和期后面的空格及标点选择。 我的要求里是, 标点为 colon, colon 后面没有空格。 所以, 我的选择是默认。


YEAR IN JOURNAL SPECIFICATION:
(*) Journal year like others as given by date position
(v) Journal vol(year) as 34(1995)
(s) Journal vol (year) as 34 (1995)
(p) Year with pages as 34(2), (1995) 1345--1387
(c) Year, comma, pages as 34(2), (1995), 1345--1387
Select:

\ans=
You have selected: Journal year like others 

这里我其实有一点点疑惑, 前面我明明设置过 date 的格式了, 这里又问一次 journal year 是什么意思? 希望大神们能回答我这个疑惑。


PAGE NUMBERS:
(*) Start and stop page numbers given
(f) Only start page number
Select:

\ans=
You have selected: Start and stop page numbers 

重要! 这里设置页码的格式。 要求里页码需要有 起始页 与 结束页 信息。 所以这里的选择是默认。


LARGE PAGE NUMBERS:
(*) No separators for large page numbers
(c) Comma inserted over 9999 as 11,234
(s) Thin space inserted over 9999 as 11 234
(p) Period inserted over 9999 as 11.234
Select:

\ans=
You have selected: No separators for large page numbers 

设置页码是长数字的分隔符。 比如,10000 如果使用分隔符就是 10,000


WORD `PAGE' IN ARTICLES:
(*) Article pages numbers only as 234-256
(p) Include `page' in articles as pp. 234--256
Select:

\ans=
You have selected: Article pages numbers only 

在显示页码时, 在前面要不要加 pp. 前缀。


POSITION OF PAGES:
(*) Pages given mid text as is normal
(e) Pages at end but before any notes
Select:

\ans=
You have selected: Pages given mid text 

before notes 是什么鬼? 我不是很懂。 但是直觉上应该选择 默认


WORD `VOLUME' IN ARTICLES:
(*) Article volume as number only as 21
(p) Include `volume' in articles as vol. 21
Select:

\ans=
You have selected: Article volume as number only 

设置要不要在 卷 的前面加前缀 vol. 。 默认是不需要前缀。


NUMBER AND SERIES FOR COLLECTIONS:
(*) Allows number without series and suppresses word "number"
(s) Standard BibTeX as: "number 123 in Total Works"; error if number and no ser
ies
Select:

\ans=
You have selected: Allows number without series 

这里的 collections 应该是集的意思 (我不是完全确定 会议论文的集是不是属于这里)。 比如, 你老板过80大寿, 弟子们把他以前的工作整理一下, 做成一个集。


POSITION OF NUMBER AND SERIES:
(*) After chapter and pages as in standard BibTeX
(t) Just before publisher or organization
Select:

\ans=
You have selected: After chapter and pages 

设置 series 的位置, 是位于 出版商前面 还是 在章节页码 后面。


VOLUME AND SERIES FOR BOOKS/COLLECTIONS:
(*) Vol. 23 of Series as in standard BibTeX
(s) Series, vol. 23
Select:

\ans=
You have selected: Vol. 23 of Series 

在书籍专著中, 卷的表述设置。 是 Vol. 23 of Series 还是 Series. vol. 23 。


POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:
(*) Series and volume after the editors
(e) Series and volume after booktitle and before editors
Select:

\ans=
You have selected: Series and volume after the editors 

重要! 设置 series 的位置, 是在 editors 后面还是 在书籍题目和 editors 之间。


JOURNAL NAME PUNCTUATION:
(*) Comma after journal name
(x) Space after journal name
Select:

\ans=
You have selected: Comma after journal 

设置 期刊名 后面的分隔符是 commas 还是 空格 。


BOOK TITLE:
(*) Book title italic (\em)
(p) Book title plain (no font command)
Select:

\ans=p
You have selected: Book title plain 

书籍专著的标题字体格式, 斜体还是 plain 。


PAGES IN BOOKS:
(*) Pages in book plain as pp. 50-55
(p) Pages in book in parentheses as (pp. 50-55)
(x) Pages in book bare as 50-55
Select:

\ans=
You have selected: Pages in book plain 

专著书籍的页码格式, 是 Plain 的 50-55 还是有前缀 pp. 50-55 。


TOTAL PAGES OF A BOOK:
(*) Total book pages not printed
(p) For book: 345 pages or pp.
(a) Total book pages before publisher
Select:

\ans=
You have selected: Total book pages not printed 

选择需要不需要输出整本书的总页数。


PUBLISHER ADDRESS:
(*) Publisher, address as Harcourt, New York
(a) Address: Publisher as New York: Harcourt
Select:

\ans=a
You have selected: Address: Publisher 

在引用书籍的时候,需要标明出版者。 这里设置是地点先还是出版商名字先。 也就是选择, “北京: 科技出版社” 还是 “科技出版社, 北京” 。


PUBLISHER IN PARENTHESES:
(*) Publisher as normal block without parentheses
(p) Publisher in parentheses
(d) Publisher and date in parentheses (Oxford, 1994)
(c) Publisher and date in parentheses, no comma (Oxford 1994)
(f) Publisher and date without parentheses Oxford, 1994
(k) Publisher and date, no parentheses, no comma Oxford 1994
Select:

\ans=
You have selected: Publisher as normal block 

在引用书籍的时候,需要标明出版者。 这里设置 publisher 需要不需要括号之类的。


PUBLISHER POSITION:
(*) Publisher after chapter, pages
(p) Publisher before chapter, pages
(e) Publisher after edition
Select:

\ans=
You have selected: Publisher after chapter, pages 

在引用书籍的时候,需要标明出版者。 这里设置 publisher 的位置。


ISBN NUMBER:
(*) Include ISBN for books, booklets, etc.
(x) No ISBN
Select:

\ans=x
You have selected: No ISBN
ISSN NUMBER:
(*) Include ISSN for periodicals
(x) No ISSN
Select:

\ans=x
You have selected: No ISSN
DOI NUMBER:
(*) Include DOI as "doi: number"
(u) Format DOI as URL //dx.doi.org/doi (must give url options!)
(a) Insert DOI AGU style as part of page number
(x) No DOI
Select:

\ans=x
You have selected: No DOI 

要不要在 文献中显示 ISSN, ISBN, 及 doi 信息。 参考你的要求, 有些地方要求显示 doi 如果有可能。


`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):
(*) Word `editor' after name
(a) `Name (editor),' in parentheses, after name, comma after
(b) `Name (Editor),' as above, editor upper case
(c) `Name, (editor)' in parentheses, after name, comma between
(d) `Name, (Editor)' as above, editor upper case
(e) `Name (editor)' in parentheses, after name, no commas
(f) `Name (Editor)' as above, editor upper case
Select:

\ans=
You have selected: Word `editor' after name 

设置 editor 的字体格式。 我的要求根本没有详细到这一步, 所以我直接选择了默认。


EDITOR IN COLLECTIONS:
(*) Same as for edited book (names before booktitle)
(b) In booktitle, edited by .. (where .. is names)
(p) In booktitle (edited by ..)
(c) In booktitle, (edited by ..)
(e) In booktitle, editor ..
(f) In booktitle, (editor) ..
(k) In booktitle (editor..)
(g) In booktitle, (editor..)
(j) In booktitle, .., editor
(m) In booktitle (.., editor)
Select:

\ans=
You have selected: Same as for edited book 

由谁编辑的方式设置 edited by 或者 editor …


PUNCTUATION BETWEEN SECTIONS (BLOCKS):
(*) \newblock after blocks (periods or new lines with openbib option)
(c) Comma between blocks
(s) Semi-colon between blocks
(b) Blanks between blocks
(t) Period after titles of articles, books, etc else commas
(u) Colon after titles of articles, books, etc else commas
(a) Period after titles of articles else commas
(d) Colon after titles of articles else commas
Select:

\ans=
You have selected: \newblock after blocks 

重要! 首先什么是 block, 比如作者列表和文章题目之间就是一个 block, 需要决定用什么标点符号, commas, semicolon, colon, period。 在我的要求中, 作者结束后是 period, title 后是 period, 期刊后是 commas, date 后面 commas 。 所以这里不同意, 设置要小心。 我的选择只可能是 默认; 如果选择 t 就会导致 作者列表后面也是 commas。


PUNCTUATION AFTER AUTHORS:
(*) Author block normal with regular block punctuation
(c) Author block with colon
Select:

\ans=
You have selected: Author block normal 

设置作者列表后面用什么结束。 表示不懂为什么 作者列表 后面要加 colon, 怪怪的。 选择默认。


PUNCTUATION AFTER `IN':
(*) Space after `in' for incollection or inproceedings
(c) Colon after `in' (as `In: ...')
(i) Italic `in' and space
(d) Italic `in' and colon
(x) No word `in' for edited works
Select:

\ans=
You have selected: Space after `in' 

会议集的设置, in 的字体及 后面的分隔符是什么, colon 还是 space 。


`IN' WITH JOURNAL NAMES (if using 'in' with collections)
(*) No `in' before journal name
(i) Add `in' before journal name in style for incollection
Select:

\ans=
You have selected: No `in' before journal name 

in  什么 in 啊, 好烦!


FINAL PUNCTUATION:
(*) Period at very end of the listed reference
(x) No period at end
Select:

\ans=
You have selected: Period at very end 

重要!设置每条参考文献结尾需要不需要有 period。


ABBREVIATE WORD `PAGES' (if not using external language file)
(*) `Page(s)' (no abbreviation)
(a) `Page' abbreviated as p. or pp.
(x) `Page' omitted
Select:

\ans=
You have selected: `Page(s)' 

page 是不是要缩写, 是缩写成 p. 还是 pp. 还是直接 omit page 字样。


ABBREVIATE WORD `EDITORS':
(*) `Editor(s)' (no abbreviation)
(a) `Editor' abbreviated as ed. or eds.
Select:

\ans=
You have selected: `Editor(s)' 

文献中 Editor(s) 是否缩写成 ed 或者 eds 。


OTHER ABBREVIATIONS:
(*) No abbreviations of volume, edition, chapter, etc
(a) Abbreviations of such words
Select:

\ans=
You have selected: No abbreviations 

设置需要不需要给 volume, edition, chapter 等进行缩写。


EDITION NUMBERS:
(*) Editions as in database saving much processing memory
(w) Write out editions as first, second, third, etc
(n) Numerical editions as 1st, 2nd, 3rd, etc
Select:

\ans=n
You have selected: Numerical editions 

书籍之类第几版的设置。


Reading external language file \cfile=

STORED JOURNAL NAMES:
(*) Full journal names for prestored journals
(a) Abbreviated journal names
(s) Abbreviated with astronomy shorthands like ApJ and AJ
Select:

\ans=
You have selected: Full journal names 

对于一些常用的期刊, 你可能定义好了这些期刊的缩写。 这里设置对于你已经定义好的期刊缩写是继续使用你的缩写还是 不顾三七二十一 地使用全名。


AMPERSAND:
(*) Use word `and' in author lists
(a) Use ampersand in place of `and'
(v) Use \BIBand in place of `and'
Select:

\ans=v
You have selected: Use \BIBand 

重要! 设置第二个作者和第三个作者之间的分隔符是什么, 是 literal and 还是 & 还是自定义的 \BIBand。 由于在我的要求中, 没有任何东西, 所以在这里选择 v 。 然后将 \BIBand 定义为空格就可以了。


COMMA BEFORE `AND':
(*) Comma before `and' as `Tom, Dick, and Harry'
(n) No comma before `and' as `Tom, Dick and Harry'
(c) Comma even with 2 authors as `Tom, and Harry'
Select:

\ans=
You have selected: Comma before `and' 

这个在写作中好像称为 Harvard style。 就是在第二个作者和第三个作者中间的 and 分隔符 (前面我已经 and 定义为 empty) 前要不要加 commas。 如果你选择了 n 。 在中文中就会变成: 作者1, 作者2 作者3. 看上去怪怪的吧。


NO `AND' IN REFERENCE LIST:
(*) With `and' before last author in reference list
(x) No `and' as `Tom, Dick, Harry'
Select:

\ans=x
You have selected: No `and' 

设置第二个作者和第三个作者之间要不要加 and 来分隔。 由于中文的缘故, 如果第二个和第三个名字中间有 and ,感觉就“不中不洋”了。 所以 without and。


COMMA BEFORE `ET AL':
(*) Comma before `et al' in reference list
(x) No comma before `et al'
Select:

\ans=x
You have selected: No comma before `et al' 

设置需要不需要在 et al. 前面加 commas。 我的要求中尽然没有提到这一项。 我选择了没有 commas, 因为有 commas 在 et al. 的前面感觉乖乖的。


FONT OF `ET AL':
(*) Plain et al
(i) Italic et al
(r) Roman et al even when authors something else
Select:

\ans=
You have selected: Plain et al 

设置 et al. (等等)的字体, plain, 斜体, Roman 不管作者使用了什么字体。


ADDITIONAL REVTeX DATA FIELDS:
(*) No additional fields for REVTeX
(r) Include REVTeX data fields collaboration, eid, eprint, archive, numpages, u
rl
Select:

\ans=
You have selected: No additional fields
E-PRINT DATA FIELD: (without REVTeX fields)
(*) Do not include eprint field
(e) Include eprint and archive fields for electronic publications
Select:

\ans=
You have selected: Do not include eprint field
URL ADDRESS: (without REVTeX fields)
(*) No URL for electronic (Internet) documents
(u) Include URL as regular item block
(n) URL as note
(l) URL on new line after rest of reference
Select:

\ans=
You have selected: No URL 

REVTeX, 这个是 LaTeX 2.09 之后的事情吧, 只跟特定专业有关 (物理)。 所以对于大多数人, 就是默认的无。


REFERENCE COMPONENT TAGS:
(*) No reference component tags in the \bibitem entries
(b) Reference component tags like \bibinfo in the content of \bibitem
Select:

\ans=
You have selected: No reference component tags 

抱歉, 我不知道 tags 在 bibtex 里是什么意思? 如果有些选项你实在不懂, 那么就请选择默认吧。


EMPHASIS: (affects all so-called italics)
(*) Use emphasis ie, \em, allows font switching
(i) Use true italics ie, \it, absolute italics
(x) No italics at all
(u) Underlining in place of italics, best with ulem package
Select:

\ans=x
You have selected: No italics 

emphasis 设置。 在 LaTeX 中 \em 是强调的意思。 这里设置在 \em 环境中, 允许不允许字体之间的切换; 是否使用 “斜体” 来强调 (有一些期刊会把 期刊强调设置成斜体); 还是使用下划线来强调;

因为在我的要求里, 完全没有什么强调斜体之类。 所以, 我直接选择 x, no italics at all 。


COMPATIBILITY WITH PLAIN TEX:
(*) Use LaTeX commands which may not work with Plain TeX
(t) Use only Plain TeX commands for fonts and testing
Select:

\ans=
You have selected: Use LaTeX commands 

选择对 LaTeX 的兼容, 如果 plain TeX 不工作。

到这里为止都结束了, LaTeX 会生成一个 .bst 后缀名的文件, 也就是你自定义的参考文献格式文件。 makebst 的自定义已经很全面了, 如果你发现还是不满足你们坑爹学校的博士论文要求。 那么, 你可以尝试改变你坑爹学校的要求。 如果你告诉我办不到, 那么就只能直接修改 .bst 文件了, 这个想比于 makebst 还是有一些难度的。 但是如果你有一些变成基础, 我相信这个其实不难的。

后语:

写这篇博客完全是 Richest 的要求。 虽然里面的内容, 但是真的很费时。

望 Richest 早日提交博士论文。

 

Advertisements

One thought on “bibtex: 如何自定义参考文献格式 .bst 文件 how to generate a customized .bst file

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s