如何在调用 Baskervald 包后调用罗马系列字体?

如何在调用 Baskervald 包后调用罗马系列字体?

据我所知,当调用该basketvald包时,罗马字体系列的默认字体将更改为 baskervald。因此,可以使用以下命令调用 baskervald 字体\rmfamily

在下面的 MWE 中,我也调用了cabin;因此,我用\sffamily---调用这个字体

\documentclass[12pt]{book}
\usepackage{lipsum}

\usepackage[T1]{fontenc}
\usepackage{cabin}
\usepackage{baskervald}

\begin{document}
\thispagestyle{empty}

\sffamily
\lipsum[1]
\vspace{10pt}
\rmfamily
\lipsum[2]
\vspace{10pt}

% % How to display the next paragraph in "real" Roman font---
\lipsum[2]
\end{document}

产生了三个段落:

在此处输入图片描述

问题:现在默认rmfamily字体已设置为 baskervald,我如何以“真实”罗马系列(原始默认)字体显示第三段落?

谢谢。

答案1

您可以(暂时)将 Computer Modern Roman (cmr) 更新为\rmdefault,然后通过 调用它\renewcommand\rmdefault{cmr}\rmfamily

\documentclass[12pt]{book}
\usepackage{lipsum}

\usepackage[T1]{fontenc}
\usepackage{cabin}
\usepackage{baskervald}

\begin{document}
\thispagestyle{empty}
\sffamily
\lipsum[1]

\vspace{10pt}
\rmfamily
\lipsum[1]

\vspace{10pt}
% % How to display the next paragraph in "real" Roman font---
{\renewcommand\rmdefault{cmr}\rmfamily
\lipsum[1]}
\end{document}

在此处输入图片描述

答案2

如果您想多次使用 Computer Modern Roman --- 而不是一次性使用 --- 您可能更愿意定义类似于默认字体更改命令的命令。例如,

\documentclass[12pt]{book}
\usepackage{lipsum}

\usepackage[T1]{fontenc}
\usepackage{cabin}
\usepackage{baskervald}
\DeclareRobustCommand{\cmrfamily}{%
  \fontfamily{cmr}%
  \selectfont}
\DeclareTextFontCommand{\textcmr}{\cmrfamily}

\begin{document}
\thispagestyle{empty}

\sffamily
\lipsum[1]
\vspace{10pt}
\rmfamily
\lipsum[2]
\vspace{10pt}

Hello! \textcmr{Hello!}

% % How to display the next paragraph in "real" Roman font---
\cmrfamily
\lipsum[2]

\rmfamily
Back to Baskervald.
\end{document}

Cabin、Baskervald 和 CMR

然而,请考虑一下您是否真的需要这样做。除非您有特殊原因这样做,否则包含这种字体混合的文档会更差。太多不同的字体不利于排版。

当然,如果您正在排版一本字体样本书或撰写一篇关于 Cabin、Baskervald 和 CMR 之间差异的文章,那么这显然是非常不同的。但除此之外,请考虑使用您想要的字体是否明智!

答案3

没有“真正的”字体。但是,如果用户(或文档类)没有选择其他字体,LaTeX 会提供 Computer Modern 作为默认字体,因为不提供字体会导致文档为空(TeX\nullfont有一个没有字符的默认字体)。

众所周知,默认的罗马字体系列有符号名称cmr,而默认的无衬线字体系列是cmss。但您甚至不需要知道它:只需在选择新字体之前保存它们即可。

\documentclass[12pt]{book}
\usepackage[T1]{fontenc}

% save the default family name before changing it
\NewCommandCopy{\rmstandard}{\rmdefault}
\NewCommandCopy{\sfstandard}{\sfdefault}

\usepackage{cabin}
\usepackage{baskervald}

\usepackage{lipsum}

\NewDocumentCommand{\stdrmfamily}{}{\fontfamily{\rmstandard}\selectfont}
\DeclareTextFontCommand{\textstdrm}{\stdrmfamily}
\NewDocumentCommand{\stdsffamily}{}{\fontfamily{\sfstandard}\selectfont}
\DeclareTextFontCommand{\textstdsf}{\stdsffamily}

\begin{document}

Abc\textsf{Abc}\textstdrm{Abc}\textstdsf{Abc}

\vspace{10pt}

\sffamily
\lipsum[1][1-4]

\vspace{10pt}

\rmfamily
\lipsum[1][1-4]

\vspace{10pt}

\stdrmfamily
\lipsum[1][1-4]

\vspace{10pt}

\stdsffamily
\lipsum[1][1-4]

\end{document}

在此处输入图片描述

相关内容