So schreiben Sie den schönen Code wie folgt

So schreiben Sie den schönen Code wie folgt

Ich möchte wissen, wie man den folgenden schönen Code generiert, einschließlich Schriftarten, Farben, Linien und der Abbildungsbeschreibung. Ich glaube, er wurde nicht von geschrieben \lstset. Dieses Bild stammt aus einem Dokument mit dem TitelAuf dem Weg zu optimierungssicheren Systemen: Analyse der Auswirkungen undefinierten Verhaltens.

Bildbeschreibung hier eingeben

Antwort1

Der Code scheint mithilfe des Pakets hervorgehoben zu werden minted.

Setzen Sie entweder mit pdflatex --shell-escapeoder mit arara.

% arara: pdflatex: { shell: yes }
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{minted,newtxtext,newtxmath,caption}
\newcommand\code{\texttt}
\newcommand\param{\textit}
\DeclareCaptionFont{bfmath}{\boldmath\bfseries}
\DeclareCaptionFormat{ruled}{\hrulefill\par#1#2#3}
\captionsetup{format=ruled,font=bfmath}
\begin{document}
\begin{figure}
  \centering
\begin{minted}{c}
const uint8_t *data     = /* buffer head */;
const uint8_t *data_end = /* buffer tail */;
int size = bytestream_get_be16(&data);
if (data + size >= data_end || data + size < data)
    return -1;
data += size;
...
int len = ff_amf_tag_size(data, data_end);
if (len < 0 || data + len >= data_end
            || data + len < data)
    return -1;
data += len;
/* continue to read data */
\end{minted}
  \caption{Unstable bounds checks in the form $\code{data} + x < \code{data}$ from FFmpeg/Libav, which gcc optimizes into $x < 0$.}
\end{figure}
\begin{figure}
  \centering
\begin{minted}{c}
void pdec(io *f, int k) {
    if (k < 0) {          /* print negative k */
        if (-k >= 0) {    /* not INT_MIN? */
            pchr(f, '-'); /* print minus */
            pdec(f, -k);  /* print -k */
            return;
        }
            ...           /* print INT_MIN */
            return;
        }
    ...                   /* print positive k */
}
\end{minted}
  \caption{An unstable integer check in plan9port. The function \code{pdec} prints a signed integer \code{k}; gcc optimizes the check \code{-k >= 0} into \param{true} when it learns that \code{k} is negative, leading to an infinite loop if the input \code{k} is \code{INT\_MIN}.}
\end{figure}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen