用数学写论文时,我使用 ProTex 和gost780s.bst
Igor Kotelnikov 的引文包 GOST(文件)。问题是当我创建 PDF 时,期刊作者姓名首字母后面的点并未全部显示出来。我曾多次尝试生成 bibtex 和 pdflatex,但有些引文不正常。
它看起来像:作者,J. 作品名称。// JF AuthorOne,JH Author// 期刊名称 - 年份....
我需要像 JF、JH 这样的首字母
有没有 PDF 编辑器可以将点放在 PDFLatex 中,或者有工具可以将 MathType 嵌入的方程式转换为干净的 Word?我尝试过 Infty 和 NitroPDF,但效果并不完美。
谢谢,希望你理解这个问题并能提供帮助
这是.bst
文件代码:
%%
%% This is file `gost780s.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% gost.dtx (with options: `bst,sort')
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This file has the LPPL maintenance status "maintained".
%% Maintained by Igor A. Kotelnikov.
%% Current version: 2012.02.02
%%
%% Please, send bug report via e-mail:
%% kia999 at mail dot ru <Igor Kotelnikov>
%% or
%% polyama at yahoo dot com <Maksym Polyakov>
%%
%%
%% This bibstyle attempts to format bibliography according to
%% GOST 7.80-2000 for bibliographic records.
ENTRY
{ address
annote
author
booktitle
bookauthor
chapter
edition
editor
compiler
howpublished
institution
journal
key
month
note
number
organization
pages
publisher
school
series
title
medium % new in v.2.
type
volume
year
language
booklanguage
numpages
url
urldate
isbn
doi
eprinttype % = archivePrefix
eprintclass % = primaryClass
eprint
}
{}
{ label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block
after.dblslash after.slash after.column after.semicolumn }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
#4 'after.dblslash :=
#5 'after.slash :=
#6 'after.column :=
#7 'after.semicolumn :=
}
STRINGS { s t }
STRINGS { curlanguage }
FUNCTION {change.language}
{ booklanguage empty$
{ "" }
{ booklanguage 'curlanguage :=
"\selectlanguageifdefined{"
curlanguage *
"}" *
}
if$
}
FUNCTION {output.nonnull}
{
swap$
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
" " quote$ "--- " * * write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ output.state after.dblslash =
{ "~//" * change.language * " " * write$ }
{ output.state after.slash =
{ "~/ " * write$ }
{ output.state after.column =
{ ": " * write$ }
{ output.state after.semicolumn =
{ "; " * write$ }
{ add.period$ " " * write$ }
if$
}
if$
}
if$
}
if$
}
if$
}
if$
mid.sentence 'output.state :=
}
if$
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {fin.entry}
{ add.period$
write$
newline$
}
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.dblslash}
{ output.state before.all =
'skip$
{ after.dblslash 'output.state := }
if$
}
FUNCTION {new.slash}
{ output.state before.all =
'skip$
{ after.slash 'output.state := }
if$
}
FUNCTION {new.column}
{ output.state before.all =
'skip$
{ after.column 'output.state := }
if$
}
FUNCTION {new.semicolumn}
{ output.state before.all =
'skip$
{ after.semicolumn 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {add.blank}
{ " " * before.all 'output.state :=
}
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
'len :=
s #1 len substring$ =
{ s len #1 + global.max$ substring$ }
's
if$
}
FUNCTION {non.stop}
{ duplicate$
"}" * add.period$
#-1 #1 substring$ "." =
}
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 {new.dblslash.checka}
{ empty$
'skip$
'new.dblslash
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "\BibEmph{" swap$ * "}" * }
if$
}
FUNCTION {enclose.square.brackets} { }
FUNCTION {bracify}
{ duplicate$ empty$
{ pop$ "{}" }
{ "{" swap$ * "}" * }
if$
}
FUNCTION {bracketise}
{ duplicate$ empty$
{ pop$ "[]" }
{ "[" swap$ * "]" * }
if$
}
FUNCTION {parenthesify}
{ duplicate$ empty$
{ pop$ "()" }
{ "(" swap$ * ")" * }
if$
}
FUNCTION {space.word}
{ " " swap$ * " " * }
FUNCTION {bbl.edby} % { "\bbledby{}" }
{ curlanguage "english" =
{"Ed.\ by"}
{ curlanguage "ukrainian" =
{"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.}"}
{ curlanguage "russian" =
{"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.}"}
{ curlanguage "german" =
{ "ed." }
{"language is not defined: " language "edby" * * warning$ "Ed.\ by"}
if$}
if$}
if$}
if$}
FUNCTION {bbl.cmplr}
{ curlanguage "english" =
{ "Compiler"}
{ curlanguage "german" =
{ "Hrsg." }
{ curlanguage "ukrainian" =
{"{\cyr\CYRU\cyrk\cyrl.}"}
{ curlanguage "russian" =
{"{\cyr\CYRS\cyro\cyrs\cyrt.}"}
{"language is not defined: " language "cmplr" * * warning$ "Compiler"}
if$}
if$}
if$}
if$}
FUNCTION {bbl.edition} % { "\bbledition{}" }
{ curlanguage "english" =
{"edition"}
{ curlanguage "ukrainian" =
{"{\cyr\cyrv\cyri\cyrd.}"}
{ curlanguage "russian" =
{"{\cyr\cyri\cyrz\cyrd.}"}
{ curlanguage "german" =
{" {aus.}" } %%%% { "Aufl." } ??
{ curlanguage "italian" =
{"edizione"}
{ curlanguage "french" =
{"\'{e}dition"}
{"language is not defined: " language "edition" * * warning$ "edition"}
if$}
if$}
if$}
if$}
if$}
if$}
FUNCTION {bbl.vvolume} % { "\bblVolume{}" }
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"Volume"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "\CYRT\cyro\cyrm" }
{ curlanguage "german" =
{"{Band}"} %%%% { "Volumen" }
{"language is not defined: " language "vvolume" * * warning$ "Volume"}
if$}
if$}
if$}
FUNCTION {bbl.vvol} % { "\bblVol{}" }
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"Vol."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"\CYRT."}
{ curlanguage "german" =
{"{Bd.}"} %%%% { "Vol." }
{"language is not defined: " language "vvol" * * warning$ "Vol."}
if$}
if$}
if$}
FUNCTION {bbl.iissue} % { "\bblIssue{}" }
{ curlanguage "english" =
{"Issue"}
{ curlanguage "ukrainian" =
{"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"}
{ curlanguage "russian" =
{"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"}
{ curlanguage "german" =
{"{Heft}"} %%%% { "Ausgabe" }
{"language is not defined: " language "iissue" * * warning$ "Issue"}
if$}
if$}
if$}
if$}
FUNCTION {bbl.iiss} % { "\bblIss{}" }
{ curlanguage "english" =
{"Iss."}
{ curlanguage "ukrainian" =
{"\CYRV\cyri\cyrp."}
{ curlanguage "russian" =
{"\CYRV\cyrery\cyrp."}
{ curlanguage "german" =
{"{H.}"}
{"language is not defined: " language "iiss" * * warning$ "Iss."}
if$}
if$}
if$}
if$}
FUNCTION {bbl.of} % { "\bblof{}" }
{ curlanguage "english" =
{"of"}
{ curlanguage "german" =
{ "von" }
{ curlanguage "ukrainian" =
{ "{\cyr\cyrii\cyrz}" }
{ curlanguage "russian" =
{ "{\cyr\cyri\cyrz}" }
{"language is not defined: " language "of" * * warning$ "of"}
if$}
if$}
if$}
if$}
FUNCTION {bbl.etal} % { "\bblof{}" }
{ curlanguage "english" =
{"et~al."}
{ curlanguage "german" =
{ "u.~a." }
{ curlanguage "ukrainian" =
{"{\cyr\cyrt\cyra~\cyrii\cyrn.}"}
{ curlanguage "russian" =
{"{\cyr\cyri~\cyrd\cyrr.}"}
{"language is not defined: " language "et~al" * * warning$ "et~al."}
if$}
if$}
if$}
if$}
FUNCTION {bbl.nnumber} % { "\bblNumber{}" }
{ curlanguage "english" =
{"Number"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "\CYRN\cyro\cyrm\cyre\cyrr" }
{ curlanguage "german" =
{"{Heft}"} %%% { "Anzahl" }
{"language is not defined: " language "nnumber" * * warning$ "Number"}
if$}
if$}
if$}
FUNCTION {bbl.number} % { "\bblnumber{}" }
{ curlanguage "english" =
{"number"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"}
{ curlanguage "german" =
{"{Heft}"} %%% { "anzahl" }???
{"language is not defined: " language "number" * * warning$ "number"}
if$}
if$}
if$}
FUNCTION {bbl.nr} % { "\bblno{}" }
{ curlanguage "english" =
{"№"} %change here
{ curlanguage "italian" =
{ "no" }
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "{\cyr\textnumero}" }
{ curlanguage "german" =
{"{H.}"} %%% { "an." }
{"language is not defined: " language "nr" * * warning$ "№"}
if$}
if$}
if$}
if$}
FUNCTION {bbl.nnr} % { "\bblno{}" }
{ curlanguage "english" =
{"№"} % сhange here
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "{\cyr\textnumero}" }
{ curlanguage "german" =
{"{H.}"} %%% { "an." }
{"language is not defined: " language "nnr" * * warning$ "№"}
if$}
if$}
if$}
FUNCTION {bbl.in} % { "\bblin{}" }
{ curlanguage "english" = curlanguage "german" = or
{"in"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "{\cyr\cyrv}" }
{"language is not defined: " language "in" * * warning$ "in"}
if$}
if$}
FUNCTION {bbl.iin} % { "\bblIn{}" }
{ curlanguage "english" = curlanguage "german" = or
{"In"}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{ "\CYRV" }
{"language is not defined: " language "iin" * * warning$ "In"}
if$}
if$}
FUNCTION {bbl.pages} % { "\bblpp." }
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"p."} %%% {"pp."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{\cyr\cyrs.}"}
{ curlanguage "german" =
{"S."} %%%% { "s." }
{"language is not defined: " language "pages" * * warning$ "p."}
if$}
if$}
if$}
FUNCTION {bbl.page} % { "\bblp."
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"p."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{\cyr\cyrs.}"}
{ curlanguage "german" =
{"S."} %%%% { "s." }
{"language is not defined: " language "page" * * warning$ "p."}
if$}
if$}
if$}
FUNCTION {bbl.ppages}% { "\bblPp." }
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"P."} %%%% { "Pp." }
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{\cyr\CYRS.}"}
{ curlanguage "german" =
{"S."}
{"language is not defined: " language "ppages" * * warning$ "P."}
if$}
if$}
if$}
FUNCTION {bbl.ppage} % { "\bblP." }
{ curlanguage "english" = curlanguage "french" = or curlanguage "italian" = or
{"P."}
{ curlanguage "ukrainian" = curlanguage "russian" = or
{"{\cyr\CYRS.}"}
{ curlanguage "german" =
{"S."}
{"language is not defined: " language "ppage" * * warning$ "P."}
if$}
if$}
if$}
FUNCTION {bbl.urldate}
{ curlanguage "english" =
{"online; accessed"}
{ curlanguage "ukrainian" =
{ "{\cyrd\cyra\cyrt\cyra\ \cyrz\cyrv\cyre\cyrr\cyrn\cyre\cyrn\cyrn\cyrya}" }
{ curlanguage "russian" =
{ "{\cyrd\cyra\cyrt\cyra\ \cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya}" }
{ curlanguage "german" =
{ "{online; abgerufen}" }
{ "language is not defined: " language "urldate" * * warning$ "online; accessed" }
if$}
if$}
if$}
if$}
FUNCTION {bbl.techreport} % rename to bbl.techreport
{ curlanguage "english" =
{ "Rep." }
{ curlanguage "german" =
{ "Bericht" }
{ curlanguage "russian" =
{ "{\cyr\CYRO\cyrt\cyrch\cyre\cyrt}" }
{ "language is not defined: " language "techrep" * * warning$ "Rep." }
if$}
if$}
if$}
FUNCTION {bbl.mthesis}
{ curlanguage "english" =
{ "Master's thesis" }
{ curlanguage "german" =
{ "Diss.~Mag." }
{ curlanguage "russian" =
{ "{\cyr\CYRK\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri"
"\cyro\cyrn\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra\ " *
"\cyrm\cyra\cyrg\cyri\cyrs\cyrt\cyrr\cyra}" * }
{ "language is not defined: " language "mthesis" * * warning$ "Master's thesis" }
if$}
if$}
if$}
FUNCTION {bbl.phdthesis}
{ curlanguage "english" =
{ "Ph.\,D. thesis" }
{ curlanguage "german" =
{ "Diss.~Ph.\,D." }
{ curlanguage "russian" =
{ "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrk\cyra\cyrn\cyrd\cyri"
"\cyrd\cyra\cyrt\cyra\ \cyrn\cyra\cyru\cyrk}" * }
{ curlanguage "french" =
{ "Th\`{e}se de doctorat" }
{ "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" }
if$}
if$}
if$}
if$}
FUNCTION {bbl.dscithesis}
{ curlanguage "english" =
{ "Dr.\,Sci. dissertation" }
{ curlanguage "german" =
{ "Diss.~Dr." }
{ curlanguage "russian" =
{ "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrd\cyro\cyrk\cyrt\cyro"
"\cyrr\cyra\ \cyrn\cyra\cyru\cyrk}" * }
{ "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" }
if$}
if$}
if$}
FUNCTION {bbl.nnoaddress}
{ curlanguage "english" =
{ "S.\ l." }
{ curlanguage "russian" =
{ "{\cyr\CYRB.\ \cyrm.}" }
{ "language is not defined: " language "nnoaddress" * * warning$ "S.\ l." }
if$}
if$}
FUNCTION {bbl.nopublisher}
{ curlanguage "english" =
{ "s.\ n." }
{ curlanguage "russian" =
{ "{\cyr\cyrb.\ \cyri.}" }
{ "language is not defined: " language "nnopublisher" * * warning$ "s.\ n." }
if$}
if$}
FUNCTION {bbl.nnopublisher}
{ curlanguage "english" =
{ "S.\ n." }
{ curlanguage "russian" =
{ "{\cyr\CYRB.\ \cyri.}" }
{ "language is not defined: " language "nnopublisher" * * warning$ "S.\ n." }
if$}
if$}
FUNCTION {bbl.medium.text}
{ curlanguage "english" =
{ "Text" }
{ curlanguage "russian" = curlanguage "ukrainian" = or
{ "{\cyr\CYRT\cyre\cyrk\cyrs\cyrt}" }
{ "language is not defined: " language "medium" * * warning$ "Text" }
if$}
if$}
FUNCTION {bbl.medium.elres}
{ curlanguage "english" =
{ "Electronic resource" }
{ curlanguage "russian" =
{ "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" }
{ curlanguage "ukrainian" =
{ "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" }
{ "language is not defined: " language "medium" * * warning$ "Electronic resource" }
if$}
if$}
if$}
FUNCTION {bbl.chief}
{ curlanguage "english" =
{ "chief" }
{ curlanguage "russian" =
{ "\cyrr\cyru\cyrk." }
{ curlanguage "ukrainian" =
{ "\cyrr\cyru\cyrk." }
{ "language is not defined: " language "chief" * * warning$ "chief" }
if$}
if$}
if$}
FUNCTION {bbl.executor}
{ curlanguage "english" =
{ "Executor" }
{ curlanguage "russian" =
{ "{\cyr\cyri\cyrs\cyrp\cyro\cyrl\cyrn.}" }
{ curlanguage "ukrainian" =
{ "{\cyr\cyrv\cyri\cyrk\cyro\cyrn\cyra\cyrv\cyre\cyrc\cyrsftsn}" }
{ "language is not defined: " language "medium" * * warning$ "Executor" }
if$}
if$}
if$}
FUNCTION {bbl.medium}
{ type$ "online" =
{ bbl.medium.elres }
{ bbl.medium.text }
if$}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{
#1 "{vv~}{ll}{~jj}{,~f.}" format.name$
}
FUNCTION {format.names.rev}
{
's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
%"{f.}{~vv}{~ll}{, jj}" format.name$ 't :=
"{ff}{~vv}{~ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ nameptr #4 =
numnames #4 > and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{ t "others" =
t "~others" =
or
{ " " * bbl.etal * }
{ ", " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names emphasize}
if$
}
FUNCTION {format.bookauthors}
{ bookauthor empty$
{ "" }
{ bookauthor format.names}
if$
}
FUNCTION {format.authors.after}
{ author empty$
{ "" }
{ author format.names.rev}
if$
}
FUNCTION {format.bookauthors.after}
{ bookauthor empty$
{ "" }
{ bookauthor format.names.rev}% always cuts to 4 persons
if$
}
FUNCTION {format.editors.after}
{ editor empty$
{ "" }
{ bbl.edby "\ " * editor format.names.rev * }
if$
}
FUNCTION {format.chief.after}
{ editor empty$
{ "" }
{ bbl.chief "\ " * editor format.names.rev * }
if$
}
FUNCTION {format.executor.after}
{ author empty$
{ "" }
{ bbl.executor ": " * author format.names.rev * }
if$
}
FUNCTION {format.compiler.after}
{ compiler empty$
{ "" }
{ bbl.cmplr "\ " * compiler format.names.rev * }
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$ }
if$
}
FUNCTION {format.date}
{ year empty$
{ month empty$
{ "" }
{ "there's a month but no year in " cite$ * warning$
month
}
if$
}
{ month empty$
'year
{ year ". " quote$ "--- " month * * * * }
if$
}
if$
}
FUNCTION {output.address.publisher}
{
address empty$
'skip$
{ address output
publisher empty$
'skip$
{ new.column }
if$
}
if$
publisher output
}
FUNCTION {output.address.publisher.date}
{
output.address.publisher
format.date output
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem" write$
cite$ bracify write$
newline$
language empty$
{ "english" 'curlanguage := }
{ language 'curlanguage := }
if$
"\selectlanguageifdefined" curlanguage bracify * write$
newline$
""
before.all 'output.state :=
}
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$
}
答案1
作者姓名的格式由format.names.rev
所提供bst
文件中的函数控制。
目前该函数包括以下几行
%"{f.}{~vv}{~ll}{, jj}" format.name$ 't :=
"{ff}{~vv}{~ll}{, jj}" format.name$ 't :=
为了达到预期的效果(即首字母后跟句点),必须取消注释上述两行中的第一行,并注释第二行;即:
"{f.}{~vv}{~ll}{, jj}" format.name$ 't :=
%"{ff}{~vv}{~ll}{, jj}" format.name$ 't :=
最后,最好复制该bst
文件,重命名,修改并使用新文件。