在逐字环境中更改文本片段的颜色

在逐字环境中更改文本片段的颜色

是否可以改变逐字环境中部分文本的颜色?

假设我有这个逐字部分。我想将标记线的颜色更改为蓝色。

\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}

相关内容