如何将系统默认图形设置为衬线图形,同时将文本图形保留为旧式图形?

如何将系统默认图形设置为衬线图形,同时将文本图形保留为旧式图形?

我正在使用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}

有结果

在此处输入图片描述

相关内容