我注意到在书目条目中,只要条目标题以 a或 a@incollection
结尾,则 -type 条目的标题后面的字母大写。其他情况下,字母不大写。这看起来有点奇怪,也有点不一致(尽管从技术上讲当然不是这样)。?
!
有没有办法将这种行为改变为全部大写或全部非大写?
以下是重现此现象的 MWE:
\documentclass{scrartcl}
\usepackage[style=ieee,backend=biber]{biblatex} %
\bibliography{bibliography}
\begin{filecontents}{bibliography.bib}
@incollection{example1,
author = {Doe, John},
title = {Title without question mark},
editor = {editor},
booktitle = {Book title},
year = {2009}
}
@incollection{example2,
author = {Doe, Jane},
title = {Title with a question mark?},
editor = {editor},
booktitle = {Book title},
year = {2009}
}
\end{filecontents}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
答案1
biblatex
有一个标点符号跟踪器,可尝试避免使用难看的双标点符号。此处问号和其后的逗号会产生双标点符号,因此biblatex
会隐藏逗号,然后将问号后的“In”大写。
有几种方法可以解决这个问题。一种方法是允许使用双标点符号。
\documentclass[british]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ieee,backend=biber]{biblatex}
\DeclarePunctuationPairs{comma}{*?!}
\begin{filecontents}{\jobname.bib}
@incollection{example1,
author = {Doe, John},
title = {Title without question mark},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
@incollection{example2,
author = {Doe, Jane},
title = {Title with a question mark?},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
另一个选择是使用以下方法隐藏标点符号跟踪器中的问号\@
\documentclass[british]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ieee,backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@incollection{example1,
author = {Doe, John},
title = {Title without question mark},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
@incollection{example2,
author = {Doe, Jane},
title = {Title with a question mark?\@},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
最后,你可以强制“in”始终保持小写,同时仍然抑制逗号
\documentclass[british]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ieee,backend=biber]{biblatex}
\renewbibmacro*{in:}{%
\bibncpstring{in}%
\printunit{\intitlepunct}}
\begin{filecontents}{\jobname.bib}
@incollection{example1,
author = {Doe, John},
title = {Title without question mark},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
@incollection{example2,
author = {Doe, Jane},
title = {Title with a question mark?},
editor = {editor},
booktitle = {Book title},
year = {2009},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}