Латекс + импорт исходного кода

Я использую Латекс для записи распечатке программ всего моего кода, и я следую за этим:

http://texblog.wordpress.com/2008/04/02/include-source-code-in-latex-with-listings/

Это работает, но мои выполнения кода стороны страницы. Как я могу зафиксировать это? Дополнительный вопрос: Как я могу заставить это выделять синтаксис? Мне действительно устанавливали Ленга на Java.

5
задан Tobias Kienzler 7 March 2019 в 12:01
поделиться

5 ответов

Попробуйте что-нибудь вроде этого:

\documentclass{article}

\usepackage{listings}
\usepackage{color}
\usepackage{textcomp}
\definecolor{listinggray}{gray}{0.9}
\definecolor{lbcolor}{rgb}{0.9,0.9,0.9}
\lstset{
    language=c,
    basicstyle=\scriptsize,
    upquote=true,
    aboveskip={1.5\baselineskip},
    columns=fullflexible,
    showstringspaces=false,
    extendedchars=true,
    breaklines=true,
    showtabs=false,
    showspaces=false,
    showstringspaces=false,
    identifierstyle=\ttfamily,
    keywordstyle=\color[rgb]{0,0,1},
    commentstyle=\color[rgb]{0.133,0.545,0.133},
    stringstyle=\color[rgb]{0.627,0.126,0.941},
}

\begin{document}

\begin{lstlisting}

#include <stdio.h>

int main() 
{
    // A line comment
    printf("A really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, REALLY long line. && & \n");
    return 0;
}

\end{lstlisting}

\end{document}

, что даст:

альтернативный текст http://img260.imageshack.us/img260/1608/codes. png

9
ответ дан 18 December 2019 в 10:42
поделиться

Вы хотите включить разрыв строки с помощью

\lstset{breaklines=true} 

в параметрах команды. Возможно, вам не понравится его выбор, но это другой вопрос.

2
ответ дан 18 December 2019 в 10:42
поделиться

Вместо того, чтобы напрямую включать источник, включите его из файла:

\lstinputlisting{/Volumes/docs/p2k_files_in_qt.sh}

Вы сэкономите много работы, сделав это таким образом. В качестве альтернативы, если вам нужно включить исходный код в файл, есть lgrind .

\lstset{ %
language=C,                             % choose the language of the code
basicstyle=\footnotesize,       % the size of the fonts that are used for the code
numbers=left,                   % where to put the line-numbers
numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
stepnumber=1,                   % the step between two line-numbers. If it's 1 each line will be numbered
numbersep=5pt,                  % how far the line-numbers are from the code
%backgroundcolor=\color{Blue},  % choose the background color. You must add \usepackage{color}
showspaces=false,               % show spaces adding particular underscores
showstringspaces=false,         % underline spaces within strings
showtabs=false,                 % show tabs within strings adding particular underscores
frame=single,                   % adds a frame around the code
tabsize=2,                          % sets default tabsize to 2 spaces
captionpos=b,                   % sets the caption-position to bottom
breaklines=true,                % sets automatic line breaking
breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
escapeinside={\%*}{*)},         % if you want to add a comment within your code
% size, font
commentstyle=\fontsize{7}{7}\selectfont,
basicstyle=\ttfamily\fontsize{7}{7}\selectfont,
keywordstyle=\color{red},
commentstyle=\color{blue},
stringstyle=\color{green}
}
2
ответ дан 18 December 2019 в 10:42
поделиться

Вы учли

\lstset{...}
breaklines=true -> sets automatic line breaking
breakatwhitespace=false -> automatic breaks happen at whitespace

?

2
ответ дан 18 December 2019 в 10:42
поделиться

Используйте breaklines=true, например:

\lstnewenvironment{bash}
{\lstset{language=bash,breaklines=true,frame=trBL}}
{}

1
ответ дан 18 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: