使用 lmodern 默认包在所有部分使用粗体小写字母

使用 lmodern 默认包在所有部分使用粗体小写字母

我正在使用 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 编译得到

在此处输入图片描述

但是,如果删除lmodernfontenc,则不会得到粗体小型大写字母,因为拉丁现代字体中没有这种组合。

\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}

相关内容