JohnsonLo00 / lnumcmthesis

非官方版2024年辽宁省大学生数学建模竞赛论文模板. Unofficial Thesis Template for Liaoning Undergraduate Mathematical Contest in Modeling (2024).
LaTeX Project Public License v1.3c
2 stars 0 forks source link

Feature: 是否考虑添置默认代码高亮方案 #3

Closed GitHubonline1396529 closed 3 months ago

GitHubonline1396529 commented 3 months ago

描述

我在使用 lnumcmthesis 模板时注意到模板在插入代码块的时候并无默认的代码高亮方案,所有的代码均以灰底黑字的样式直接插入。经查阅《全国大学生数学建模竞赛论文格式规范(2023年修订稿) 》,其中对于附录代码并无有关高亮颜色的具体要求。

在文件 lnumcmthesis.cls 中有关代码环境的设置如下:

% --------------- 代码环境 --------------- %
\RequirePackage{verbatim} %简易代码环境(提供:verbatim 环境。缺点:不能解决断行问题。)
\RequirePackage{listings} %定制代码环境
\RequirePackage{matlab-prettifier} %MATLAB专门的代码环境
%代码环境定制
\lstset{
  basicstyle=\small\ttfamily, %整体的字号、字体
  stringstyle=\ttfamily, %字符串样式
  backgroundcolor=\color{gray!10}, %背景颜色
  frame=trbl, %显示各方向的代码框线条
  frameround=tttt, %设置代码框各棱角的形状
  breaklines=true, %自动断行
  showstringspaces=false, %取消特别的字符间距
  framexleftmargin=5pt, %内部左边距
}
% ======================================== %

提议

我认为可以考虑为模板设置默认的代码高亮样式,用一些基础的颜色覆盖关键字、字符串和注释。一个简单的 \lstset 配置如下所示:

% 代码环境定制
% 定义颜色
\definecolor{commentgreen}{HTML}{3CA53C}
% 设置代码环境
\lstset{
    basicstyle=\small\ttfamily, % 整体的字号、字体
    backgroundcolor=\color{gray!10}, % 背景颜色
    frame=trbl, %显示各方向的代码框线条
    frameround=tttt, % 设置代码框各棱角的形状
    showstringspaces=false, % 取消特别的字符间距
    framexleftmargin=5pt, % 内部左边距
    keywordstyle=\color{blue},
    commentstyle=\color{commentgreen},
    stringstyle=\color{red},
    numberstyle=\tiny\color{gray},
    stepnumber=1,
    numbersep=5pt,
    showspaces=false,
    showstringspaces=false,
    breaklines=true, % 自动断行
    % numberbychapter=true,
}

渲染效果截取部分代码如图所示:

图片

优势

JohnsonLo00 commented 3 months ago

本模板开发初期已考虑到该问题,采用的是以加粗代替换色的代码高亮方案(尽管加粗程度很不明显…):

当然,上述考虑过于细致,俨然可以如您所说直接指定颜色,比如我之前考虑到的一种配色方案(与所您给出的差不多). 因此,下一版本的开发会对代码高亮问题重新斟酌.

GitHubonline1396529 commented 3 months ago

@JohnsonLo00 感谢您的回复。

对于默认的代码配色方案,我提议可以援引 Visual C++ 6.0 的配色设计。这个古早 IDE 有一些年头了,印象里其配色方案比较符合国内阅卷老师的习惯,而且也符合数模论文整体严谨的风格。

JohnsonLo00 commented 3 months ago

本质上还是[红绿蓝]方案.