我习惯于做类似下面的事情来用 xmcss(我猜是来自 sansmathfonts)的字体替换无衬线小写字母(lmodern 中不存在):
\documentclass{article}
\usepackage{biblatex}
\begin{filecontents}{bib.bib}
@online{key,
author={me},
url={http://example.org}
}
\end{filecontents}
\addbibresource{bib.bib}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\sffamily
\DeclareFontShape{T1}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} % Uses xcmss font instead of lmss for sans serif small caps
\begin{document}
Some – dash
\nocite{*}
\printbibliography
\end{document}
说我真的明白发生了什么(除了替换字体)有点牵强。现在,这在 LuaLaTeX 中无法正常工作(例如,破折号会产生问题,因为There is no ��� (U+2013) in font ec-lmss10!
)。在这种情况下我该怎么办?
编辑:我也同意使用大写字母代替小写字母。但我无法改变 biblatex 的作用。
答案1
下面我有一个修改过的例子,它\textsc
在主体和 bib URL 中使用。
NewComputerModern 系列确实有无衬线小型大写字母,因此您可以将其用于无衬线字体或整个文档。
\documentclass{article}
\usepackage{biblatex}
\begin{filecontents}{bib.bib}
@online{key,
author={me},
url={http://example.org}
}
\end{filecontents}
\addbibresource{bib.bib}
\usepackage{fontspec}
\setsansfont{NewCMSans10-Regular.otf}
\renewcommand{\familydefault}{\sfdefault}
\sffamily
\begin{document}
Some – dash \textsc{Some Text In Small Caps}
\nocite{*}
\printbibliography
\end{document}