У меня ограничено горизонтальное пространство для перечисления некоторого кода:
\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}
и я хочу немного сжать его по горизонтали. (Да, я знаю, что в этом примере он простирается до конца строки; но, возможно, у меня он на мини-странице или в документе с несколькими столбцами и т. д.)
Теперь я не хочу идти \tiny
, просто немного горизонтального сжатия. Если бы я не был в lstlistings
среде, я мог быиспользуйте что-то вроде Scalebox, или, возможно,textls
, но у меня на самом деле нет такой гибкости (я думаю) в среде lstlistings. Я предполагаю, что должно быть что-то, что мне нужно вставить в basicstyle
параметр пакета в \lstset
; но - что?
решение1
Например, в современной латинице есть легкий tt, который немного тоньше, и сжатый tt, который намного тоньше.
\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}
решение2
Вот способ, с более узким шрифтом, а именно URW Letter Gothic (доступен наКТАН:
\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}