Latex下代码的排版

一、添加模板文件

latex模板文件中对应添加下列内容

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},   
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\footnotesize,
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

\lstset{style=mystyle}

\begin{document}

%% 下面为具体代码

\begin{lstlisting}[language=Python, caption= DataGen]
  def gen_datas(train, test):
  """生成数据
  参数:
      train: 原始训练数据集
      test: 原始验证数据集
  返回:
      X_train_r: 处理后训练数据集
      y_train: 处理后训练标签
      X_test_r: 处理后验证数据集
      y_test: 处理后验证标签
  """

  label_encoder_train = LabelEncoder().fit(train.Result)
  labels_train = label_encoder_train.transform(train.Result)
  label_encoder_test = LabelEncoder().fit(test.Result)
  labels_test = label_encoder_test.transform(test.Result)    
  classes = list(label_encoder_train.classes_)
  # classes_test = list(label_encoder_test.classes_)

  train = train.drop('Result', axis=1)
  test = test.drop('Result', axis=1)
  
  # 标签的种类 = NB_CLASS
  numb_class = len(classes)
  # 数据的归一化处理
  scaled_train = data_scaler(train)

  # 同一文件内数据集:10%作为测试集,90%作为训练集
  # random_state:随机数种子,和random中的seed种子一样,保证每次抽样到的数据一样,便于调试
  sss = StratifiedShuffleSplit(test_size=0.1, random_state=23)
  for train_index, test_index in sss.split(scaled_train, labels_train):
      X_train, X_test = scaled_train[train_index], scaled_train[test_index]
      y_train, y_test = labels_train[train_index], labels_train[test_index]

  # 不同文件作为训练集和验证集
  # y_train = labels_train
  # X_train = data_scaler(train)
  # y_test = labels_test
  # X_test = data_scaler(test)

  # reshape train data 
  # reshape 30*1
  # 也可以reshape 10*3
  X_train_r = np.zeros((len(X_train), NB_FEATURES, 1))
  X_train_r[:, :, 0] = X_train[:, :NB_FEATURES]
  # X_train_r[:, :, 1] = X_train[:, NB_PER_LAYER: NB_PER_LAYER * 2]
  # X_train_r[:, :, 2] = X_train[:, NB_PER_LAYER * 2:]

  # reshape test data
  X_test_r = np.zeros((len(X_test), NB_FEATURES, 1))
  X_test_r[:, :, 0] = X_test[:, :NB_FEATURES]
  # X_test_r[:, :, 1] = X_test[:, NB_PER_LAYER: NB_PER_LAYER * 2]
  # X_test_r[:, :, 2] = X_test[:, NB_PER_LAYER * 2:]

  y_train = np_utils.to_categorical(y_train, NB_CLASS)
  y_test = np_utils.to_categorical(y_test, NB_CLASS)

  return X_train_r, y_train, X_test_r, y_test

\end{lstlisting}
%%
\end{document}

二、显示效果

具体效果
在这里插入图片描述

### 如何在 LaTeX 中对伪代码进行排版并实现换行 在 LaTeX 中,`algorithm2e` 宏包是一个常用的工具来生成美观的伪代码。如果需要对伪代码中的语句进行换行并对齐,可以按照以下方式操作。 #### 使用 `algorithm2e` 实现伪代码换行 通过 `\` 符号可以在伪代码中实现手动换行,并使用 `&` 来指定对齐位置。以下是具体的说明: - 需要在文档导言区引入 `algorithm2e` 宏包[^1]。 - 对于较长的伪代码语句,可以通过在适当的位置插入反斜杠 `\` 进行换行[^2]。 - 如果希望保持换行后的部分与前一部分对齐,则可以利用 `&` 设置对齐点[^3]。 下面展示了一个完整的例子,演示如何编写带有换行功能的伪代码: ```latex \documentclass{article} \usepackage[ruled,vlined]{algorithm2e} \begin{document} \begin{algorithm}[H] \DontPrintSemicolon \SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output} \Input{An array $A$ of size $n$.} \Output{The sorted version of the array.} \caption{Example Algorithm with Line Breaks} \For{$i \gets 1$ to $n-1$}{ j $\gets$ i \\ While ($j > 0$ and $A[j-1] > A[j]$){ // Condition continues here\\ Swap($A[j], A[j-1]$)\; $j \gets j - 1$\; } } \end{algorithm} \end{document} ``` 在这个例子中: - `\` 是用于强制换行的关键字符。 - 注释部分也可以通过类似的手段完成跨行显示。 需要注意的是,在某些情况下可能还需要调整页面布局参数或者增加垂直间距以改善视觉效果,这可以通过命令如 `\vspace{}` 或者修改宏包选项实现。 ### 注意事项 当处理复杂的多条件分支结构时,合理安排每一级缩进以及适时运用分隔线有助于提高可读性和逻辑清晰度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值