在 verbatim 环境中,可以使用不同的颜色吗?例如,我想要a
正常的颜色,即黑色。但我想要b
红色。
\documentclass[]{article}
\begin{document}
\begin{verbatim}
a (black)
b (I want this letter to be red)
\end{verbatim}
\end{document}
后续问题:
Ignasi 提供的解决方案很棒。但是,有一个问题。如果我需要用非黑色的颜色逐字逐句地书写,那么它将无法工作。
\documentclass[]{article}
\usepackage{fancyvrb}
\usepackage{xcolor}
\begin{document}
I want the following to look exactly like the way I put, i.e., like an align. But it displays in one line. How to fix?
\begin{Verbatim}[commandchars=\\\{\}]
\textcolor{red}{
a = b + 1
= x + y
= s + t
= c - d
= o * p
}
\end{Verbatim}
\end{document}
答案1
与 flav 指出的解决方案不完全相同:
\documentclass[]{article}
\usepackage{fancyvrb}
\usepackage{xcolor}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}]
a (black)
\textcolor{red}{b} (I want this letter to be red)
\end{Verbatim}
\end{document}
注:鸣谢fancyvrb
文档
问题答案follow-up
:
要更改所有内容的颜色,verbatim
请使用彩色范围。
\documentclass[]{article}
\usepackage{fancyvrb}
\usepackage{xcolor}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}]
a (black)
\textcolor{red}{b} (I want this letter to be red)
\end{Verbatim}
{
\color{blue}%
\begin{Verbatim}[commandchars=\\\{\}]
a (black)
\textcolor{red}{b} (I want this letter to be red)
\end{Verbatim}
}
\end{document}
答案2
一种verbatimbox
方法,使用<
和>
作为红色文本的活动分隔符。通过将\vbdelim
宏作为可选参数提供给verbnobox
环境来调用。
\documentclass{article}
\usepackage{xcolor,verbatimbox}
\catcode`>=\active %
\catcode`<=\active %
\def\openesc{\color{red}}
\def\closeesc{\color{black}}
\def\vbdelim{\catcode`<=\active\catcode`>=\active%
\def<{\openesc}
\def>{\closeesc}}
\catcode`>=12 %
\catcode`<=12 %
\begin{document}
\begin{verbnobox}[\vbdelim]
a (black)
<b> (I want this letter to be <red>)
\end{verbnobox}
\end{document}
这是一个更通用的版本,其中颜色可以作为可选参数提供<
\documentclass{article}
\usepackage{xcolor,verbatimbox}
\catcode`>=\active %
\catcode`<=\active %
\newcommand\openesc[1][red]{\color{#1}}
\def\closeesc{\color{black}}
\def\vbdelim{\catcode`<=\active\catcode`>=\active%
\def<{\openesc}
\def>{\closeesc}}
\catcode`>=12 %
\catcode`<=12 %
\begin{document}
\begin{verbnobox}[\vbdelim]
a (black)
<b> (I want this letter to be <red>)
<[blue!45]c> and this one to be <[blue!45]blue!45>
\end{verbnobox}
\end{document}
答案3
如果你的verbatim
环境实际上不包含需要它的内容(即,它只是普通文本),请考虑使用环境alltt
(来自alltt
):
包
alltt
定义了alltt
环境,它与环境类似,verbatim
只是\
和括号具有其通常含义。因此,其他命令和环境可以出现在alltt
环境中。
\documentclass{article}
\usepackage{alltt,xcolor}
\begin{document}
\begin{alltt}
a (black)
\textcolor{red}{b} (I want this letter to be red)
\end{alltt}
\end{document}
答案4
如果你想全部逐字文本在您的文档中,您可以使用包重新定义序言中的命令newverbs
\usepackage{newverbs}
% etc
\renewenvironment{verbatim}
{\semiverbatim\color{red}}
{\endsemiverbatim}
\renewcommand{\verb}{\collectverb{\color{red}}}
(以红色为例)