LaTeX实战经验:如何插入程序代码

版权声明:本文为博主原创文章,如若转载请注明原文地址。 https://blog.csdn.net/simple_the_best/article/details/52710830

>> 点击此处查看 【 LaTeX实战经验:新手须知 】

插入程序代码

传统一点, \usepackage{listings}, 详情可以使用texdoc listings查看。

\lstset{language=C}
\begin{lstlisting}
#include <iostream>
using namespace std;

int main()
{
    cout<<"hello"<<endl;
    return 0;
}
\end{lstlisting}

对效果进行一些定制:

\usepackage{listings}
\usepackage{xcolor}
\lstset{
    numbers=left, 
    numberstyle= \tiny, 
    keywordstyle= \color{ blue!70},
    commentstyle= \color{red!50!green!50!blue!50}, 
    frame=shadowbox, % 阴影效果
    rulesepcolor= \color{ red!20!green!20!blue!20} ,
    escapeinside=``, % 英文分号中可写入中文
    xleftmargin=2em,xrightmargin=2em, aboveskip=1em,
    framexleftmargin=2em
} 

效果:

这里写图片描述

mac 定制代码字体

%!TEX program = xelatex
\documentclass{article}
\usepackage{listings}
\usepackage{fontspec} % 定制字体
\newfontfamily\menlo{Menlo}
\usepackage{xcolor} % 定制颜色
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{ %
backgroundcolor=\color{white},      % choose the background color
basicstyle=\footnotesize\ttfamily,  % size of fonts used for the code
columns=fullflexible,
tabsize=4,
breaklines=true,               % automatic line breaking only at whitespace
captionpos=b,                  % sets the caption-position to bottom
commentstyle=\color{mygreen},  % comment style
escapeinside={\%*}{*)},        % if you want to add LaTeX within your code
keywordstyle=\color{blue},     % keyword style
stringstyle=\color{mymauve}\ttfamily,  % string literal style
frame=single,
rulesepcolor=\color{red!20!green!20!blue!20},
% identifierstyle=\color{red},
language=c++,
}
\begin{document}
\begin{lstlisting}[language={[ANSI]C},
        numbers=left,
        numberstyle=\tiny\menlo,
        basicstyle=\small\menlo]
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>

#define SIZE 26

int
main (int argc, char *argv[])
{
  int array[SIZE];
  int i;
  char c;

  for (i = 0; i < SIZE; i++)
    array[i] = 0;

  while ((c = getchar ()) != EOF)
    {
      if (isupper (c))
        {
          array[c - 'A']++;
        }
    }
  for (i = 0; i < 26; i++)
    printf ("%c:%5d\n", (char) ('A' + i), array[i]);

  return 0;
}
\end{lstlisting}
\end{document}
% Local Variables:
% TeX-engine: xetex
% End:

效果图:
这里写图片描述

参考:https://www.zhihu.com/question/30957600

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页