Написание кода в документе latex



Как вставить код в документ LaTeX? Есть ли что-то вроде:



begin{code}
...
end{code}


единственное, что я действительно нужно, это отступ и шрифт фиксированной ширины. Подсветка синтаксиса может быть хорошей, хотя это определенно не требуется.

505   7  

7 ответов:

использовать 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

вы также можете использовать среду verbatim

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

это старый вопрос, но я заметил, никто не сказал, Как добавить HTML-код.

вы можете добавить HTML-код с {\tt code } или \texttt{ code }. Если вы хотите отформатировать встроенный код, то лучше всего сделать свою собственную команду

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

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

\lstinputlisting[breaklines]{source.c}

breaklines не требуется, но я считаю это полезным. Имейте в виду, что вам придется указать \usepackage{списки} для этого один.

специализированные пакеты, такие как minted, который полагается на пигменты, чтобы сделать форматирование, предлагают различные преимущества перед listings пакета. Цитата из minted руководство

Pygments обеспечивает гораздо лучшую подсветку синтаксиса по сравнению с обычными пакетами. Например, списки в основном выделяют только строки, комментарии и ключевые слова. Пигменты, с другой стороны, могут быть полностью настроены, чтобы выделить любой вид маркера исходный язык может поддерживать. Это может включать специальные последовательности форматирования внутри строк, чисел, различных типов идентификаторов и экзотических конструкций, таких как HTML-теги.

использовать чеканились.

Это пакет, который облегчает выразительную подсветку синтаксиса в LaTeX с помощью мощного одном библиотека. Пакет также предоставляет параметры для настройки выделенного вывода исходного кода с помощью fancyvrb.

Это гораздо более развитый и настраиваемый, чем любой другой пакет!

использовать одном !

поскольку это еще не было упомянуто здесь, возможно, стоит добавить еще один вариант, package 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}

Comments

    Ничего не найдено.