我如何确保所有电传打字机/等宽文本都具有特定的颜色?

我如何确保所有电传打字机/等宽文本都具有特定的颜色?

我正在尝试添加一些等宽文本,我希望它的颜色与普通文本不同。将会有多个(即数百个)等宽文本实例,我希望它们全部采用特定的颜色。我对 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但将字体改为红色”。

相关内容