понедельник, 6 октября 2014 г.

Оформление исходного кода в LaTeX

Для оформления исходного кода в LaTeX можно воспользоваться пакетом listings.

$ cat main.tex
%!TEX TS-program = xelatex

\documentclass[a4paper,12pt]{article}

\usepackage[english,russian]{babel}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX},Renderer=Basic}
\setmainfont[Ligatures={TeX,Historic}]{Times New Roman}
\setsansfont{Arial}
\setmonofont{Courier New}

% подключаем пакеты
\usepackage{listings}
\usepackage{color}

% определяем цвета
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

% параметры стиля
\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\footnotesize,
    breakatwhitespace=false, 
    breaklines=true,
    captionpos=b,
    keepspaces=true, 
    numbers=left,
    numbersep=5pt,  % номера строк
    showspaces=false, % не показывать пробелы
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

% применяем стиль
\lstset{style=mystyle}
% используем заданный нами моноширинный шрифт
\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}

\begin{document}
...
\input{code.tex}
\end{document}

$ cat code.tex
\lstinputlisting[language=C++]{code/rezdata.h}
\lstinputlisting[language=C++]{code/stdafx.h}

Результат:

Подробнее тут.

Комментариев нет: