根据理查德·约翰逊MATLAB 风格的要素第 6 段中,将内容保持在 80 个字符以内是最佳做法。虽然 matlab-prettifier 可以很好地换行,但在我看来,如果包含的 .m 文件遵循此最佳实践行长,则换行不是必要的。是否可以重新调整 matlab-prettifier 环境,以便前 80 个字符不会换行?
最小示例(具有默认宽边距)如下所示:
代码示例.m
%% This is a comment spanning 80 characters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L = +(1/3)*sqrt((2*sqrt(2)*sqrt(G^4*(2*R^2-5*R+2))+G^2*(4-5*R))/(R));
tex示例.tex
\documentclass[a4paper]{article}
\usepackage{inputenc}
\usepackage[numbered,]{matlab-prettifier}
\usepackage{geometry}
\begin{document}
\lstinputlisting[style=Matlab-editor]{codeExample.m}
\end{document}
答案1
resizebox
可以使用包中的命令进行重新缩放graphicx
。语法:\resizebox{width}{height}{content}
,带有大小值!
表示比例缩放。请注意,这会缩小,但也会放大,因此短线会显得更大。您还可以制作一个只缩小不放大的调整大小框,参见。https://tex.stackexchange.com/a/327889。另一种可能性是关闭换行,这样 80 列看起来就没问题了。
梅威瑟:
\documentclass[a4paper]{article}
\usepackage[numbered,]{matlab-prettifier}
\usepackage{geometry}
\usepackage{graphicx}
\begin{document}
\noindent default:
\lstinputlisting[style=Matlab-editor]{codeExample.m}
no linebreaks:
\lstinputlisting[style=Matlab-editor,breaklines=false]{codeExample.m}
resizebox:\\
\resizebox{\textwidth}{!}{\lstinputlisting[style=Matlab-editor,breaklines=false]{codeExample.m}}
\vspace{1em}\noindent
resizebox short lines:\\
\resizebox{\textwidth}{!}{\lstinputlisting[style=Matlab-editor,breaklines=false]{codeExampleShort.m}}
conditional resizebox:\\ % from https://tex.stackexchange.com/a/327889
\resizebox{%
\ifdim\width>\textwidth
\textwidth
\else
\width
\fi
}{!}{\lstinputlisting[style=Matlab-editor,breaklines=false]{codeExampleShort.m}}
\end{document}
结果: