Schmaleren Text in Listeneinträgen erhalten?

Schmaleren Text in Listeneinträgen erhalten?

Ich habe nur begrenzten horizontalen Platz, um etwas Code aufzulisten:

\documentclass[]{article}
\usepackage{xcolor}
\usepackage{listings}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    language=bash,
    basicstyle=\footnotesize\ttfamily,
    keepspaces=true,
}
\lstset{style=mystyle}
\begin{document}
\begin{lstlisting}
C_10 := elementwise.range_check(C_4,S_5,S_6)
\end{lstlisting}
\end{document}

und ich möchte es horizontal etwas komprimieren. (Ja, ich weiß, dass es in diesem Beispiel bis zum Zeilenende reicht; aber vielleicht habe ich es in einer Miniseite oder in einem mehrspaltigen Dokument usw.)

Jetzt will ich nicht gehen \tiny, nur ein bisschen horizontal drücken. Wenn ich nicht in einemlstlistings Umgebung wäre, würde ich vielleichtVerwenden Sie so etwas wie eine Scalebox, oder vielleichttextls, aber ich habe diese Flexibilität (glaube ich) in einer lstlistings-Umgebung nicht wirklich. Ich gehe davon aus, dass es etwas geben muss, das ich in den basicstylePaketparameter in einfügen muss \lstset; aber – was?

Antwort1

Latin Modern hat zum Beispiel ein leichtes TT, das etwas dünner ist, und ein kondensiertes TT, das viel dünner ist

Bildbeschreibung hier eingeben

\documentclass[]{article}
\usepackage{xcolor}
\usepackage{listings}
\makeatletter
\def\lmtt@use@light@as@normal{}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle3}{
    backgroundcolor=\color{backcolour},
    language=bash,
    basicstyle=\fontencoding{T1}\footnotesize\fontfamily{lmtt}\fontseries{c}\selectfont,
    keepspaces=true,
}
\lstdefinestyle{mystyle2}{
    backgroundcolor=\color{backcolour},
    language=bash,
    basicstyle=\fontencoding{T1}\footnotesize\fontfamily{lmtt}\fontseries{m}\selectfont,
    keepspaces=true,
}
\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    language=bash,
    basicstyle=\footnotesize,
    keepspaces=true,
}
\lstset{style=mystyle}
\begin{document}
\begin{lstlisting}
C_10 := elementwise.range_check(C_4,S_5,S_6)
\end{lstlisting}

\lstset{style=mystyle2}
\begin{lstlisting}
C_10 := elementwise.range_check(C_4,S_5,S_6)
\end{lstlisting}

\lstset{style=mystyle3}
\begin{lstlisting}
C_10 := elementwise.range_check(C_4,S_5,S_6)
\end{lstlisting}

\end{document}

Antwort2

Hier ist eine Möglichkeit, mit einer schmaleren Schriftart, nämlich URW Letter Gothic (verfügbar aufCTAN:

\documentclass[]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{xcolor}
    \usepackage{listings}
    \definecolor{backcolour}{rgb}{0.95,0.95,0.92}
    \lstdefinestyle{mystyle}{
        backgroundcolor=\color{backcolour},
        language=bash,
        basicstyle=\footnotesize\ttfamily,
        keepspaces=true,
    }
    \lstset{style=mystyle}
    \usepackage{etoolbox}
    \AtBeginEnvironment{lstlisting}{\renewcommand\ttfamily{\fontfamily{ulg}\selectfont}}

    \begin{document}

    \noindent\verb|C_10 := elementwise.range_check(C_4,S_5,S_6)|
    \begin{lstlisting}
    C_10 := elementwise.range_check(C_4,S_5,S_6)
    \end{lstlisting}

    \begin{lstlisting}[basicstyle=\scriptsize\ttfamily]
    C_10 := elementwise.range_check(C_4,S_5,S_6)
    \end{lstlisting}

    \end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen