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}