在 LuaLaTeX 中替换 sans 小型大写字母

在 LuaLaTeX 中替换 sans 小型大写字母

我习惯于做类似下面的事情来用 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}

相关内容