Obtendo texto mais restrito nas listagens?

Obtendo texto mais restrito nas listagens?

Limitei o espaço horizontal para listar alguns códigos:

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

e quero apertá-lo um pouco horizontalmente. (Sim, eu sei que neste exemplo ele se estende até o final da linha; mas talvez eu o tenha em uma minipágina ou em um documento com várias colunas, etc.)

Agora, eu não quero ir \tiny, só um pouco de aperto horizontal. Se eu não estivesse em um lstlistingsambiente, eu poderiause algo como uma caixa de escala, ou talveztextls, mas eu realmente não tenho essa flexibilidade (eu acho) em um ambiente lstlistings. Estou assumindo que deve haver algo que preciso colocar no basicstyleparâmetro package \lstset; mas o que?

Responder1

latim moderno, por exemplo, tem tt leve que é um pouco mais fino e tt condensado que é muito mais fino

insira a descrição da imagem aqui

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

Responder2

Aqui está uma maneira, com uma fonte mais estreita, nomeadamente URW Letter Gothic (disponível emCTAN:

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

insira a descrição da imagem aqui

informação relacionada