我需要在参考文献中用连字符将长姓氏连起来,例如:
@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{}
中的hyphenat
Biber 替换了作者字段中的所有连字符。将其放入您的序言中:
\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}
不需要使用任何附加包。