将参考书目 (biblatex) 中的美国邮政编码 (CA) 更改为 AP 样式手册缩写 (加利福尼亚州)

将参考书目 (biblatex) 中的美国邮政编码 (CA) 更改为 AP 样式手册缩写 (加利福尼亚州)

我的.bib文件使用美国邮政编码作为美国各州的缩写(加利福尼亚州和马萨诸塞州分别使用 CA 和 MA)。对于我正在撰写的论文,需要将这些缩写更改为诸如Calif.Mass.(参见维基百科)。

我不想更改我的.bib文件,而是在我的序言中包含一条命令,该命令说“当文件LOCATION中的条目.bib包含诸如, CA, MA等字符串时,则用、等替换它们, Calif., Mass.。 (我在字符串前添加了一个逗号和空格,以确保它不会捕获任何不是美国州的两个字母的字符串 - 我现在不知道那会是什么,但以防万一)。

梅威瑟:

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@BOOK{lehiste1970,
    AUTHOR = "Ilse Lehiste",
    TITLE = "Suprasegmentals",
    YEAR = "1970",
    LOCATION = "Cambridge, MA",
    PUBLISHER = "The M.I.T. Press"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{lehiste1970}
\printbibliography
\end{document}

在此处输入图片描述

应为

Lehiste,Ilse(1970 年)。超音段.马萨诸塞州剑桥:麻省理工学院出版社。

答案1

这是一个概念证明。

\begin{filecontents}{\jobname.bib}
@BOOK{lehiste1970,
    AUTHOR = "Ilse Lehiste",
    TITLE = "Suprasegmentals",
    YEAR = "1970",
    LOCATION = "Cambridge, MA",
    PUBLISHER = "The M.I.T. Press"}
@BOOK{mehiste1970,
    AUTHOR = "Ilse Mehiste",
    TITLE = "Suprasegmentals",
    YEAR = "1970",
    LOCATION = "San Francisco, CA",
    PUBLISHER = "The California Press"}
\end{filecontents}

\documentclass{article}
\usepackage[style=authoryear]{biblatex}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=location,
        match=\regexp{,\s*(MA|CA)},
        replace=\regexp{,~\\State\{$1\}}]
    }
  }
}
\addbibresource{\jobname.bib}
\def\State#1{\csname State#1\endcsname}
\def\StateMA{Mass.}
\def\StateCA{Calif.}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

MA我认为,与其用 来替换,不如Mass.用 来替换\State{MA},这样就可以给出定义(并随意修改)。

在此处输入图片描述

相关内容