%!TEX program = xelatex
\documentclass[12pt,a4paper,openany]{ctexbook}

% ==================== 页面设置 ====================
\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry}
\usepackage{setspace}
\onehalfspacing  % 1.5倍行距

% ==================== 字体（河南理工规范） ====================
% 正文: 宋体(小四≈12pt)  |  标题: 黑体  |  封面信息: 仿宋
% 数字和英文: Times New Roman (ctex 默认)
\setCJKmainfont{STSong}[AutoFakeBold=2]       % 宋体
\setCJKsansfont{Noto Sans SC}                   % 黑体替代
\setCJKmonofont{FangSong}                       % 仿宋
\setmainfont{Times New Roman}                   % 英文/数字

% ==================== 页眉页脚 ====================
\usepackage{fancyhdr}
\usepackage{etoolbox}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[CO]{\zihao{-5}\songti 银发群体高温多时间尺度预警和服务优化可视化研究}  % 奇数页
\fancyhead[CE]{\zihao{-5}\songti 河南理工大学本科毕业设计（论文）}                % 偶数页
\fancyfoot[C]{\zihao{-5}\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\fancypagestyle{plain}{
  \fancyhf{}
  \fancyfoot[C]{\zihao{-5}\thepage}
  \renewcommand{\headrulewidth}{0pt}
}

% 摘要页页眉
\fancypagestyle{abstract}{
  \fancyhf{}
  \fancyhead[C]{\zihao{-5}\songti 摘要}
  \fancyfoot[C]{\zihao{-5}\thepage}
  \renewcommand{\headrulewidth}{0.4pt}
}
\fancypagestyle{abstract-en}{
  \fancyhf{}
  \fancyhead[C]{\zihao{-5}\songti ABSTRACT}
  \fancyfoot[C]{\zihao{-5}\thepage}
  \renewcommand{\headrulewidth}{0.4pt}
}

% ==================== 图表 ====================
\usepackage{graphicx}
\usepackage{float}
\usepackage{subcaption}
\usepackage{booktabs}
\usepackage{longtable}

% 表标题在上方居中（五号黑体加粗）
\usepackage{caption}
\captionsetup[table]{
    font={bf,small},
    labelsep=quad,
    position=above,
    skip=2pt,
}
% 图标题在下方居中（五号宋体）
\captionsetup[figure]{
    font=small,
    labelsep=quad,
    position=below,
    skip=2pt,
}

% ==================== 参考文献 (GB/T 7714) ====================
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource{refs.bib}

% ==================== 超链接 ====================
\usepackage[hidelinks]{hyperref}

% ==================== 数学 ====================
\usepackage{amsmath,amssymb}
\numberwithin{equation}{chapter}  % 公式编号: 章.序号

% ==================== 代码 ====================
\usepackage{listings}
\lstset{
    basicstyle=\small\ttfamily,
    breaklines=true,
    frame=single,
    numbers=left,
    numberstyle=\tiny,
}

% ==================== 其他 ====================
\usepackage{tikz}
\usetikzlibrary{positioning,arrows}

% ==================== 标题格式（河南理工规范） ====================
% 一级标题(章): 小二号黑体(18pt) 加粗 居中
\ctexset{
    chapter={
        format={\centering\zihao{-2}\heiti\bfseries},
        name={第,章},
        number=\arabic{chapter},
        beforeskip=20pt,
        afterskip=20pt,
    },
    section={
        format={\zihao{4}\heiti\bfseries},      % 四号黑体
        beforeskip=12pt,
        afterskip=6pt,
    },
    subsection={
        format={\zihao{-4}\heiti\bfseries},      % 小四号黑体
        beforeskip=8pt,
        afterskip=4pt,
    },
    subsubsection={
        format={\zihao{-4}\heiti},
        beforeskip=6pt,
        afterskip=4pt,
    },
}

\title{银发群体高温多时间尺度预警和服务优化可视化研究}
\author{刘航宇}
\date{\today}

\begin{document}

% ==================== 封面 ====================
\begin{titlepage}
\thispagestyle{empty}
\begin{center}
    \vspace*{2cm}
    {\zihao{1}\heiti\bfseries 本科毕业设计（论文）}\\[1.5cm]

    {\zihao{2}\heiti\bfseries 银发群体高温多时间尺度预警\\[0.2cm]和服务优化可视化研究}\\[3cm]

    {\zihao{4}\fangsong
    \begin{tabular}{rl}
        \textbf{学\hspace{2em}院：} & 计算机科学与技术学院 \\[0.3cm]
        \textbf{专\hspace{2em}业：} & 计算机科学与技术 \\[0.3cm]
        \textbf{姓\hspace{2em}名：} & 刘航宇 \\[0.3cm]
        \textbf{学\hspace{2em}号：} & \\[0.3cm]
        \textbf{指导教师：} & \\[1.5cm]
    \end{tabular}
    }

    \vfill
    {\zihao{4}\fangsong \today}
\end{center}
\end{titlepage}

% ==================== 摘要 ====================
\input{chapters/abstract}

% ==================== 目录 ====================
\pagestyle{fancy}
\tableofcontents
\newpage

% ==================== 正文 ====================
\input{chapters/ch1-intro}
\input{chapters/ch2-theory}
\input{chapters/ch3-data}
\input{chapters/ch4-model}
\input{chapters/ch5-system}
\input{chapters/ch6-results}
\input{chapters/ch7-conclusion}

% ==================== 参考文献 ====================
\printbibliography[title=参考文献]

% ==================== 致谢 ====================
\chapter*{致谢}
\addcontentsline{toc}{chapter}{致谢}

衷心感谢导师在选题、研究方法、论文撰写等方面给予的悉心指导和宝贵建议。

感谢河南理工大学计算机科学与技术学院四年来提供的学习平台和科研环境。

感谢家人和朋友在学业期间的理解、支持与鼓励。

% ==================== 附录 ====================
\appendix
\ctexset{
    chapter={
        format={\centering\zihao{-2}\heiti\bfseries},
        name={附录},
        number=\Alph{chapter},
    },
}

\chapter{核心代码清单}
本研究核心代码已开源至 Gitea 仓库 \texttt{git@lhy-git.liuhangyv.top:Serendipity/elderly-heat-warning.git}。项目采用模块化结构：

\begin{verbatim}
src/
├── data/
│   ├── download_era5.py     # ERA5 数据下载（CDS API）
│   ├── extract_zips.py      # NetCDF ZIP 解压
│   ├── preprocess.py        # 数据预处理管线
│   └── collect_mortality.py # 死亡率数据整理
├── models/
│   ├── lstm_attention.py    # LSTM-Attention 模型定义
│   ├── xgboost_baseline.py  # XGBoost 基线
│   ├── train.py             # 训练脚本
│   └── evaluate.py          # 评估脚本
├── web/
│   ├── app.py               # Flask 后端
│   └── static/
│       └── index.html       # ECharts 前端大屏
└── utils/
    └── config.py             # 全局配置
\end{verbatim}

\chapter{系统运行说明}

\section{环境配置}
\begin{itemize}
    \item Python 3.13
    \item PyTorch 2.12.0+cu126（GPU版本，CUDA 12.6）
    \item XGBoost 2.0+，Scikit-learn 1.3+
    \item Flask 3.0+，ECharts 5.5
    \item 环境管理：uv（虚拟环境 .venv）
\end{itemize}

\section{运行步骤}
\begin{enumerate}
    \item \textbf{安装依赖}：\texttt{uv pip install -e .}
    \item \textbf{下载 ERA5 数据}：\texttt{python -m src.data.download\_era5}
    \item \textbf{解压 ZIP 格式数据}：\texttt{python -m src.data.extract\_zips}
    \item \textbf{运行预处理}：\texttt{python -m src.data.preprocess}
    \item \textbf{训练模型}：\texttt{python -m src.models.train}（LSTM）
    \item \textbf{评估模型}：\texttt{python -m src.models.evaluate}（含XGBoost）
    \item \textbf{启动可视化大屏}：\texttt{python -m src.web.app}
    \item \textbf{浏览器访问}：\texttt{http://localhost:5005}
\end{enumerate}

\end{document}
