如何使用 itshape 处理不同的字体

如何使用 itshape 处理不同的字体

\itshape或 的结果\textit{}是文档中主字体的斜体。如果我为不同的环境设置了其他字体,我可以通过\fooitalics的定义使用 来访问它们的斜体\newfontfamily{\fooitalics}[Path]{someitalics.ttf}。但是,如何在设计为可在具有不同环境特定字体的不同环境中使用的新命令中使用斜体字体?

例如,我想要一个新命令\qqit使用双引号符号并使文本变为斜体,如果我将其定义为\newcommand{\qqit}[1]{{\itshape\qq{#1}}},那么它在使用主字体的环境中有效,但不适用于使用其他字体的其他环境。

\usepackage{xeCJK}
\usepackage[T1]{fontenc}
\usepackage{domitian}  % for the main font
\newfontfamily{\notefont}[Path=./fonts/]{LinBiolinum.ttf}  % for note environment
\newfontfamily{\notefontitalic}[Path=./fonts/]{LinBiolinum_Italic.ttf}
\usepackage[most, minted]{tcolorbox}
\usepackage{changepage}
\tcolorboxenvironment{note}{blanker, breakable, before skip=6pt,after skip=16pt, borderline west={1mm}{0pt}{myblue}}
    \newenvironment{note}{\begin{adjustwidth}{3mm}{0mm}}{\end{adjustwidth}}

\usepackage{textcmds}  % qq for double quotes
\newcommand{\qqit}[1]{{\itshape\qq{#1}}} 

\begin{note}
    In this note, the \qqit{notefont} is used.
\end{note}
In this paragraph, the \qqit{main font} is used.

在此处输入图片描述

第一个“notefont”不是斜体,因为在该环境中不使用主字体。

如果我将命令更改为\newcommand{\qqit}[1]{{\notefontitalic\qq{#1}}},那么它会使用“主字体”斜体以外的“notefont_italic.ttf”作为“主字体”: 在此处输入图片描述

答案1

您不应该\usepackage{domitian}一开始就使用 XeLaTeX。该字体也可用作 OpenType。

由于我已将 Linux Biolinum O 和 Domitian 都安装为系统字体,因此下面的调用可能需要根据您的设置进行调整。主要方面是您需要正确定义单身的Biolinum 的字体系列(或者,更好的是,使用\setsansfont)。

\documentclass{article}

\usepackage{xeCJK}
\usepackage[many]{tcolorbox}
\usepackage{changepage}
\usepackage{textcmds}  % qq for double quotes

\colorlet{myblue}{blue!60!green}
\tcolorboxenvironment{note}{
  blanker,
  breakable,
  before skip=6pt,
  after skip=16pt,
  borderline west={1mm}{0pt}{myblue},
}
\newenvironment{note}
  {\begin{adjustwidth}{3mm}{0mm}\notefont}
  {\end{adjustwidth}}

\newcommand{\qqit}[1]{\textit{\qq{#1}}}

\setmainfont{Domitian}

\newfontfamily{\notefont}{Linux Biolinum O}

\begin{document}

\begin{note}
In this note, the \qqit{notefont} is used.
\end{note}

In this paragraph, the \qqit{main font} is used.

\end{document}

生产说明:我minted从库中删除了它,因为我不想为 shell 转义而烦恼;我还为颜色提供了定义myblue

在此处输入图片描述

相关内容