如何更改 biblatex 缩写的字体

如何更改 biblatex 缩写的字体

我有参考书目biblatex,我想使用不同的字体电脑现代,即拉托&比特流宪章。这是一个最小的例子:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[defaultsans, scale=0.9]{lato}
\usepackage[bitstream-charter]{mathdesign}
\usepackage{filecontents}

\begin{filecontents*}{references.bib}
@article{
  shannon,
  author = {Shannon, C. E.},
  title = {A mathematical theory of communication},
  journal = {SIGMOBILE Mob. Comput. Commun. Rev.},
  issue_date = {January 2001},
  volume = {5},
  number = {1},
  month = jan,
  year = {2001},
  issn = {1559-1662},
  pages = {3--55},
  numpages = {53},
  url = {http://doi.acm.org/10.1145/584091.584093},
  doi = {10.1145/584091.584093},
  acmid = {584093},
  publisher = {ACM},
  address = {New York, NY, USA},
}
\end{filecontents*}

\usepackage[backend=biber,style=alphabetic,natbib=true]{biblatex}
\addbibresource{references.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

biber运行and后将产生以下输出pdflatex

例子

红色箭头表示我的问题:因为比特流宪章没有实际的小写字母,LaTeX 只会缩小首字母缩略词的字符,例如ISSN,我不喜欢这个样子。所以我的问题是:我如何更改字体,使首字母缩略词只是规则地显示?

答案1

您需要更改宏\mkbibacro。其原始定义是

\newcommand*{\mkbibacro}[1]{%
  \ifcsundef{\f@encoding/\f@family/\f@series/sc}
    {#1}
    {\textsc{\MakeLowercase{#1}}}}

因此,一种有点蛮力的方法(将所有字体的小写字母替换为“按原样排版”(此处为大写字母))将是

\renewcommand*{\mkbibacro}[1]{#1}

更好的方法是让人误biblatex以为 Mathdesign/Bitstream Charter 不包含小写字母。将以下内容添加到您的序言中:

\makeatletter
\renewcommand*{\mkbibacro}[1]{%
  \csundef{\f@encoding/mdbch/\f@series/sc}%
  \ifcsundef{\f@encoding/\f@family/\f@series/sc}
    {#1}
    {\textsc{\MakeLowercase{#1}}}}
\makeatother

在此处输入图片描述

mdbch注意:可以通过添加\show\rmdefault到 OP 的示例中来检测 Mathdesign/Bitstream Charter 的“字体简写” 。

相关内容