私は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
、この組み合わせは Latin Modern フォントでは使用できないため、太字のスモールキャップスは得られません。
\documentclass{article}
\begin{document}
Straße Wrocław
\textbf{\textsc{Abc}}
\end{document}
最初の単語は意図したとおりにタイプセットされましたが、太字の小文字はありません。
代わりに、Latin Modern と本質的に区別がつかない New Computer Modern を使用できます。
\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
Latin Modern はデフォルトの lualatex フォントなので、このパッケージは必要ありませんlmodern
。太字のスモールキャップはありませんが、Computer Modern Unicode のフォント ファミリを定義して、スモールキャップが必要な場所でそれを使用することができます。
また、lualatex と一緒に使用しないでください\usepackage[T1]{fontenc}
。
\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}