Как поместить исходный код C++ в слайды проектора

Как поместить исходный код C++ в слайды проектора

Возможный дубликат:
Как отобразить код LaTeX в документе LaTeX?
Как разместить исходный код в стиле Java в одном кадре в Beamer?

Как добавить исходный код в формате C++ и цветной в мои презентации Beamer? Есть ли простые способы сделать это?

решение1

Использовать пакетспискиилиотчеканенный. Listings проще установить, так как minted нужен python, он использует pygments, но часто дает более приятные результаты. Также вам нужно использовать опцию fragileв вашем frame, чтобы содержимое фрейма записывалось во внешний файл и могло быть правильно обработано. Это замедляет компиляцию, поэтому не используйте опцию там, где это не нужно!

Но помните, что пространство на рамах проектора очень ограничено, поэтому вы не сможете (и на самом деле не должны) разместить слишком много кода на одной странице.

решение2

Вы можете определить дословную часть перед frameсредой, тогда эта опция вам не понадобится fragile.

\documentclass{beamer}
\usepackage{listings}

\begin{document}

\defverbatim[colored]\lstI{
\begin{lstlisting}[language=C++,basicstyle=\ttfamily,keywordstyle=\color{red}]
int main() {
  // Define variables at the beginning
  // of the block, as in C:
  CStash intStash, stringStash;
  int i;
  char* cp;
  ifstream in;
  string line;
[...]
\end{lstlisting}
}

\begin{frame}{A Listings Demo}{C++}
\lstI
\end{frame}

\end{document}

решение3

Другой вариант -PythonTeX, в частности, \pygmentкоманда и pygmentsсреда. Как и minted, PythonTeX требует Python и Pygments. Выделенные результаты сохраняются, поэтому вам нужно запускать Python только тогда, когда вы изменили код, который нужно выделить. Поддерживается Unicode.

Вам нужно будет использовать fragileопцию для рам проектора.

Связанный контент