是否可以改变逐字环境中部分文本的颜色?
假设我有这个逐字部分。我想将标记线的颜色更改为蓝色。
\begin{verbatim}
BOT: (Begin of Transaction)
SQL-DML-1; // update Kunden (...)
--> (C1, C2, C3) /* MAKE THIS RED */
SET CONSTRAINTS C4 IMMEDIATE;
--> (C4) /* MAKE THIS RED */
SET CONSTRAINTS C3 DEFERRED;
SQL-DML-2; // update Produkte (...)
--> (C1, C2, C4) /* MAKE THIS RED */
SQL-DML-3; // update Bestellungen (...)
--> (C1, C7, C4) /* MAKE THIS RED */
EOT: (End of Transaction) (COMMIT) /* INSERT MATH SYMBOL HERE */
--> (C3, C5, C6) /* MAKE THIS RED */
RBT: Roll-Back-Transaction (alles rückgängig gemacht)
\end{verbatim}
此外,是否可以在逐字环境中制作数学符号?我知道这本身是矛盾的,但也许有一种办法可以解决这个问题。
答案1
fancyvrb
可以非常轻松地完成此操作。要进行数学运算,只需为所有需要的特殊数学字符提供相应的 catcode。此外,您必须避免在数学模式下使用任何空格,因为它们将被逐字解释。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\usepackage{color}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`$=3\catcode`^=7\catcode`_=8}]
BOT: (Begin of Transaction)
SQL-DML-1; // update Kunden (...)
\color{red} --> (C1, C2, C3) /* MAKE THIS RED */
SET CONSTRAINTS C4 IMMEDIATE;
\color{red} --> (C4) /* MAKE THIS RED */
SET CONSTRAINTS C3 DEFERRED;
SQL-DML-2; // update Produkte (...)
\color{red} --> (C1, C2, C4) /* MAKE THIS RED */
SQL-DML-3; // update Bestellungen (...)
\color{red} --> (C1, C7, C4) /* MAKE THIS RED */
EOT: (End of Transaction) (COMMIT) /* INSERT MATH SYMBOL HERE $f(x)=x_a^2$ */
\color{red} --> (C3, C5, C6) /* MAKE THIS RED */
RBT: Roll-Back-Transaction (alles rückgängig gemacht)
\end{Verbatim}
\end{document}