如何用连字符连接带有姓氏的参考文献?

如何用连字符连接带有姓氏的参考文献?

我需要在参考文献中用连字符将长姓氏连起来,例如:

@article{LastHyphenName:2013xy,
author = {Longlast-Namewithhyphen, Antonio and Anotherlastname, David},
title = {{How to hyphenate a reference that has a lastname with a hyphen?}},
journal = {Contributions To the TeX Stackexchange},
year = {2013},
volume = {2},
pages = {539--557},
}

我读apalike 中参考文献的换行(或连字符?)甚至可以使用 来连字符 .bib 文件中的单词\hyphenation,但已经有连字符的单词无法连字符,或者你可以像在这个 SO 线程。不过,我认为必须有其他方式 操作 BibTeX 条目。

有什么解决办法吗?

编辑:

  • 我正在外部编辑我的图书馆,它还在不断扩大,因为我在写作过程中不断向参考书目添加新的参考资料,因此在shorthand最后的 (出口).bib 文件在时间上效率不高。

  • 此外,我的参考书目中有大量作者的姓氏是西班牙裔,这意味着需要花费大量时间手动编辑 .bib 文件(我知道西班牙裔姓氏通常不与连字符连接,但连字符是在国际上引入的,以避免混淆)。

我正在用 写论文\classicthesis,所以序言要复杂得多,但这里有一个梅威瑟:

\documentclass{scrbook} % KOMA-Script article
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage[round]{natbib}
\usepackage{fontspec}
\usepackage{xunicode}
\setmainfont[Mapping=tex-text]{Minion Pro}
\usepackage[english]{babel}


\begin{document} 
\hyphenchar\font=\string"7F

\parbox{1cm}{\cite{LastHyphenName:2013xy}}

\bibliographystyle{kluwer} 
\bibliography{lib}

\end{document}

.bib 文件

@article{LastHyphenName:2013xy,
author = {Longlast-Namewithhyphen, Antonio and Anotherlastname, David},
title = {{How to hyphenate a reference that has a lastname with a hyphen?}},
journal = {Contributions To the TeX Stackexchange},
year = {2013},
volume = {2},
pages = {539--557},
}

更改连字符不起作用。

答案1

与包装babel使用

\defineshorthand{"=}{\penalty1000-\hskip0pt}

进而

author = {Longlast"=Namewithhyphen, Antonio and Anotherlastname, David},

答案2

我使用软件包\hyp{}中的hyphenatBiber 替换了作者字段中的所有连字符。将其放入您的序言中:

\usepackage{hyphenat}
\DeclareSourcemap{
  \maps[datatype = bibtex]{
    \map{
     \step[fieldsource = author, match = \regexp{-}, replace = \regexp{\{\\hyp\{\}\}}]
    }
  }
}

由于某种原因,Biber 此后开始在 .bbl 文件中包含摘要和注释,这可能会给您带来特殊字符问题。要解决这个问题,您可以在 .biber.conf 中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
  <maps datatype="bibtex" map_overwrite="1">
    <map>
      <map_step map_field_set="abstract" map_null="1"/>
      <map_step map_field_set="annote" map_null="1"/>
    </map>
  </maps>
</sourcemap>
</config>

答案3

使用两个连字符。

例如,作者 = {Longlast--Namewithhyphen,Antonio 和 Anotherlastname,David}

不需要使用任何附加包。

相关内容