正文中仅使用旧式数字,其他情况使用内衬数字

正文中仅使用旧式数字,其他情况使用内衬数字

我的主要字体编号设置为OldStyle。我该如何设置Lining numbers

  • 标题(章节、节、小节等...),
  • 开始枚举,
  • 页码,以及
  • 脚注编号(但不是脚注本身)?


梅威瑟:

\documentclass{article}

\usepackage{fontspec}
\usepackage{enumerate}
\usepackage{biblatex}

\setmainfont[Scale=1.0,Numbers={OldStyle,Proportional},Ligatures=TeX]{Minion Pro}

\begin{document}

\section{Section}
Text with numbers; 123 456 seven \& eight.

\begin{enumerate}
\item Item1 with footnote.\footcite{001}
\end{enumerate}

\end{document}


电流输出:
电流输出 笔记:

  1. 忽略实际脚注尚未正确编译。
  2. 这是我的第一篇帖子;如果不符合指南,我深表歉意。如果有任何错误,请告诉我,我会记下来以供将来参考。

答案1

定义一个具有相同字体名称的字体系列,但使用Numbers=Lining选项并更改所有需要衬线数字的地方。

我不认为你真的我想要这个。我使用 Linux Libertine,因为我没有 Minion Pro。

\documentclass{book}

\usepackage{fontspec}
\usepackage{enumitem}
\usepackage{biblatex}
%\usepackage{etoolbox} % already loaded by biblatex

\setmainfont[Numbers={OldStyle,Proportional},Ligatures=TeX]{Linux Libertine O}
\newfontfamily{\liningmainfont}[Numbers=Lining,Ligatures=TeX]{Linux Libertine O}

\setlist[enumerate]{font=\liningmainfont}
\makeatletter
\renewcommand{\@makefnmark}{%
  \hbox{\@textsuperscript{\normalfont\liningmainfont\@thefnmark}}%
}
\renewcommand\@seccntformat[1]{{\liningmainfont\@nameuse{the#1}\quad}}
\patchcmd{\@makechapterhead}{\thechapter}{{\liningmainfont\thechapter}}{}{}
\patchcmd{\chaptermark}{\thechapter}{{\liningmainfont\thechapter}}{}{}
\patchcmd{\sectionmark}{\thesection}{{\liningmainfont\thesection}}{}{}
\patchcmd{\ps@plain}{\thepage}{{\liningmainfont\thepage}}{}{}
\patchcmd{\@oddhead}{\thepage}{{\liningmainfont\thepage}}{}{}
\patchcmd{\@evenhead}{\thepage}{{\liningmainfont\thepage}}{}{}
\makeatother

\begin{document}

\chapter{Chapter}

\section{Section}
Text with numbers; 123 456 seven \& eight.

\begin{enumerate}
\item Item1 with footnote.\footcite{001}
\end{enumerate}

\clearpage
Even page
\clearpage
Odd page

\end{document}

也许还有其他地方会出现旧式数字;遵循相同的模式:找到打印数字的命令并对其进行修补。

答案2

您可以使用命令\addfontfeature{Numbers=Lining}切换到内衬数字。在下面我定义了命令\liningnumbers

\newcommand\liningnumbers{\addfontfeature{Numbers=Lining}}

现在,它可以用作任何其他字体开关,例如\small\sffamily等。因此,现在您只需找到一种方法来更改四种情况的字体。这在很大程度上取决于您使用的类。在这里,我仅使用包对枚举进行演示enumitem

% !TEX TS-program = lualatex
\documentclass{article}

\usepackage{fontspec}
\usepackage{enumitem}

\setmainfont[Scale=1.0,Numbers={OldStyle,Proportional},Ligatures=TeX]{TeX Gyre Pagella}
\newcommand\liningnumbers{\addfontfeature{Numbers=Lining}}

\setlist[enumerate]{font=\liningnumbers}

\begin{document}

\section{Section}
Text with numbers; 123 456 seven \& eight.

\begin{enumerate}
\item 1 Item1 without footnote.
\item 2 two
\item 3 three
\end{enumerate}

\end{document}

在此处输入图片描述

相关内容