523 Stimmen

Einfügen von Code in dieses LaTeX-Dokument mit Einrückung

Wie kann ich Code in ein LaTeX-Dokument einfügen? Gibt es so etwas wie:

\begin{code}## Heading ##
...
\end{code}

Das Einzige, was ich wirklich brauche, ist eine Einrückung und eine Schrift mit fester Breite. Syntaxhervorhebung könnte schön sein, ist aber definitiv nicht erforderlich.

0 Stimmen

Es handelt sich nicht um eine exakte Kopie, aber die Antworten decken denselben Bereich ab: siehe stackoverflow.com/questions/741985/

0 Stimmen

Ich habe auch eine Folgefrage: stackoverflow.com/questions/3408996/

0 Stimmen

Dieser Link kann helfen: overleaf.com/learn/latex/Code_listing

772voto

Cloudanger Punkte 8784

Verwenden Sie listings Paket.

Einfache Konfiguration für LaTeX-Header (vor \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
}

Sie können die Standardsprache in der Mitte des Dokuments mit \lstset{language=Java} .

Beispiel für die Verwendung im Dokument:

\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}

Hier ist das Ergebnis:

Example image

4 Stimmen

Ich habe eine Folgefrage zu Ihrem Code. Werfen Sie einen Blick darauf, wenn Sie die Gelegenheit haben: stackoverflow.com/questions/3408996/

2 Stimmen

Gibt es eine Möglichkeit, den Abstand zwischen den Codezeilen zu verringern?

0 Stimmen

Ist es möglich, einen kleinen Text unter dem Codeschnipsel einzufügen, ähnlich dem Text, der in Latex unter eine Abbildung geschrieben wird?

232voto

midtiby Punkte 13602

Sie können auch die wortwörtliche Umgebung verwenden

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

70 Stimmen

Es gibt ein Problem mit der Verwendung von Tabulatoren innerhalb der Verbatim-Umgebung. Wenn Tabulatoren in "Leerzeichen" umgewandelt werden, verschwindet das Problem.

1 Stimmen

Dies ist gut geeignet, um den Inhalt von Textdateien zu zeigen (z. B. Textdaten, die von einem Programm gelesen/verarbeitet werden).

1 Stimmen

Bei zweispaltigen Artikeln werden die Ränder nicht gut gehandhabt.

131voto

alan Punkte 2940

So fügen Sie Inline-Code hinzu:

Sie können Inline-Code hinzufügen mit {\tt code } o \texttt{ code } . Wenn Sie den Inline-Code formatieren wollen, machen Sie am besten Ihren eigenen Befehl

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

Beachten Sie auch, dass Codeblöcke aus anderen Dateien geladen werden können mit

\lstinputlisting[breaklines]{source.c}

breaklines ist nicht erforderlich, aber ich finde es nützlich. Beachten Sie, dass Sie Folgendes angeben müssen \usepackage{ Inserate } für diesen.

Aktualisierung: Das Listing-Paket enthält auch die \lstinline der die gleichen Funktionen zur Syntaxhervorhebung hat wie der Befehl \lstlisting y \lstinputlisting Befehle (Einzelheiten zur Konfiguration finden Sie in der Antwort von Cloudanger). Wie bereits in einigen anderen Antworten erwähnt, gibt es auch das Paket minted, das die \mintinline Befehl. Wie \lstinline , \mintinline bietet die gleiche Syntaxhervorhebung wie ein regulärer geprägter Codeblock:

\documentclass{article}

\usepackage{minted}

\begin{document}
  This is a sentence with \mintinline{python}{def inlineCode(a="ipsum)}
\end{document}

36voto

Philipp Punkte 45643

Spezialisierte Pakete wie minted die sich für die Formatierung auf Pygments stützt, bieten verschiedene Vorteile gegenüber dem listings Paket. Um aus dem minted Handbuch,

Pygments bietet im Vergleich zu herkömmlichen Paketen eine weitaus bessere Syntaxhervorhebung. Listings zum Beispiel heben im Grunde nur Zeichenketten, Kommentare und Schlüsselwörter hervor. Pygments hingegen kann vollständig angepasst werden, um jede Art von Token hervorzuheben, die die Ausgangssprache unterstützt. Dies kann spezielle Formatierungssequenzen innerhalb von Zeichenketten, Zahlen, verschiedene Arten von Bezeichnern und exotische Konstrukte wie HTML-Tags umfassen.

2 Stimmen

Ich habe Minted ausprobiert, die Dokumentation ist recht übersichtlich. Der Standard-Stil ist ziemlich gut.

9 Stimmen

Dies kann für viele Benutzer eine unbefriedigende Lösung sein, da ein externer Aufruf an Pygmentsic erforderlich ist. Insbesondere die Anforderung, latex mit dem Befehl -shell-escape ist bestenfalls eine geringfügige Änderung an bestehenden Build-Systemen und schlimmstenfalls inkompatibel mit den Sicherheitsvorlieben einiger Benutzer.

29voto

Shital Shah Punkte 54846

Geprägt , ob aus GitHub o CTAN, das Comprehensive TeX Archive Network , arbeitet in Umschlagseite , TeX Live und MiKTeX.

Es erfordert die Installation des Python-Pakets Pygmäen ; dies wird in der Dokumentation in einer der beiden oben genannten Quellen erklärt. Obwohl Pygments sich selbst als Python-Syntaxhighlighter bezeichnet, garantiert Minted die Abdeckung von Hunderten anderer Sprachen.

Beispiel:

\documentclass{article}
\usepackage{minted}
\begin{document}

\begin{minted}[mathescape, linenos]{python}

# Note: $\pi=\lim_{n\to\infty}\frac{P_n}{d}$
title = "Hello World"

sum = 0
for i in range(10):
 sum += i

\end{minted}

\end{document}

Salida:

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X