rioxwang / BUPTGraduateThesis

397 stars 113 forks source link

盲审匿名版本未能读取已发表论文作者信息 #3

Closed reverland closed 8 years ago

reverland commented 8 years ago

看规定是要替换作者名字为作者次序,但是实际上最后生成的pdf完全删掉了所有作者。

我不知道为什么会这样。

pubs.bib

%% 不要更改条目名称 BSTpeerreview
@BUPTGraduateThesisBSTCTL{BSTpeerreview,
  CTLname_author_eng = "{\textbf{zhang san}}",
  CTLname_author_chs = "{\textbf{张三}}",
  CTLswitch_chs_punc = "yes",
  CTLswitch_peerreview = "yes"
}

%% 如果学位论文作者在发表论文列表中的作者排名有超过 3 的, 其姓名将不会出现在论文列表中
%% 设置下面的数值可以改变发表论文列表中作者姓名显示的最大数目
@BUPTGraduateThesisBSTCTL{BSTcontrol,
  CTLmaxnum_authors = "3"
}

. [EB/OL].北京:中国科技论文在线  [2015-12-07].http://www.paper.edu.cn/releasepaper/content/xxxxxx.
@ELECTRONIC{paper1,
  author = "{张三, 李四}",
  title = {基于xxxx的检测},
  journal={科技论文在线},
  year = {2015},
  source = {http://www.paper.edu.cn/releasepaper/content/xxxxxxx}
}

workaround

dirty workaround

% 排版盲审姓名
FUNCTION {format.names.peerreview} {
  % 获得所有姓名
  'var.namelist :=
  % 防止用户输入错误导致输出空栈,需要先在栈中压入空字符串
  "第一作者,xxx,xxx" <-------------------------------------------------更改此行
  % 初始化正在处理的姓名序号
  #1 'idx.names :=
  % 获得姓名的数量并置于 num.names 中
  var.namelist num.names$ 'num.names :=

  { idx.names num.names > not }
  { var.namelist idx.names "{vv{}}{ll{}}{ff{}}{jj{}}" format.name$
    remove.period % 删除用户添加的缩写符号"."
    'var.name :=

    language empty$
    { name.author.eng }
    { name.author.chs }
    if$

    var.name =
    { idx.names int.to.str$
      "\CJKnumber{" swap$ * "}" *
      "第" swap$ * "作者" * *
    }
    { "" * }
    if$

    idx.names #1 + 'idx.names :=
  }
  while$
}

% 排版 author 域
% output:栈顶1元素
% 判断 author 域是否为空:空则将""压栈;非空则将 author 排版后压栈;
FUNCTION {format.authors} {
  author empty$
  { "" }
  { switch.peerreview #1 =
    { author format.names.peerreview }
    { author format.names }
    if$
  }
  if$
}
rioxwang commented 8 years ago

这个功能肯定是支持的,你先新下一个没有做任何改动的试试,我刚刚试了没有问题,第一作者第四作者都可以显示出来。

随后才再看看是不是你自己编辑论文的时候动了什么地方。

另外, CTLname_author_eng = "{\textbf{zhang san}}", CTLname_author_chs = "{\textbf{张三}}", 中如果是加粗,那么你再引用的时候也要加粗,文本替换的时候找的是引号里面的第一层大括号中的内容

reverland commented 8 years ago

@rioxwang 好的,再引用是什么意思

reverland commented 8 years ago

ok, git clone新的效果如下。我还是不知道我改哪里了。。。

screenshot from 2016-03-15 18 24 33 screenshot from 2016-03-15 18 26 30

rioxwang commented 8 years ago

呃,不是“再”是“在”,你的pub.bib里 @ELECTRONIC{paper1, author = "{张三, 李四}", title = {基于xxxx的检测}, journal={科技论文在线}, year = {2015}, source = {http://www.paper.edu.cn/releasepaper/content/xxxxxxx} } 这里的 张三 应该变为 \textbf{张三},试试看这样行不

reverland commented 8 years ago

@rioxwang still lost。。。不知道为什么。。。但新git clone下来的没什么问题。。 辛苦,如果有人还碰到这个问题我再协助看看 非常感谢这个模板!

另外 gitcafe合并到coding.net了

rioxwang commented 8 years ago

方便的话,将pubs.bib粘给我看一下呗

PS:谢谢,过两天迁移过去:)

reverland commented 8 years ago

方便。。。我明天发你邮箱,如果需要全文都行。。。

hgzjy25 commented 1 year ago

CTLname_author_chs这个里面好像没用。

我重新gitclone了一个,发现模版里面用中文写的专利没有匹配到作者。

把CTLname_author_eng里面的改成中文才匹配上作者。