XeLaTeX,小写字母 bfseries

XeLaTeX,小写字母 bfseries

我发现这个 MWE 经过编译后pdflatex提供了我所需要的内容:

\documentclass[a4paper]{article}   
\usepackage[T1]{fontenc}   
\begin{document}
\begin{center}
{\bfseries\scshape Bold Small Caps}
\end{center}
\end{document} 

我还指出,组合\scshape\bfseres仅适用于\usepackage[T1]{fontenc}选项。现在我想使用获得相同的结果XeLaTeX,但当然我不能使用fontenc包。我不知道如何处理fontspec

谢谢

答案1

Luatex(或者更确切地说是luaotfloadLua 模块)有自己的字体搜索代码,它自然支持 kpathsearch,并且可以通过文件名和内部字体名称(例如)查找系统字体和 texlive 中的字体CMU Serif

xetex 使用系统字体缓存(linux 和 cygwin 上是 fc-cache,我认为在 windows 上带有 fc-cache 的本地副本)它可以通过文件名找到系统和 texlive 字体但只能通过字体名称找到系统已知的字体(例如通过 fc-cache)。

您可以通过文件名加载 CMU Serif

\setmainfont{cmunrm.otf}

对于某些字体来说,这没有问题,而且是一种方便的字体加载方式,但通过文件名加载的缺点是 fontspec 不能自动推断出诸如粗体和小型大写字母之类的变体,这些可以单独指定给 fontspec,但对于像 CMU 这样的大型集合来说,这很麻烦。

更简单的方法是让字体可供系统使用,这样 xetex 就可以按名称加载它们。例如,在我的 windows/cygwin 设置中,我只需将副本拖到c:/windows/fonts,在 Mac 上,您可以将字体安装在 中 /Library/Fonts

或者在使用 fc-cache 的系统上,你可以fc-cache查看 texlive 目录。如果你保存了一个类似这样的文件

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/usr/local/texlive/2016/texmf-dist/fonts/opentype</dir>
</fontconfig>

作为

/etc/fonts/conf.d/09-texlive.conf

然后运行

sudo fc-cache -fsv

xetex 将找到字体。

配置文件是 texlive 中提供的文件的一个版本,如下所示

/fonts/conf/texlive-fontconfig.conf

但仅限于 opentype(原来有两行额外的 truetype 和 type1)

经过所有这些准备工作

\documentclass[a4paper]{article}   
\usepackage{fontspec} 
\setmainfont{CMU Serif}
%\setmainfont{cmunrm.otf}
\begin{document}
\begin{center}


{\bfseries Bold }

{\scshape Small Caps}

{\bfseries\scshape Bold Small Caps}
\end{center}
\end{document} 

生产

在此处输入图片描述

(感谢 egreg 对这里的一些细节提供的帮助)

答案2

尝试这个!!!!

\documentclass[10pt]{article}    
\usepackage{libertine}    
%\usepackage{mathpazo}    
%\usepackage{newtxtext}    
%\usepackage{charter}    
%\usepackage{kpfonts}    
%\usepackage{fourier}    
%\usepackage[garamond]{mathdesign}    
%\usepackage{pxfonts}    
\begin{document}    
\bfseries\scshape Rhubarb Rhubarb    
\end{document}

在此处输入图片描述

相关内容