我希望框架内的代码最紧凑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}