我正在使用 lmodern 包编写文档,我需要重新定义所有部分,以便将其加粗并采用小写字母。我无法将 lmodern 字体更改为其他字体,包括粗体小写字母和类似技巧
\usepackage{lmodern}
\usepackage{fontspec}
\usepackage[T1]{fontenc}
{\fontfamily{cmr}\textsc{\textbf{Hello World}}}
当我定义时,在 Lualatex 中似乎不起作用:
\titleformat{\section}[hang]{\centering\fontfamily{cmr}\large\textsc\textbf}{\Roman{section}.}{2ex}{}[]
有没有办法让所有部分都变成粗体和小型大写,同时保留 lmodern 包来保留文档的其余部分?
答案1
该lmodern
软件包与 不兼容fontspec
。而且lmodern
实际上与 LuaLaTeX 也不兼容。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
Straße
Wrocław
\end{document}
使用 LuaLaTeX 编译得到
但是,如果删除lmodern
和fontenc
,则不会得到粗体小型大写字母,因为拉丁现代字体中没有这种组合。
\documentclass{article}
\begin{document}
Straße Wrocław
\textbf{\textsc{Abc}}
\end{document}
现在,第一个单词的排版与预期一致,但没有粗体小写字母。
您也可以使用新计算机现代语,它与拉丁现代语本质上没有区别。
\documentclass{article}
\usepackage{fontsetup}
\usepackage{titlesec}
\titleformat{\section}[hang]
{\filcenter\large\scshape\bfseries}
{\Roman{section}.}
{1em}
{}
\begin{document}
\section{Straße Wrocław}
\textbf{\textsc{Abc}}
\end{document}
答案2
您不需要该lmodern
软件包,因为 Latin Modern 是默认的 lualatex 字体。它没有粗体小写字母,但您可以为 Computer Modern Unicode 定义一个字体系列,并在需要小写字母的地方使用它。
您也永远不应该\usepackage[T1]{fontenc}
与 lualatex 一起使用。
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\cmu{CMU Serif}
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\cmu\Large\bfseries\scshape}}
%%%%%% %%%%%%%%%%x
\makeatother
\begin{document}
{\cmu \textsc{Abc Def} \textsc{\bfseries Abc Def}}
\section{Caps and Small Caps}
xxx
\end{document}