我正在使用cfr-lm
(pdf)LaTeX 中的包将文档默认图形设置为旧样式图形。但是,此包还将系统编号(例如,章节编号)设置为旧样式图形。这无法通过命令cfr-lm
、\lstyle
和\plstyle
修复\tlstyle
,因为章节编号是由处理器设置的。我如何将这些系统图形的默认图形样式切换为衬线,同时保留文本中的旧样式?
编辑:这是我的MWE:
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage~of \pageref{LastPage}}\rfoot{}
%\usepackage{sectsty} %%%This line and the next would ideally not be included
%\allsectionsfont{\sffamily\mdseries\upshape} %%%
\usepackage[rm={oldstyle=true}, sf={lining=true}]{cfr-lm}
\begin{document}
\section{First section}
123456789. As you can see, without changing the section font to sans serif, the section numbers are also being displayed in oldstyle figures.
\section{Second section}
\end{document}
编辑 2 (我的 MWE 已编辑以显示建议的修复问题):
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage~of \pageref{LastPage}}\rfoot{}
%\usepackage{sectsty} %%%This line and the next would ideally not be included
%\allsectionsfont{\sffamily\mdseries\upshape} %%%
\usepackage[rm={oldstyle=true}]{cfr-lm}
\renewcommand{\thesection}{\textl{\arabic{section}}}
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
As you can see, only the first number of the section number is changed.
\end{document}
答案1
cfr-lm
对章节编号不产生任何影响。不存在“系统图形”这种东西。章节编号和标题是使用类或包指定的字体设置的。默认情况下,它们使用文档的默认衬线系列。cfr-lm
更改此字体。如果没有,则文档的文本将是默认字体。cfr-lm
不会更改用于章节编号的字体,也不会更改用于第三节第二段的字体。也就是说,如果您加载的其他代码使用它们的默认衬线,这些可能会更改。但对于cfr-lm
这种自定义,您加载或不加载什么代码都不知道也不关心。它只是配置默认字体并加载nfssext-cfr
以方便访问各种非 NFSS 字体更改。
如果你改变了用于章节编号的数字样式,我也会改变章节标题的样式。否则,如果章节标题中有数字,看起来会很奇怪。
要做到这一点,只需调整您为包提供的定制即可sectsty
。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage~of \pageref{LastPage}}\rfoot{}
\usepackage{sectsty}
\allsectionsfont{\lstyle\upshape}
\usepackage{cfr-lm}
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
As you can see, all the numbers of in the section number are changed.
0123456789
\end{document}
答案2
您提供的选项sf
设置无衬线字体字体系列,而不是系统字体正如你所说。
为了实现您的结果,您应该使用以下方法更新部分命令\textl
:文档第 12 页中详述的字体命令cfr-lm
,以确保使用衬线图形。
关键的是:
\renewcommand{\thesection}{\textl{\arabic{section}}}
这使得内衬数字出现在章节编号中。据我所知,没有办法自动执行此操作
这里是完整的 mwe
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage~of \pageref{LastPage}}\rfoot{}
%\usepackage{sectsty} %%%This line and the next would ideally not be included
%\allsectionsfont{\sffamily\mdseries\upshape} %%%
\usepackage[rm={oldstyle=true}]{cfr-lm}
\renewcommand{\thesection}{\textl{\arabic{section}}}
\begin{document}
\section{First section}
123456789. As you can see, without changing the section font to sans serif, the section numbers are also being displayed in oldstyle figures.
\section{Second section}
\end{document}
编辑
我提供了一个更通用的解决方案,它不关心节号当前是如何定义的,并且应该适用于合成的章节编号,例如,当章节编号也是由章节编号组成时。
结果与上面相同。我选择使用字体开关lstyle
而不是\textl
,这样我们就不必用括号括住参数。
我所做的是“保存”当前章节编号呈现方式的副本(thesection
),并将字体样式应用于它
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage~of \pageref{LastPage}}\rfoot{}
%\usepackage{sectsty} %%%This line and the next would ideally not be included
%\allsectionsfont{\sffamily\mdseries\upshape} %%%
\usepackage[rm={oldstyle=true}]{cfr-lm}
\let\oldthesection\thesection
\renewcommand{\thesection}{\lstyle\oldthesection}
\begin{document}
\section{First section}
123456789. As you can see, without changing the section font to sans serif, the section numbers are also being displayed in oldstyle figures.
\section{Second section}
\end{document}
有结果