呼叫Baskervald套件後如何呼叫羅馬家族字體?

呼叫Baskervald套件後如何呼叫羅馬家族字體?

據我了解,當呼叫basketvald包時,Roman 系列預設值將更改為 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

如果您想多次使用電腦現代羅馬字體(而不是一次性使用),您可能更願意定義類似於預設字體更改命令的命令。例如,

\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}

客艙、巴斯克瓦爾德和 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}

在此輸入影像描述

相關內容