我正在尝试添加一些等宽文本,我希望它的颜色与普通文本不同。将会有多个(即数百个)等宽文本实例,我希望它们全部采用特定的颜色。我对 LaTeX 还比较陌生(最近 8 个月左右才开始使用它),因此我无法提供太多研究信息。
color
到目前为止,我已经导入了包。我正在寻找具有特定颜色的所有实例,而无需\texttt
在所有实例前面输入。\verb
\color
答案1
您可以重新定义\texttt
一个可选参数,该参数允许您在必要时切换颜色,如果不需要,则坚持使用某种默认颜色。
在下面的最小示例中,\texttt[<color>]{<stuff>}
已重新定义为采用可选项<color>
(默认为black
)。
\documentclass{article}
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\let\oldtexttt\texttt% Store \texttt
\renewcommand{\texttt}[2][black]{\textcolor{#1}{\ttfamily #2}}% \texttt[<color>]{<stuff>}
\begin{document}
Here is some \texttt{monospaced} text that has
\texttt[blue]{a different colour}. You can even use
\texttt[green!30!red]{colour mixtures}.
\end{document}
指某东西的用途xcolor
允许您混合/调和颜色,而不是坚持某些固定的颜色模型。
\let\oldtexttt\texttt
如果您想将其用于其他用途,可以使用“存储”命令。对于我的示例\texttt
来说\oldtexttt
,这不是必需的,但可能会对您的较大文档产生影响。
答案2
您可以重新定义\texttt
和\verb
命令:
\documentclass{article}
\usepackage{xcolor}
\definecolor{ttcolor}{RGB}{255,110,120}
% redefinition of \texttt
\let\Oldtexttt\texttt
\renewcommand\texttt[1]{{\ttfamily\color{ttcolor}#1}}
% redefinition of \verb
\makeatletter
\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
\bgroup\color{ttcolor}
\verb@eol@error \let\do\@makeother \dospecials
\verbatim@font\@noligs
\@ifstar\@sverb\@verb}
\makeatother
\begin{document}
\texttt{test monospaced} and some normal font
\verb!test verbatim! and some normal font
\end{document}
答案3
如果你使用xelatex
或者lualatex
然后fontspec
软件包中有命令允许你指定颜色字体。例如:
\documentclass[border=10]{standalone}
\usepackage{fontspec}
\usepackage{xcolor}
\setmainfont{texgyrebonum-regular.otf}
\setmonofont[Colour=blue]{Inconsolata}
\newfontface\redverbfont[Colour=red]{Inconsolata}
\newcommand\redtt[1]{{\redverbfont #1}}
\makeatletter
\newcommand\redverb{\begingroup\let\verbatim@font=\redverbfont\let\verb@egroup=\colverb@egroup\verb} %}
\def\colverb@egroup{\global\let\verb@balance@group\@empty\egroup\endgroup}
\makeatother
\begin{document}
A surprisingly useful feature of the \texttt{fontspec} package is that it allows one to specify a colour for a font.
So by using it with the \verb+\setmonofont+ command, all monospaced text can be coloured.
It's even possible to define other \redtt{coloured monospace} using the \redverb+\newfontface+ command.
\end{document}
得出的结果为:
请注意,唯一复杂的代码是对\verb
命令进行破解,因此这\redverb
是一个特殊的“执行相同的操作,\verb
但将字体改为红色”。