列表和粗体关键字

列表和粗体关键字

我有以下用于 SQL 排版的 MWE。对我不起作用且需要帮助的是两件事:

  1. 我想添加“SUCH AS”作为关键词(或在文本中将其加粗而不将其定义为关键词);并且
  2. 我需要“域”不要加粗,但即使我将它包含在内,它仍坚持将其排版为粗体deletekeywords。不知道那里发生了什么。

    \documentclass[border=2pt]{standalone}
    
    \usepackage{newtxtext,newtxmath} 
    \usepackage{listings}
    
    \lstset{language=SQL,basicstyle=\ttfamily,keywordstyle=\bfseries,
      showspaces=false,showstringspaces=false, 
      morekeywords={*,IF,DEFINE,OPTIONS, SERVER, MENTIONS, SUCH THAT}, 
      deletekeywords={domain}, mathescape=true, aboveskip=0pt, belowskip=6pt}
    
    \begin{document}   
    \begin{lstlisting} 
    FROM Relation SUCH THAT domain-condition 
    \end{lstlisting}
    \end{document}
    

非常感谢您的帮助。这是我排版后的结果。

在此处输入图片描述

答案1

要删除domain关键字,您必须将其拼写为大写,deletekeywords因为这是它在驱动程序文件

此外,关键字中不能出现空格。您或许可以将空格设为字母或其他字符,并据此定义关键字,但这可能会导致断字机制出现问题。

一个简单的解决方案是使用literate选项用相同的字符串替换每个文字出现的次数SUCH THAT,并应用相应的样式。

总之,新的列表设置将如下所示(修改后的选项已突出显示):

    \lstset{
        语言=SQL,
        basicstyle=\ttfamily,
        keywordstyle=\bfseries,
        显示空间=false,
        显示字符串空间=false,
        更多关键字={*,IF,DEFINE,OPTIONS,SERVER,MENTIONS},
        删除关键字={DOMAIN},
        mathescape = true,
        aboveskip=0pt,
        belowskip=6pt,
        识字={如此\ THAT}{\bfseries如此\ THAT}{9}
    }

在此处输入图片描述

相关内容