更改整个文档的斜体字体颜色

更改整个文档的斜体字体颜色

我希望在我的 latex 文件中看到以下内容:一旦我使用该\textit{...}命令,我希望看到此文本不仅获得斜体字体,而且还获得蓝色。我想将其应用于整个文档。我不必为应该获得此字体的每个文本部分指定它,有没有办法可以在文档的开头指定它,以便将其应用于整个文档?基本上我想更改命令的默认属性\textit{...}

答案1

使用 (Xe|Lua)LaTeX 可以很容易地做到这一点:

\documentclass{article}

\usepackage{fontspec}
\usepackage{xcolor}

\setmainfont{Latin Modern Roman}[
  ItalicFeatures={Color=blue},
]

\begin{document}

Some text \emph{emphasized} and \textit{in italic}.

\end{document}

在此处输入图片描述

pdflatex有点复杂:

\documentclass{article}

\usepackage{xcolor}

\makeatletter
\DeclareRobustCommand{\itshape}{%
  \not@math@alphabet\itshape\mathit
  \fontshape\itdefault\selectfont
  \color{blue}%
}
\makeatother

\begin{document}

Some text \emph{emphasized} and \textit{in italic}.

\end{document}

但请注意不要\itshape在段落之间使用。

答案2

这是一个名为 的命令\coloremph,它基于 ,\emph允许用颜色渲染强调的材料。默认颜色是blue,但可以通过在 的可选参数中提供不同的颜色来覆盖它\coloremph

通过此设置,任何“内部”强调材料都将以直立字体形状呈现,但具有周围强调材料的颜色。取消注释该指令

%\renewcommand\eminnershape{\upshape\color{black}} % optional

如果您希望内部强调的内容以黑色排版。

这是完整的 MWE(最小工作示例):

\documentclass{article}
\usepackage[dvipsnames,svgnames,x11names]{xcolor} % for lots of predefined color names
\newcommand\coloremph[2][blue]{\textcolor{#1}{\emph{#2}}}
%\renewcommand\eminnershape{\upshape\color{black}} % optional

\begin{document}
Hello, World.

\coloremph{Once upon a \emph{very strange} time, \dots}

\coloremph[Coral3]{Once upon a \emph{very strange} time, \dots}

\coloremph[MediumPurple]{Once upon a \emph{very strange} time, \dots}

Hello World.
\end{document}

相关内容