“屏幕会话”的列表语言

“屏幕会话”的列表语言

我正在编写一组关于一些基于命令行的工具的教程文档。本教程需要显示“屏幕会话”。内容如下:

$ git status
# on branch "master"

我希望能够:

  1. 用特定颜色标记 shell 提示符(我总是使用开头的 $ 来表示我在提示符上)
  2. 使用不同的颜色识别命令输出
  3. 识别 shell 命令中的关键字

我查看了该listings包,它似乎在正确的路径上,但我找不到产生这种输出的方法。我看到了有关如何为 listings 包生成不同“语言”的文档,但我无法解决这个问题,因为我找不到太多文档。

此类“语言”规范是否有公开的实现?如果没有,您能给我一些关于如何定义的提示吗?

答案1

这可能会回答您的一些问题。对于提示,您可以使用选项literate。显示了两种为输出着色的方法。第一种方法不是很好,但它可以完成非常简短和简单的输出。另一种方法是定义输出环境。两者的结果是不同的:使用转义字符时,您将离开列表模式,并且字母之间的间距不一样。请参见下面红色的输出文本。

\documentclass{minimal}

\usepackage{listings}
\usepackage{xcolor}

\lstnewenvironment{code}
    {\lstset{%
        basicstyle=\ttfamily,
        escapechar=~,
        morekeywords={foo,bar},
        keywordstyle=\color{green},
        literate={\$}{{\textcolor{blue}{\$}}}1}
    }
    {}

\lstnewenvironment{codeoutput}
    {\lstset{basicstyle=\ttfamily\color{red}}}
    {}

\begin{document}

\begin{code}
$ git status
# on branch "master"
foo in bar is blah

for short output
~\color{red}This is output\color{black}~
\end{code}

\begin{codeoutput}
This is output
\end{codeoutput}

\end{document}

输出为

输出

答案2

我将发布我最初为 ActionScript 所做的设置:

\lstdefinelanguage{ActionScript} { %this is the name that you are going to use when you want to use the formatting
    basicstyle=\ttfamily\scriptsize, %font family & size
    sensitive=true, %if you want your keywords to be case sensitive
    morestring=[b]",   
    %morestring: if single quotes open and close string or character literals in 
    %the same way as double quotes do in the example.
    morecomment=[l][\color{flashgreen}\ttfamily]{//}, 
    %morecomment has to do with comments in the text, read about them in the documentation
    morecomment=[s][\color{flashgreen}\ttfamily]{/*}{*/},
    morecomment=[s][\color{flashgreen}\ttfamily]{/**}{*/},
    stringstyle=\color{flashred}, %string style (red in this case)
    commentstyle=\color{flashgreen}, %comment style
    showstringspaces=false, %the following are well documented in the listings docs
    numberstyle=\scriptsize, %you can include almost any standard settings that you can efine in 
    numberblanklines=true,
    showspaces=false,
    showtabs=false,        
    emph =
    {[1]
            here, you, define, your, keywords, separated, by, commas, even, the, last,
            one,
    },
    emphstyle={[1]\color{flashblue}\textbf}, %set the style of these keywords
    emph = 
    {[2]
        %more keywords with different style
    },
    emphstyle={[2]\color{flashlblue}\textbf}
}

如果有任何不清楚的地方请直接询问,我会尽力帮助您。

答案3

我可以推荐铸造使用包色素

\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{bash}
$ git status
# on branch "master"
foo in bar is blah

for short output
$ for i in `seq 2`; do 
for> echo "Test \"number\" ${i}  {}";
done
Test "number" 1  {}
Test "number" 2  {}
\end{minted}
\end{document}

在此处输入图片描述

相关内容