![在 LuaLaTeX 中替换 sans 小型大写字母](https://linux22.com/image/470521/%E5%9C%A8%20LuaLaTeX%20%E4%B8%AD%E6%9B%BF%E6%8D%A2%20sans%20%E5%B0%8F%E5%9E%8B%E5%A4%A7%E5%86%99%E5%AD%97%E6%AF%8D.png)
我习惯于做类似下面的事情来用 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}