首页 文章

在乳胶文档中编写代码

提问于
浏览
335

如何在乳胶文档中插入代码?是否有类似的东西:

\begin{code}
...
\end{code}

我真正需要的唯一东西是缩进和固定宽度字体 . 语法高亮可能很好,虽然它绝对不是必需的 .

7 回答

  • 96

    使用Listings包 .

    LaTeX标头的简单配置(在 \begin{document} 之前):

    \usepackage{listings}
    \usepackage{color}
    
    \definecolor{dkgreen}{rgb}{0,0.6,0}
    \definecolor{gray}{rgb}{0.5,0.5,0.5}
    \definecolor{mauve}{rgb}{0.58,0,0.82}
    
    \lstset{frame=tb,
      language=Java,
      aboveskip=3mm,
      belowskip=3mm,
      showstringspaces=false,
      columns=flexible,
      basicstyle={\small\ttfamily},
      numbers=none,
      numberstyle=\tiny\color{gray},
      keywordstyle=\color{blue},
      commentstyle=\color{dkgreen},
      stringstyle=\color{mauve},
      breaklines=true,
      breakatwhitespace=true,
      tabsize=3
    }
    

    您可以使用 \lstset{language=Java} 更改文档中间的默认语言 .

    文档中的用法示例:

    \begin{lstlisting}
    // Hello.java
    import javax.swing.JApplet;
    import java.awt.Graphics;
    
    public class Hello extends JApplet {
        public void paintComponent(Graphics g) {
            g.drawString("Hello, world!", 65, 95);
        }    
    }
    \end{lstlisting}
    

    这是结果:

    Example image

  • 29

    您也可以使用逐字环境

    \begin{verbatim}
    your
    code
    example
    \end{verbatim}
    
  • 3

    这是一个老问题,但我注意到没有人说过如何添加内联代码 .

    您可以使用 {\tt code }\texttt{ code } 添加内联代码 . 如果要格式化内联代码,那么最好自己创建命令

    \newcommand{\code}[1]{\texttt{#1}}
    

    另请注意,可以使用其他文件加载代码块

    \lstinputlisting[breaklines]{source.c}
    

    breaklines isn 't required, but I find it useful. Be aware that you' ll必须为此指定 \usepackage{ listings } .

  • 122

    minted等专用软件包依赖于Pygments进行格式化,与 listings 软件包相比具有各种优势 . 引用 minted 手册,

    与传统包相比,Pygments提供了更优越的语法突出显示 . 例如,列表基本上只突出显示字符串,注释和关键字 . 另一方面,Pygments可以完全自定义,以突出显示源语言可能支持的任何令牌类型 . 这可能包括字符串,数字,不同类型的标识符和HTML标记等外来结构中的特殊格式序列 .

  • 524

    使用Minted .

    它是一个使用功能强大的Pygments库在LaTeX中提供富有表现力的语法高亮显示的软件包 . 该软件包还提供了使用fancyvrb自定义突出显示的源代码输出的选项 .

    它比任何其他包更加进化和可定制!

  • 3

    使用Pygments

  • 10

    由于此处尚未提及,因此可能需要再添加一个选项,包spverbatim(无语法高亮显示):

    \documentclass{article}
    \usepackage{spverbatim}
    
    \begin{document}
    
    \begin{spverbatim}
      Your code here
    \end{spverbatim}
    
    \end{document}
    

    此外,如果不需要语法高亮,则包alltt

    \documentclass{article}
    \usepackage{alltt}
    
    \begin{document}
    
    \begin{alltt}
      Your code here
    \end{alltt}
    
    \end{document}
    

相关问题