双盲评审参考文献的简化

双盲评审参考文献的简化

我真的很喜欢 biblatex,唯一的缺点就是现在手动处理 bibitems 不再那么简单了。

有个问题让我很苦恼:我被要求将论文中自引的识别部分涂黑(黑化),以保持双盲评审。当我使用常规 bib 时,我只是定义

\def\blackbox#1{\setbox0=\hbox{#1}\rule{\wd0}{\ht0}}

并在每个 后面加上文本\newblock。不是很优雅,但可行。(请注意,有更好的黑化方法,请参阅 匿名化文档的有效方法但这不是重点)

在 biblatex 中,我可以做同样的事情,但是事情变得更加繁琐,因为数据的组织方式更加细致......非常非常繁琐(我刚刚对两篇论文做了这件事,花了一个多小时)。

理想情况下,我只想指定要 nigrify 其引文的作者,然后在这些 bib 条目中,作者姓名、标题、URL 和页面范围都被 nigrify,例如通过\blackbox。但我也愿意做一些编辑,例如通过将和\entry替换为和。这可以调用本地的东西 进行 nigrification。原则上,biblatex 应该特别适合这一点;我只是对代码的理解不够深入,无法自己做。\endentry\blackentry\endblackentry\blackentry\renewbibmacro*{url}{\blackbox....}

答案1

该类apa6与 biblatex 一起工作并定义\maskcite从文本和参考列表中删除引用的宏:

\documentclass[biblatex,mask]{apa6}
\addbibresource{xampl.bib}
\begin{document}
You can cite with \verb-\cite- and get: \cite{book-full}\par
You can maskcite with \verb-\maskcite- and get: \maskcite{article-full}
\end{document}

如果您愿意用 替换\cite\maskcite那么工作方式apa6就非常通用。本质上,该类会检查mask标志。如果不存在\let\maskcite\cite,则定义\maskcite打印一些文本(很好地处理前后注释)。您可以轻松地让它打印一个黑框。需要做一些工作才能使黑框与引用的大小完全相同,并具有相同的换行符。

答案2

我认为您可以通过重新定义 biblatex.def 中出现并用于名称格式化的两个宏来实现这一点。(当然,我还没有对所有样式进行检查,有些样式可能使用不同的宏,在这种情况下需要进行不同的重新定义。)

这测试了首字母和姓氏是否一致(或有姓氏但没有首字母)。如果您的姓氏不常见,则可能会简化。

\documentclass{article}

\usepackage[backend=biber,style=numeric]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{my.bib}
@book{me01,
  author    = {Me Myself},
  title     = {This Should Be Blackened},
  publisher = {August House},
  date      = {2012},
}
@article{me02,
  author       = {Me Myself},
  title        = {This Should be Blackened Too},
  journaltitle = {Worty Journal},
  volume       = {100},
  pages        = {103--145},
  date         = {2011},
}
@article{notme01,
  author       = {Brother of Myself},
  title        = {This Should be Patent},
  journaltitle = {Marginal Quarterly},
  volume       = {10},
  pages        = {23--24},
  date         = {2010},
}
\end{filecontents}

\renewcommand\mkbibnamelast[1]{%
  \ifauthorisme
    {\setbox0=\hbox{#1}\rule{\wd0}{\ht0}}
    {#1}}

\renewcommand\mkbibnamefirst[1]{%
  \ifauthorisme
    {\setbox0=\hbox{#1}\rule{\wd0}{\ht0}}
    {#1}}

\newtoggle{iamauthor}

\def\ifauthorisme#1#2{%
  \togglefalse{iamauthor}%
  \printnames[setiamauthor]{author}%
  \iftoggle{iamauthor}{#1}{#2}}

\DeclareNameFormat{setiamauthor}{%
  \ifboolexpr{ test {\ifstrequal{#1}{Myself}}
              and ( test {\ifstrequal{#4}{M\bibinitperiod}}
                    or test {\ifblank{#4}} )}
  {\global\toggletrue{iamauthor}}
  {}}

\addbibresource{my.bib}

\begin{document}

Test \cite{me01} and \cite{notme01} and \cite{me02}
\printbibliography
\end{document}

被抹黑的名字

答案3

这里的棘手部分是确保原始书目数据始终传递到\blackbox/ \anonymize。您可以通过将最内层的格式应用到要审查的字段来做到这一点。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage{biblatex}

\makeatletter
\def\anonymize#1{\setbox0=\hbox{#1}\rule{\wd0}{\ht0}}
\makeatother

% Define anonymized formats
\DeclareFieldFormat{anonfield}{\anonymize{#1}}
\DeclareNameFormat{anonnames}{\anonymize{#3#5#1}}
\DeclareFieldFormat{anontitle}{\anonymize{#1}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {anontitle}{\mkbibquote{\anonymize{#1}\isdot}}
\DeclareFieldFormat[suppbook,suppcollection,suppperiodical]
  {anontitle}{\anonymize{#1}}
\DeclareFieldFormat{anontitlecase}{%
  \ifboolexpr{ test {\ifcurrentfield{title}}
               or test {\ifcurrentfield{subtitle}} }
    {\anonymize{#1}}
    {#1}}

% Define category of entries to anonymize
\DeclareBibliographyCategory{byname}

% Specify entries in category via comma-separated list of author names
\newcommand*{\anonlist}{}
\DeclareIndexNameFormat{byname}{%
  \xifinlist{\detokenize{#4#5#1}}{\anonlist}
    {\addtocategory{byname}{\thefield{entrykey}}}
    {}}
\newrobustcmd*{\anonlistadd}[1]{\listxadd{\anonlist}{\detokenize{#1}}}

% Hook in anonymized formats
\newrobustcmd*{\anonalias}{%
  \ifcategory{byname}
    {\DeclareNameAlias{author}{anonnames}%
     \DeclareNameAlias{labelname}{anonnames}%
     \DeclareFieldAlias{pages}{anonfield}%
     \DeclareFieldAlias{url}{anonfield}%
     \DeclareFieldAlias{doi}{anonfield}%
     \DeclareFieldAlias{citetitle}{anontitle}%
     \DeclareFieldAlias[article]{citetitle}[article]{anontitle}%
     \DeclareFieldAlias{titlecase}{anontitlecase}}
    {}}
\newtoggle{anonymize}
\AtDataInput{\iftoggle{anonymize}{\indexnames[byname][1-99]{author}}{}}
\AtEveryBibitem{\iftoggle{anonymize}{\anonalias}{}}
\AtEveryCitekey{\iftoggle{anonymize}{\anonalias}{}}

% Example
\toggletrue{anonymize}
\forcsvlist{\anonlistadd}
  {Aristotle, L.V{\'a}zques{ de }Parga, A.vanGennep, N.Markey, M.~A.Kastenholz}
\forcsvlist{\anonlistadd}
  {L\bibinitperiod V{\'a}zques{\bibnamedelimb de\bibnamedelimb }Parga,
   A\bibinitperiodvanGennep, N\bibinitperiod Markey,
   M\bibinitperiod \bibinitdelim A\bibinitperiod Kastenholz}
\addbibresource{biblatex-examples.bib}

\begin{document}
Filler text \parencite{companion,aristotle:anima,markey,vazques-de-parga}.
\Textcite{companion,aristotle:anima,kastenholz} showed that...
The results from \citetitle{companion,aristotle:anima,vangennep} showed that...
\printbibliography
\end{document}

在此处输入图片描述

注释掉\toggletrue{anonymize}会得到:

在此处输入图片描述

几点说明:

  • 被审查的文本不会跨行。要解决此问题,请使用加布林的\anonymize命令即使有了这种改进,匿名格式也只能提供原始文档布局的近似值;一些书目数据(特别是名称)的格式非常严格。
  • 其中一些条目需要审查额外的字段以使其作者无法识别;选择它们只是为了在姓名列表中提供一些变化。
  • 下面的列表biber需要使用分隔符命令(\bibinitperiod和朋友)。如果您觉得这很乏味,可以使用 的选项对条目进行分类bibersourcemap它支持正则表达式。

相关内容