如何对同一种列表语言使用两种样式?

如何对同一种列表语言使用两种样式?

目前,我为列表语言定义了两个全局选项:colormonochrome(我已将该语言捆绑为一个包,因此这些是包选项)。但是,现在我发现我想使用monochrome内联列表选项和color多行列表选项。

我浏览了列表包文档,似乎可以使用方言来实现此功能,但是,我不确定这是否是解决问题最语义正确的方法。

以下是我的 mwe 文件,以了解其当前的工作方式:

\documentclass[12pt]{article}

\usepackage[UKenglish]{babel}
\usepackage{verbatim}
\usepackage{pstricks,pst-node}
\usepackage{fancyvrb}
\usepackage[fancyvrb]{listings}
\usepackage[T1]{fontenc} %for " quote
\usepackage{color}
\usepackage[color]{mweisabelle}

\begin{document}



 \begin{lstlisting}[language=Isar, mathescape = true]{}   
assume "a \<rightarrow> b"
 \end{lstlisting}
 
 This statement should be black \Icode!assume!.
\end{document}

和包

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{isabella}[for easy Isabelle syntax]

\RequirePackage{color}
\RequirePackage{verbatim}
\RequirePackage{pstricks,pst-node}
\RequirePackage{fancyvrb}
\RequirePackage[fancyvrb]{listings}
\RequirePackage{textcomp} %for ' quote
\RequirePackage[T1]{fontenc} %for " quote
\RequirePackage{stmaryrd} % for rbrakk
\RequirePackage{upquote}

%% black and white option
\DeclareOption{monochrome}{
\definecolor{NULL}{rgb}{0.0,0.0,0.0}
\definecolor{KEYWORD}{rgb}{0.0,0.0,0.0}
}

%% colour option
\DeclareOption{color}{
\definecolor{NULL}{rgb}{0.0,0.0,0.0}
\definecolor{KEYWORD}{rgb}{0.0,0.0,1}
}

\ExecuteOptions{monochrome, document}

\ProcessOptions\relax

      
\lstdefinelanguage{Isar}%
{    keywords=[1]{
        assume,obtain,show,fix
    },
        keywordstyle=[1]\color{KEYWORD}\bfseries,
            stringstyle=\color{black},
      moredelim = [s][stringstyle]{"}{"},
        literate=
                {\\<not>}{{$\neg$}}1 {\\<times>}{{$×$}}1   
                {\\<rightarrow>}{{$\rightarrow\ $}}1%
  }[keywords,comments,strings]%

% useful defaults
\lstset{
  basicstyle=\sffamily
}
\newcommand{\Icode}{\lstinline[{language=Isar}]}

答案1

我意识到可以在内联列表命令声明中编辑关键字样式,例如

\newcommand{\Icode}{\lstinline[{language=Isar,keywordstyle=[1]\color{black}]}

如果设置为黑色,则会覆盖之前的颜色。因此,内联列表(或我想要的任何单个列表)可以具有不同的文本颜色或样式。由于这不使用该monochrome选项,因此这可能不是最通用的解决方案,但它适合我最初的目的。

相关内容