如何使用 fontspec 以及 LuaLaTeX 中的小号粗体大写字母?

如何使用 fontspec 以及 LuaLaTeX 中的小号粗体大写字母?

Latex 专家告诉我,\usepackage{fontspec}在使用 lualatex 时应该使用它。

但是现在我的小粗体大写字母不起作用:它们只显示粗体,但不显示大写字母,尽管我添加\usepackage[T1]{fontenc}需要让它工作

\textbf{\textsc{bold small caps}}

但它不再起作用,因为\usepackage{fontspec}它在那里。

删除\usepackage{fontspec}并保留\usepackage[T1]{fontenc}使其起作用(即粗体和小写字母)

删除\usepackage[T1]{fontenc}和保留\usepackage{fontspec}不起作用:它只会变成粗体,而不会变成大写。

问题是,仅适用于 lualatex(我只使用 lualatex,不使用 pdflatex),如果应该包含\usepackage{fontspec},如何获得小写字母和粗体?真的需要吗\usepackage{fontspec}?还是只能用\usepackage[T1]{fontenc} (太多包,与 Latex 的字体混淆太多)。

平均能量损失

\documentclass[11pt]{article}

\ifdefined\HCode
  \usepackage[utf8]{luainputenc}
   \usepackage[T1]{fontenc} %watch out, Makes tex4ht \verb not accept  different fonts. bug
\else
    \usepackage{fontspec}%for lualatex case
    \usepackage[T1]{fontenc}%needed for small cap bold
\fi   

\begin{document}

\textbf{\textsc{bold small caps}}    
\end{document} 

lualatex foo.tex

This is LuaTeX, Version 0.95.0 (TeX Live 2016) 
 restricted system commands enabled.
(./foo.tex
LaTeX2e <2016/03/31> patch level 2
....
(/usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))

LaTeX Font Warning: Font shape `T1/lmr/bx/sc' undefined
(Font)              using `T1/lmr/bx/n' instead on input line 13.

[1{/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./foo.aux)

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

)
...
/texmf-dist/fonts/type1/public/lm/lmr10.pfb>
Output written on foo.pdf (1 page, 39002 bytes).
Transcript written on foo.log.

2016 年

答案1

认为需要特定的字体编码才能获得小型大写字母是完全错误的。

问题是 CM Unicode 包含粗体小型大写字母,但是(其他推荐的)拉丁现代字母却不包含。

因此您需要的是 cm unicode 而不是 latin modern(这是 fontspec 的默认设置)

在此处输入图片描述

\documentclass[11pt]{article}


    \usepackage[tuenc]{fontspec}%for lualatex case

\setmainfont{CMU Serif}

\begin{document}

  not bold or caps

\textsc{small caps}    

\textbf{\textsc{bold small caps}}

\textbf{bold}

\end{document} 

相关内容