在 .bst 文件中交换卷号和年份

在 .bst 文件中交换卷号和年份

我有以下代码

\documentclass{article}
\begin{document}
\bibliographystyle{mybst}
\nocite{*}
\bibliography{mybib}
\end{document}

我的.bib文件是

@article{liberti2009,
 title={Class of self-concordant functions on Riemannian manifolds},
 author={G. Bercu and M. Postolache},
journal={Balkan J. Geom. Appl},
volume={14},
number={01},
pages={1--18},
year={2009},

}

我已成功编辑了文件的某些部分mybst.bst......

% ====================== mybst.BST ================ % 

%% %% 这是文件punjab.bst', %% generated with the docstrip utility. %% %% The original source files were: %% %% merlin.mbs (with options:seq-yrr,nm-init,ed-au,yr-par,xmth,tit-it,jttl-rm,vol-2bf,vnum-nr,volp-sp,jdt-p,num-xser,bkpg-x,pub-date,pub-xpar,xedn,and-xcom,nfss,') %% ---------------------------------------- %% *** 这是由 shatabdi 创建的 bibstyle *** %% %% 版权所有 1994-2011 Patrick W Daly % ========================================================================= % 重要通知: % 此书目样式 (bst) 文件已从一个或多个主文件生成% % 此生成的文件可以根据 LaTeX 项目公共许可证的条款进行重新分发和/或修改,从目录 macros/latex/base/lppl.txt 中的 CTAN % 档案中分发;无论是许可证的第 1 版,还是任何更高版本。 % ===================================================================== % 主 mbs 文件的名称和版本信息: % \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)] % 用于 BibTeX 0.99a 或更高版本 %------------------------------------------------------------------- % 此参考书目样式文件适用于英文文本 % 这是一种数字引用样式,因此是标准 LaTeX。 % 它不需要额外的包来与主文本交互。 % \bibitem 条目的形式为 % \bibitem{key}... % \cite 的用法如下: % \cite{key} ==>> [#] % \cite[chap. 2]{key} ==>> [#, chap. 2] % 其中 # 是根据参考文献列表中的顺序确定的数字。 % 参考文献列表中的顺序按作者的字母顺序排列。 %---------------------------------------------------------------------

ENTRY { 地址 作者 书名 章节 版本 编辑 eid 出版方式 机构 期刊 关键词 月份 注释 编号 组织 页码 出版商 学校 系列 标题 类型 卷 年份 } {} { 标签 } 整数 { output.state before.all mid.sentence after.sentence after.block } 函数 {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } 字符串 { st} 函数 {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 } 函数 {输出} { 重复$ 空$ '弹出$ '输出.nonnull if$ } 函数 {输出.check} { 't := 重复$ 空$ { 弹出$ "空 " t * " 在 " * cite$ * 警告$ } '输出.nonnull if$ } 函数 {fin.entry} { 添加.period$ 写入$ 换行符$ }

函数 {my.new.block} { 重复$ 空$ { 跳过$ } { ", " * } 如果$ before.all 'output.state := new.block }

函数 {new.block} { 输出.状态 before.all = 'skip$ { after.block '输出.状态 := } 如果$ } 函数 {new.sentence} { 输出.状态 after.block = 'skip$ { 输出.状态 before.all = 'skip$ { after.sentence '输出.状态 := } 如果$ } 如果$ } 函数 {add.blank} { “ “ * before.all '输出.状态 := }

函数 {date.block} { new.block }

函数 {not} { { #0 } { #1 } if$ } 函数 {and} { 'skip$ { pop$ #0 } if$ } 函数 {or} { { pop$ #1 } 'skip$ if$ } 函数 {new.block.checka} { empty$ 'skip$ 'new.block if$ } 函数 {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } 函数 {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } 函数 {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } 函数 {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } 函数 {emphasize} { duplicate$ empty$ { pop$ "" } { "\emph{" swap$ * "}" * } if$ } 函数 {bolden} { 重复$ empty$ { pop$ "" } { "{ " swap$ * "}" * } if$ } 函数 {tie.or.space.prefix} { 重复$ text.length$ #3 < { "~" } { " " } if$ swap$ }

函数 {大写} { “u” 更改.case$ “t” 更改.case$ }

FUNCTION {space.word} { " " swap$ * " " * } % 以下是针对明确单词的特定语言定义。 % 每个函数都有一个名称 bbl.xxx,其中 xxx 是英文单词。 % 此处选择的语言是 ENGLISH FUNCTION {bbl.and} { "and"}

函数 {bbl.etal} { “et~al.” }

函数 {bbl.editors} { “编辑” }

函数 {bbl.editor} { “编辑器” }

FUNCTION {bbl.edby} { “编辑者” }

函数 {bbl.edition} { “版本” }

函数 {bbl.volume} { “volume” }

函数 {bbl.of} { “of” }

函数 {bbl.number} { “number” }

函数 {bbl.nr} { “编号” }

函数 {bbl.in} { “in” }

函数 {bbl.pages} { “页面” }

函数 {bbl.page} { “页面” }

函数 {bbl.chapter} { “章节” }

功能 {bbl.techrep} {“技术报告”}

函数 {bbl.mthesis} { “硕士论文” }

函数 {bbl.phdthesis} { “博士论文” }

MACRO {jan} {"一月"}

MACRO {feb} {"二月"}

MACRO {mar} {"三月"}

宏观 {apr} {“四月”}

MACRO {may} {“五月”}

MACRO {jun} {“六月”}

MACRO {jul} {“七月”}

MACRO {aug} {“八月”}

MACRO {sep} {“九月”}

MACRO {oct} {“十月”}

MACRO {nov} {“十一月”}

MACRO {dec} {“十二月”}

MACRO {acmcs} {“ACM 计算调查”}

MACRO {acta} {“Acta Informatica”}

MACRO {cacm} {“ACM 通信”}

MACRO {ibmjrd} {“IBM 研究与开发杂志”}

MACRO {ibmsj} {“IBM 系统期刊”}

MACRO {ieeese} {“IEEE 软件工程学报”}

宏 {ieeetc} {“IEEE 计算机交易”}

MACRO {ieeetcad} {“IEEE 集成电路计算机辅助设计学报”}

MACRO {ipl} {“信息处理信件”}

MACRO {jacm} {“ACM 杂志”}

MACRO {jcss} {“计算机与系统科学杂志”}

MACRO {scp} {“计算机编程科学”}

MACRO {icomp} {“SIAM 计算杂志”}

MACRO {tocs} {“ACM 计算机系统事务”}

MACRO {tods} {“ACM 数据库系统事务”}

MACRO {tog} {“ACM 图形事务”}

MACRO {toms} {“ACM 数学软件交易”}

MACRO {toois} {“ACM 办公信息系统交易”}

MACRO {toplas} {“ACM 编程语言和系统事务”}

宏 {tcs} {“理论计算机科学”} 函数 {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } 函数 {bibinfo.warn} { swap$ duplicate$ missing$ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } { duplicate$ empty$ { swap$ "empty " swap$ * " in " * cite$ * warning$ } { swap$ pop$ } if$ } if$ } 整数 { nameptr namesleft numnames }

字符串 { bibinfo}

函数 {format.names} { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{vv~}{ll}{, jj}" 格式.name$ bibinfo bibinfo.check 't := nameptr #1 > { namesleft #1 > { ", " * t * } { s nameptr "{ll}" 格式.name$ duplicate$ "others" = {​​ 't := } { pop$ } if$ t "others" = {​​ " " * bbl.etal * } { bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr :=剩余名称 #1 - '剩余名称 :=

}

while$ } if$ } 函数 {format.names.ed} { format.names } 函数 {format.authors} { 作者 "author" format.names } 函数 {get.bbl.editor} { 编辑器 num.names$ #1 > 'bbl.editors 'bbl.editor if$ }

函数 {format.editors} { 编辑器 “editor” format.names 重复$ 空$ 'skip$ { "," * " " * get.bbl.editor * } 如果$ } 函数 {format.note} { 注释 空$ { "" } { 注释 #1 #1 子字符串$ 重复$ "{" = 'skip$ { output.state mid.sentence = { "l" } { "u" } 如果$ change.case$ } 如果$ 注释 #2 global.max$ 子字符串$ * "note" bibinfo.check } 如果$ }

函数 {format.title} { title 重复$ 空$ 'skip$ { "t" change.case$ } 如果$ "title" bibinfo.check 重复$ 空$ 'skip$ { 强调 } 如果$ } 函数 {output.bibitem} { 换行符$ "\bibitem{" 写入$ cite$ 写入$ "}" 写入$ 换行符$ "" before.all 'output.state := }

函数 {n.dashify} { 't := "" { t 空$ 不是 } { t #1 #1 子字符串$ "-" = {​​ t #1 #2 子字符串$ "--" = 不是 { "--" * t #2 global.max$ 子字符串$ 't := } { { t #1 #1 子字符串$ "-" = } { "-" * t #2 global.max$ 子字符串$ 't := } while$ } if$ } { t #1 #1 子字符串$ * t #2 global.max$ 子字符串$ 't := } if$ } while$ }

函数 {word.in} { bbl.in 大写“ ” * }

函数 {format.date} { "" 重复$ 空$ 年 "year" bibinfo.check 重复$ 空$ { swap$ 'skip$ { "有月份但没有年份 " cite$ * warning$ } if$ * } { swap$ 'skip$ { swap$ " " * swap$ } if$ * } if$ duplicate$ empty$ 'skip$ { before.all 'output.state := " (" swap$ * ")" * } if$ } 函数{format.year} { 年 "year" bibinfo.check 重复$ 空$ { "空年份 " cite$ * warning$ } { "(" swap$ * ")" * } if$ } 函数 {format.btitle} { 标题 "title" bibinfo.check 重复$ 空$ 'skip$ { 强调 } if$ } 函数 {either.or.check} { empty$ 'pop$ { "不能同时使用 " swap$ * " 字段 " * cite$ * warning$ } if$ } 函数 {format.bvolume} { volume empty$ { "" } { bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * * series "series" bibinfo.check duplicate$ empty$ 'pop$ { "\textbf{" swap$ * "}" * ", " * swap$ * } if$ "volume and number" number either.or.check }

if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { series empty$ { number "number" bibinfo.check } { output.state mid.sentence = { bbl.number } { bbl.number capitalize } if$ number tie.or.space.prefix "number" bibinfo.check * * bbl.in space.word * series "series" bibinfo.check * } if$ } if$ } { "" } if$ }

函数 {format.edition} { edition 重复$ empty$ 'skip$ { output.state mid.sentence = { "l" } { "t" } 如果$ change.case$ "edition" bibinfo.check " " * bbl.edition * } 如果$ } 整数 { multiresult } 函数 {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 子字符串$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ 子字符串$ 't := } 如果$ } while$ multiresult } 函数 {format.pages} { pages 重复$ empty$ 'skip$ { duplicate$ multi.page.check { n.dashify } { } 如果$ "pages" bibinfo.check } 如果$ } 函数 {format.journal.pages} { 页面 重复$ 空$ 'pop$ { swap$ 重复$ 空$ { pop$ pop$ format.pages } { " " * format.year * " " * swap$ n.dashify "pages" bibinfo.check * } 如果$ } 如果$ } 函数 {format.journal.eid} { eid "eid" bibinfo.check 重复$ 空$ 'pop$ { swap$ 重复$ 空$ 'skip$ { ": " * } 如果$ swap$ * } 如果$ } 函数 {format.vol.num.pages} { "{\bfseries " volume "}" * * field.or.null

重复$ 空$ 'skip$ { "volume" bibinfo.check } if$ number "number" bibinfo.check 重复$ 空$ 'skip$ { swap$ 重复$ 空$ { "有编号但没有卷" cite$ * warning$ } 'skip$ if$ swap$ ", " bbl.nr * number tie.or.space.prefix pop$ * swap$ * } if$ * bolden eid 空$ { format.journal.pages } { format.journal.eid } if$ }

函数 {format.chapter.pages} { 章节为空$'format.pages { 类型为空$ { bbl.chapter } { 类型“l”change.case$“类型”bibinfo.check } 如果$ 章节 tie.or.space.prefix“章节”bibinfo.check * * 页面为空$'skip$ {“,”* format.pages * } 如果$ } 如果$ }

函数 {format.booktitle} { booktitle "booktitle" bibinfo.check 强调 } 函数 {format.in.ed.booktitle} { format.booktitle 重复$ 空$ 'skip$ { 编辑 "编辑" format.names.ed 重复$ 空$ 'pop$ { "," * " " * get.bbl.editor ", " * * swap$ * } 如果$ word.in swap$ * } 如果$ } 函数 {empty.misc.check} { 作者 空$ 标题 空$ howpublished 空$ 月 空$ 年 空$ 注释 空$ 和 和 和 和 键 空$ 不和 { "所有相关字段在 " cite$ * 警告$ } 'skip$ 如果$ } 函数 {format.thesis.type} { 类型 重复$ 空$ 'pop$ { swap$ pop$ "t" change.case$ "类型" bibinfo.check } 如果$ } 函数 {format.tr.number} { 数字 "数字" bibinfo.check类型 重复$ 空$ { pop$ bbl.techrep } 'skip$ 如果$ “类型” bibinfo.check 交换$ 重复$ 空$ { pop$ “t” 更改.case$ } { tie.or.space.prefix * * } 如果$ } 函数 {format.article.crossref} { 键 重复$ 空$ { pop$ 期刊 重复$ 空$ { “需要密钥或期刊” cite$ * “到 crossref “ * crossref * 警告$ } { “期刊” bibinfo.check 强调 word.in 交换$ * } 如果$ } { word.in 交换$ * “ “ *} 如果$ “ \cite{” * crossref * “}” * } 函数 {format.crossref.editor} { 编辑器 #1 “{vv~}{ll}” format.name$ “编辑器” bibinfo.check 编辑器 num.names$ 重复$ #2 > { pop$ “编辑器” bibinfo.check “ “ * bbl.etal * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = {​​ "editor" bibinfo.check " " * bbl.etal * } { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ "editor" bibinfo.check * } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume duplicate$ empty$ { "" cite$ * "'s crossref of " * crossref * warning$ pop$ word.in } { bbl.volume capitalize swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "需要 editor、key 或 series for " cite$ * " to crossref " * crossref * warning$ "" * } { 系列强调 * } 如果$ } { 键 * } 如果$ } { format.crossref.editor * } 如果$“ \cite{” * crossref * “}” * } 函数 {format.incoll.inproc.crossref} { 编辑器空$ 编辑器字段.or.null 作者字段.or.null = 或 { 键空$ { format.booktitle 重复$ 空$ { “需要编辑器、键或书名才能将“ cite$ *”转换为 crossref “ * crossref * 警告$ } { word.in swap$ * } 如果$ } { word.in 键 * “ “ *} 如果$ } { word.in format.crossref.editor * “ “ *} 如果$“ \cite{” * crossref * “}” * } 函数 {format.org.or.pub} { 't := "" 年份为空$ { "空年份在 " cite$ * warning$ } 'skip$ if$ 地址为空$ t 空$ 和 年份为空$ 和 'skip$ { t 空$ { 地址 "地址" bibinfo.check * } { t * 地址为空$ 'skip$ { ", " * 地址 "地址" bibinfo.check * } if$ } if$ 年份为空$ 'skip$ { t 空$ 地址为空$ 和 'skip$ { ", " swap$ * * } if$ 年份 "年份" bibinfo.check * } if$ } if$ } FUNCTION {format.publisher.address} { publisher "publisher" bibinfo.warn format.org.or.pub }

功能 {format.organization.address} { 组织“organization”bibinfo.check format.org.or.pub }

函数 {article} { output.bibitem format.authors "作者" output.check my.new.block format.title "标题" output.check new.block crossref missing$ { journal "期刊" bibinfo.check "期刊" output.check format.vol.num.pages 输出 } { format.article.crossref output.nonnull format.pages 输出 } 如果$ new.block format.note 输出 fin.entry } 函数 {book} { output.bibitem author empty$ { format.editors "作者和编辑" output.check } { format.authors output.nonnull crossref missing$ { "作者和编辑" editor either.or.check } 'skip$ if$ } 如果$ new.block format.btitle "标题" output.check crossref missing$ { format.bvolume 输出 new.block format.number.series 输出 new.sentence format.publisher.address 输出 } { new.block format.book.crossref output.nonnull format.date "年份" output.check } if$ format.edition 输出 new.block format.note 输出 fin.entry } FUNCTION {booklet} { output.bibitem format.authors 输出 my.new.block format.title "title" output.check new.block howpublished "howpublished" bibinfo.check 输出 address "address" bibinfo.check 输出 format.date 输出 new.block format.note 输出 fin.entry }

函数 {inbook} { output.bibitem author empty$ { format.editors "作者和编辑" output.check } { format.authors output.nonnull crossref missing$ { "作者和编辑" editor either.or.check } 'skip$ if$ } 如果$ new.block format.btitle "标题" output.check crossref missing$ { format.bvolume 输出 format.chapter.pages "章节和页数" output.check new.block format.number.series 输出 new.sentence format.publisher.address 输出 } { format.chapter.pages "章节和页数" output.check new.block format.book.crossref output.nonnull format.date "年份" output.check } 如果$ format.edition 输出 new.block format.note 输出 fin.entry }

函数 {incollection} { output.bibitem format.authors “作者” output.check my.new.block format.title “标题” output.check new.block crossref missing$ { format.in.ed.booktitle “书名” output.check format.bvolume 输出 format.number.series 输出 format.chapter.pages 输出 new.sentence format.publisher.address 输出 format.edition 输出 } { format.incoll.inproc.crossref output.nonnull format.chapter.pages 输出 } if$ new.block format.note 输出 fin.entry } 函数 {inproceedings} { output.bibitem format.authors “作者” output.check my.new.block format.title “标题” output.check new.block crossref missing$ { format.in.ed.booktitle “书名” output.check format.bvolume 输出 format.number.series 输出 format.pages 输出 new.sentence publisher empty$ { format.organization.address 输出 } { organization “组织” bibinfo.check 输出 format.publisher.address 输出 } if$ } { format.incoll.inproc.crossref output.nonnull format.pages 输出 } if$ new.block format.note 输出 fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem 作者 empty$ { 组织 “组织” bibinfo.check duplicate$ empty$ 'pop$ { 输出 地址 “地址” bibinfo.check 输出 } if$ } { format.authors output.nonnull } if$ new.block format.btitle “标题” output.check 作者 empty$ { 组织 empty$ { 地址 new.block.checka 地址 “地址” bibinfo.check 输出 } 'skip$ if$ } { 组织 地址 new.block.checkb 组织 “组织” bibinfo.check 输出 地址 “地址” bibinfo.check 输出 } if$ format.edition 输出 format.date 输出 new.block format.note 输出fin.entry }

函数 {mastersthesis} { output.bibitem format.authors “作者” output.check my.new.block format.btitle “标题” output.check new.block bbl.mthesis format.thesis.type output.nonnull school “学校” bibinfo.warn 输出 address “地址” bibinfo.check 输出 format.date “年份” output.check new.block format.note 输出 fin.entry }

函数 {misc} { output.bibitem format.authors 输出标题 howpublished new.block.checkb format.title 输出 howpublished new.block.checka howpublished "howpublished" bibinfo.check 输出 format.date 输出 new.block format.note 输出 fin.entry empty.misc.check } 函数 {phdthesis} { output.bibitem format.authors "作者" output.check my.new.block format.btitle "标题" output.check new.block bbl.phdthesis format.thesis.type output.nonnull school "学校" bibinfo.warn 输出 address "地址" bibinfo.check 输出 format.date "年份" output.check new.block format.note 输出 fin.entry }

函数 {proceedings} { output.bibitem 编辑器 empty$ { 组织 “组织” bibinfo.check 输出 } { format.editors output.nonnull } 如果$ new.block format.btitle “标题” output.check format.bvolume 输出 format.number.series 输出 编辑器 empty$ { 出版商 empty$ 'skip$ { new.sentence format.publisher.address 输出 } 如果$ } { 出版商 empty$ { new.sentence format.organization.address 输出 } { new.sentence 组织 “组织” bibinfo.check 输出 format.publisher.address 输出 } 如果$ } 如果$ new.block format.note 输出 fin.entry }

函数 {techreport} { output.bibitem format.authors “作者” output.check my.new.block format.title “标题” output.check new.block format.tr.number output.nonnull 机构 “机构” bibinfo.warn 输出 地址 “地址” bibinfo.check 输出 format.date “年份” output.check new.block format.note 输出 fin.entry }

函数 {未发布} { output.bibitem format.authors “作者” output.check my.new.block format.title “标题” output.check format.date 输出 new.block format.note “注释” output.check fin.entry }

函数 {default.type} { misc } 读取函数 {sortify} { purify$ "l" change.case$ } 整数 { len } 函数 {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } 函数 {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := nameptr #1 > { " " * namesleft #1 = t "others" = and { "zzzzz" 't := } '跳过$ if$ t sortify * } { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }

FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "要排序,需要作者或键入 " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "要排序,需要作者、编辑或键入 " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {negate.year} { year empty$ { "99999" } { year #1 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ 年份 #2 #1 子字符串$ chr.to.int$ #105 swap$ - int.to.chr$ * 年份 #3 #1 子字符串$ chr.to.int$ #105 swap$ - int.to.chr$ * 年份 #4 #1 子字符串$ chr.to.int$ #105 swap$ - int.to.chr$ * } if$ } FUNCTION {author.organization.sort} { author empty$ { organization empty$ { key empty$ { "要排序,需要作者、组织或键入 " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { author sort.format.names } if$ } FUNCTION {editor.organization.sort} { editor empty$ { organization empty$ { key empty$ { "要排序,需要编辑、组织或键入 " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = 'author.organization.sort 'author.sort if$ } if$ } if$ " " * negate.year field.or.null sortify " " * swap$ * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } 函数 {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := 标签宽度$ longest.label.width > { 标签 'longest.label := 标签宽度$ 'longest.label.width := } 'skip$ if$ } 执行 {initialize.longest.label} 迭代 {longest.label.pass} 函数 {begin.bib} { 前言$ 空$ 'skip$ { 前言$ 写入$ 换行符$ } 如果$ "\begin{thebibliography}{" longest.label * "}" * 写入$ 换行符$ } 执行 {begin.bib} 执行 {init.state.consts} 迭代 {call.type$} 函数 {end.bib} { 换行符$ "\end{thebibliography}" 写入$ 换行符$ }

EXECUTE {end.bib}

我需要 1 但我的输出是 [2]

在此处输入图片描述

How to change the .bst functions to get the desired output?

相关内容