我希望在我的 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}