LaTeX 的 Ruby 荧光笔

LaTeX 的 Ruby 荧光笔

我正在寻找一个可以在 LaTeX 中高亮显示 ruby​​ 源代码的包。我找到了这个主题:https://stackoverflow.com/questions/1966425/source-code-highlighting-in-latex

但它是 2009 年的,我想知道是否有更好的解决方案。我无法minted在 Mac 上工作。也许有人知道更好、更简单的解决方案。我目前正在玩

\begin{lstlisting}[
    label=listing:RubyTest,
    float=h,
    caption=test.rb,
    firstnumber=1,
    language=Ruby
]
a = 5
b = a * 5
puts b
puts b + 3

class Test < Test::SomeClass
@test = 3
    def bar
        if foo
            puts "foo"
        else
            puts "bar
        end
    end
end
\end{lstlisting}

但它只是被格式化而没有任何颜色。

答案1

要在代码列表中包含颜色,您必须使用命令指定所需的颜色\lstset,如下面的代码所示:

\documentclass[]{minimal}

\usepackage[dvipsnames]{xcolor}

\usepackage{listings}
\lstloadlanguages{Ruby}
\lstset{%
basicstyle=\ttfamily\color{black},
commentstyle = \ttfamily\color{red},
keywordstyle=\ttfamily\color{blue},
stringstyle=\color{orange}}

\begin{document}

\begin{lstlisting}[language=Ruby]

#this is a comment

a = 5
b = a * 5
puts b
puts b + 3

class Test < Test::SomeClass
@test = 3
    def bar
        if foo
            puts "foo"
        else
            puts "bar"
        end
    end
end
\end{lstlisting}

\end{document}

至于minted软件包,您还必须安装PygmentsTeX 外部的 。安装完成后,minted即可正常工作。

添加:我的解决方案和 Mike Renfro 的解决方案的区别在于颜色信息给出的位置。当您使用不同的格式并且经常更改设置时,Mike 的解决方案是最好的。如果您总是想在整个文档中使用相同的(颜色)设置(即使可能使用不同的编程语言),我写的解决方案是最好的。您可以将两者混合使用:设置一些全局选项,偶尔为特定代码列表使用其他选项。

答案2

您缺少 listings 包的各种样式选项(以及 bar 上的结束引号)。您可能还需要 color 包,除非它是通过其他包加载的。要获取最简单的示例,请尝试

\documentclass{article}
\usepackage[english]{babel}
\usepackage{xcolor,listings}

\begin{document}

\begin{lstlisting}[
    label=listing:RubyTest,
    float=h,
    caption=test.rb,
    firstnumber=1,
    language=Ruby,
    basicstyle=\ttfamily,
    keywordstyle=\color{red},
    stringstyle=\color{blue},
]
a = 5
b = a * 5
puts b
puts b + 3

class Test < Test::SomeClass
@test = 3
    def bar
        if foo
            puts "foo"
        else
            puts "bar"
        end
    end
end
\end{lstlisting}

\end{document}

得到以下结果

在此处输入图片描述

答案3

对我来说最好的是 pygmentize (python 库)

作为输出,您可以设置乳胶文件,输入例如 ruby​​ 或任何其他内容,您将获得漂亮的彩色代码。

相关内容