调整 matlab-prettifier 以适应页面宽度

调整 matlab-prettifier 以适应页面宽度

根据理查德·约翰逊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}

结果:

在此处输入图片描述

相关内容