怎样才能在列表框内获得最紧凑的代码?

怎样才能在列表框内获得最紧凑的代码?

我希望框架内的代码最紧凑lstlisting。我尝试通过xleftmargin=1.1mm,xrightmargin=2.5pt手动尝试和目测将框架放入两列中。

但我真正的问题是我想改变每个句子的换行符以容纳更多的单词。

请注意,我已经使用了\usepackage{newtxtext,newtxmath},代码取自答案如何更改 \lstinputlisting 的字体样式和大小有一些变化:

\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{amsmath,amssymb}
\usepackage{lipsum}
\usepackage{newtxtext,newtxmath}
\usepackage{listings}
\usepackage{lstautogobble}
\lstdefinestyle{mystyle}
{
    basicstyle=\ttfamily,
    frame=single,
    breaklines,
    columns=fullflexible,
    breakindent=1.2em,
    breakatwhitespace,
    escapeinside={(*}{*)},
}
\begin{document}
\begin{lstlisting}[style=mystyle,autogobble,xleftmargin=1.1mm,xrightmargin=2.5pt]
    function hello_world(*\,*)(uint a, uint b, uint c, uint d, uint e, uint f) public returns bool {
        uint256 amount = 100
        return true;
    }
\end{lstlisting}
\lipsum*[2]
\end{document}

输出:

在此处输入图片描述

例如这里,我希望将以下内容作为第一行:

function hello_world(uint a, uint b, uint c, uint

移至uint第一行,因此我相信它仍然适合框架。我尝试过:

function hello_world(*\,*)(uint a,(*\,*)uint b,(*\,*)uint c,(*\,*)uint

但没有帮助。

我使用的第一个原因是

答案1

我不确定问题是什么,但总的来说,我发现nxtt(NewTX 使用的默认打字机字体)不是特别有吸引力而且太大:

在此处输入图片描述

通常打字机字体比罗马字体要小一些。

您可以使用一些技巧来实现此目的:使用该nott选项并稍后定义相同的字体系列,但缩放至 90%。

\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{amsmath,amssymb}
\usepackage{lipsum}
\usepackage[nott]{newtxtext}
\usepackage{newtxmath}
\usepackage{listings}
\usepackage{lstautogobble}

\makeatletter
\AtBeginDocument{%
  \providecommand{\ntx@scaled}{}%
  \renewcommand{\ntx@scaled}{s*[0.9]}%
  \renewcommand{\ttdefault}{ntxtt}%
}
\makeatother

\lstdefinestyle{mystyle}
{
    basicstyle=\ttfamily,
    frame=single,
    breaklines,
    columns=fullflexible,
    breakindent=1.2em,
    breakatwhitespace,
    escapeinside={(*}{*)},
}
\begin{document}

abc\texttt{abc}

\begin{lstlisting}[style=mystyle,autogobble,xleftmargin=1.1mm,xrightmargin=2.5pt]
    function hello_world(*\,*)(uint a, uint b, uint c, uint d, uint e, uint f) public returns bool {
        uint256 amount = 100
        return true;
    }
\end{lstlisting}

\lipsum*[2]

\end{document}

在此处输入图片描述

或者,使用完全不同的打字机字体。

\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{amsmath,amssymb}
\usepackage{lipsum}
\usepackage[nott]{newtxtext}
\usepackage{newtxmath}
\usepackage[scale=0.95]{zi4}
\usepackage{listings}
\usepackage{lstautogobble}

\lstdefinestyle{mystyle}
{
    basicstyle=\ttfamily,
    frame=single,
    breaklines,
    columns=fullflexible,
    breakindent=1.2em,
    breakatwhitespace,
    escapeinside={(*}{*)},
}
\begin{document}
abc\texttt{abc}

\begin{lstlisting}[style=mystyle,autogobble,xleftmargin=1.1mm,xrightmargin=2.5pt]
    function hello_world(*\,*)(uint a, uint b, uint c, uint d, uint e, uint f) public returns bool {
        uint256 amount = 100
        return true;
    }
\end{lstlisting}
\lipsum*[2]
\end{document}

在此处输入图片描述

最后,但并非最不重要的一点是,您可以通过设置来决定减小特定列表(或所有列表)的字体大小

basicstyle=\ttfamily\small

甚至\footnotesize

\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{amsmath,amssymb}
\usepackage{lipsum}
\usepackage[nott]{newtxtext}
\usepackage{newtxmath}
\usepackage[scale=0.95]{zi4}
\usepackage{listings}
\usepackage{lstautogobble}

\lstdefinestyle{mystyle}
{
    basicstyle=\ttfamily,
    frame=single,
    breaklines,
    columns=flexible,
    breakindent=1.2em,
    breakatwhitespace,
    escapeinside={(*}{*)},
}
\lstdefinestyle{mystylesmaller}
{
    style=mystyle,
    basicstyle=\ttfamily\small,
}

\begin{document}

abc\texttt{abc}

\begin{lstlisting}[style=mystyle,autogobble,xleftmargin=1.1mm,xrightmargin=2.5pt]
    function hello_world(*\,*)(uint a, uint b, uint c, uint d, uint e, uint f) public returns bool {
        uint256 amount = 100
        return true;
    }
\end{lstlisting}
\begin{lstlisting}[style=mystylesmaller,autogobble,xleftmargin=1.1mm,xrightmargin=2.5pt]
    function hello_world(*\,*)(uint a, uint b, uint c, uint d, uint e, uint f) public returns bool {
        uint256 amount = 100
        return true;
    }
\end{lstlisting}

\lipsum*[2]

\end{document}

在此处输入图片描述

相关内容