BibLaTeX 保留标题中缩写的大小写

BibLaTeX 保留标题中缩写的大小写

我有一个详尽的参考文献列表(主要是期刊文章),它从 Mendeley 自动导出到 .bib 文件。

我目前遇到的问题是 IEEE 样式使用句子大小写,因此我的标题中的首字母缩略词没有大写。考虑以下示例,

@article{Paik2007,
author = {Paik, Bu Geun and Kim, Jin and Park, Young Ha and Kim, Ki Sup and Yu, Kwon Kyu},
doi = {10.1016/j.oceaneng.2005.11.022},
isbn = {00298018},
issn = {00298018},
journal = {Ocean Engineering},
keywords = {Convection velocity,Phase-averaging,Propeller wake,Swirling strength,Tip vortex,Trailing vorticity,Two-frame PIV},
mendeley-groups = {Msc Research},
pages = {594--604},
title = {Analysis of Wake Behind a Rotating Propeller using PIV Technique in a Cavitation Tunnel},
url = {http://202.114.89.60/resource/pdf/679.pdf},
volume = {34},
year = {2007}
}

我使用以下设置biblatex

\usepackage[url=false,        % Ignore url field
            backend=biber,    % Not bibtex
            sorting=none,     % Order of appearence in text
            bibencoding=utf8, % For those special characters
            maxbibnames=10,   % Use et all only for more than 10
            style  =numeric-comp]{biblatex}

将 biblatex 样式设置为ieee,标题生成为

使用空化风洞中的 piv 技术分析旋转螺旋桨后的尾流

我希望标题表示为

利用 PIV 技术在空化风洞中分析旋转螺旋桨尾流

如果我将样式更改为numeric-comp,则标题字段将与 bib 文件完全一致,但 bib 文件的标准并不统一。有些期刊遵循句子大小写,而有些则不遵循。

我确实知道我可以手动编辑 bib 文件并将所有首字母缩略词包装起来{}以保留大小写,但是如果标题中有两个或更多后续大写字母,有没有更智能的方法来自动保持大小写?

答案1

我完全同意乔恩参考书目文件需要投入大量的心思和人力,以确保信息尽可能准确;有很多微妙之处和极端情况是脚本或其他自动化无法捕捉到的。我也完全同意他的建议

投入时间(即使不是为了这项任务)来培养一个好的、符合要求的参考书目。从其他来源获取的大多数数据都存在微妙和不那么微妙的缺陷……

也就是说,可以使用 Biber 的源映射和正则表达式来保护带有花括号的首字母缩略词

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
       \step[fieldsource=title, match=\regexp{\b([A-Z]{2,})\b}, replace={{}{$1}}]
    }
  }
}

这将匹配所有由单词分隔符(空格、换行符等)包围的两个或多个大写字母的组合,并将它们包裹在花括号中(由于某种原因,需要空组才能工作,天知道为什么)。

平均能量损失

\documentclass[american]{article}
\usepackage{babel}
\usepackage[style=ieee, backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Paik2007,
author = {Paik, Bu Geun and Kim, Jin and Park, Young Ha and Kim, Ki Sup and Yu, Kwon Kyu},
doi = {10.1016/j.oceaneng.2005.11.022},
journal = {Ocean Engineering},
pages = {594--604},
title = {Analysis of Wake Behind a Rotating Propeller using PIV and CIV Technique in a Cavitation Tunnel},
url = {http://202.114.89.60/resource/pdf/679.pdf},
volume = {34},
year = {2007}
}
@article{un,
author = {Ban Ki-moon},
journal = {Ocean Engineering},
title = {I Quite like the UN},
year = {2007}
}
@article{faq,
author = {Anne Uthor},
journal = {Ocean Engineering},
title = {FAQ and Other Questions Answered},
year = {2007}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
       \step[fieldsource=title, match=\regexp{\b([A-Z]{2,})\b}, replace={{}{$1}}]
    }
  }
}

\begin{document}
\nocite{*}


\printbibliography
\end{document}

在此处输入图片描述


奖金,

sed "s/\([A-Z]\{2,\}\)/{\1}/g" <file>

应该做与脚本相同的事情sed

相关内容