如何写出一份好看的报告

内容纲要

如何写出一份好看的报告

前言

经历了一个写了无数篇实验报告加文档的学期,我深刻的意识到书写一篇好看的报告(得分高/老师喜欢)是极其耗费时间和精力的一件事。写这篇文章的缘由是发现大部分人还在用Word苦苦探寻,属予作文以记之。

ps.本文仅为个人在2023春季学期的个人实践,且一定会有更好的方法来进行报告的撰写,如LaTeX,望大佬轻喷qwq

requirements

Typora(最重要!!!)

typora-latex-theme(赞美大佬)

ChatGPT

Newbing

PlantUML

PicGo

Pandoc

PDF-XChange Editor(或者自行寻找替代)

…

预览

(以下为Typora+typora-latex-theme生成效果)

cover

封面,摘要和关键词

image-20230711113420835

层级标题

heading-l

表格

table-l

<center><strong>表 2  全球/中国桌面操作系统市场份额占比(%)</strong></center>

| OS   | Windows | macOS | Unknown | Linux | Chrome OS | 其他 |
| ---- | ------- | ----- | ------- | ----- | --------- | ---- |
| 全球 | 76.56   | 17.1  | 2.68    | 1.93  | 1.72      | 0.01 |
| 中国 | 87.55   | 5.44  | 6.24    | 0.75  | 0.01      | 0.01 |

项目列表

item-l

代码块

code-l

Mermaid

mermaid-l

```mermaid
graph LR
A(开始) -->
input[/输入a,b/] --> if{a%b=0 ?}
if --->|yes| f1[GCD = b] --> B(结束)
if --->|no| f2["a, b = b, a % b "]-->if
​```

公式

equation-l

$$
\iint\limits_{x^2 + y^2 \leq R^2} f(x,y)\,\mathrm{d}x\,\mathrm{d}y = \int_{\theta=0}^{2\pi} \mathrm{d}\theta\int_{r=0}^R f(r\cos\theta,r\sin\theta) r\,\mathrm{d}r\, \tag{1}
$$

目录

(以下为PDF-XChange Editor生成的效果)

image-20230711124542839

UML

(以下为plantuml绘制的uml图)

img

//代码由ChatGPT&&Newbing自动生成

@startuml

class "用户认证模块" {
  +注册()
  +登录()
  +验证用户名的唯一性()
  +生成访问令牌()
}

class "文档管理模块" {
  +创建文档()
  +编辑文档()
  +删除文档()
  +查看文档列表()
}

class "协作编辑模块" {
  +实时同步文档内容()
}

class "评论和讨论模块" {
  +创建评论()
  +回复评论()
  +删除评论()
  +解决讨论问题()
}

class "数据安全和权限控制模块" {
  +身份认证()
  +生成访问令牌()
  +验证访问令牌()
  +验证编辑权限()
  +验证文档访问权限()
}

class "前端" {
  +注册页面
  +登录页面
  +文档列表页面
  +文档编辑页面
  +评论框
  +讨论区域
}

class "后端" {
  +用户认证接口
  +文档管理接口
  +协作编辑接口
  +评论和讨论接口
}

class "数据库" {
  +用户表
  +文档表
  +评论表
}

class "C++文档编辑模块" {
  +处理编辑请求()
}

"用户认证模块" --> "前端"
"用户认证模块" --> "后端"
"文档管理模块" --> "前端"
"文档管理模块" --> "后端"
"协作编辑模块" --> "前端"
"协作编辑模块" --> "后端"
"评论和讨论模块" --> "前端"
"评论和讨论模块" --> "后端"
"数据安全和权限控制模块" --> "后端"
"前端" --> "后端"
"后端" --> "数据库"
"后端" --> "C++文档编辑模块"

@enduml

图床

(以下为PicGo+GitHub实现的在线免费图床)

image-20230711124930237

使用

学习Markdown语言

markdown 是一种轻量级标记语言,用于使用纯文本创建格式化文本。 约翰·格鲁伯和亚伦·斯沃茨于2004年创建了 Markdown,作为一种以源代码形式吸引人类读者的标记语言。 Markdown 排版语法简洁,让人们更多地关注内容本身而非排版。它可与 HTML 混编,可导出 HTML、PDF 以及本身的 .md 格式等文件。 Markdown 广泛用于博客、即时消息、在线论坛、协作软件、文档页面和阅读文件。

Markdown 官方教程

下载Typora

Typora

Typora
一款 Markdown 编辑器和阅读器

风格极简 / 多种主题 / 支持 macOS,Windows 及 Linux
实时预览 / 图片与文字 / 代码块 / 数学公式 / 图表
目录大纲 / 文件管理 / 导入与导出 ……

安装typora-latex-theme

typora-latex-theme(赞美大佬)

本项目的初衷是为了简化中国大陆本科生小型通识课论文(或小型实验报告)撰写的负担。这里基本采用了浙江大学要求的格式(字体较小,页边距较小),但大部分同学都可以自行在 CSS 中修改适合自己学校的格式。

Markdown 的轻量化特性,使您可以专注于论文内容而不用担心格式。书写时仅通过简单的标记,并通过替换样例模板中的个人信息,您就可以输出类 LaTeX 排版的精美论文与报告。本项目支持 Windows, macOS 和 Linux 三大平台的 Typora。

学习如何正确的给予ChatGPT/Newbing Prompts

可参考: Awesome ChatGPT Prompts

使用ChatGPT/Newbing+PlantUML帮助你绘制uml图

问题

Q:
用代码绘制uml图:#### 系统总体结构

##### 在线服务

######  后端

答案

A:
绘制UML图可以采用类图和时序图来表示系统总体结构和业务流程。以下是一个示例代码,用于使用PlantUML库绘制类图和时序图:

@startuml

package "在线服务" {
  package "后端" {
    class "ONLYOFFICE Docs" as onlyoffice
  }

  package "前端" {
    class "Wordpress+PHP+vue" as wordpress
  }
}

package "本地服务" {
  package "前端(React)" {
    class "用户界面" as ui
    class "组件库" as components
  }

  package "后端(springboot)" {
    class "身份认证和授权" as auth
    class "用户管理" as user
    class "文档管理" as document
    class "实时协作" as collaboration
    class "评论和讨论" as comments
  }
}

onlyoffice --|> "后端"
wordpress --|> "前端"

ui -- components
auth -- user
document -- collaboration
document --|> auth
comments -- document

@enduml

这段代码会生成一个类图,表示系统的总体结构。

为了绘制系统业务流程,我们可以使用时序图。以下是一个示例代码,用于绘制用户操作流程和系统内部工作流程:

@startuml

title 用户操作流程

participant 用户 as user
participant 前端 as frontend
participant 后端 as backend
participant 数据库 as database
participant C++文档编辑模块 as editor

user -> frontend: 注册请求
frontend -> backend: 注册请求
backend -> database: 存储用户信息
backend --> frontend: 注册成功
user -> frontend: 登录请求
frontend -> backend: 登录请求
backend --> frontend: 生成访问令牌
user -> frontend: 创建/编辑文档
frontend -> backend: 创建/编辑文档请求
backend -> database: 创建/编辑文档记录
frontend -> editor: 发送编辑请求
editor --> backend: 处理编辑请求
backend -> editor: 修改文档内容
editor --> backend: 返回修改后的内容
backend --> frontend: 广播文档内容
user -> frontend: 邀请其他用户
frontend -> backend: 发送邀请请求
backend --> frontend: 邀请通知
user -> frontend: 分享文档
frontend -> backend: 生成分享链接
backend --> frontend: 分享链接
user -> frontend: 编辑/删除文档
frontend -> backend: 编辑/删除文档请求
backend -> database: 更新/删除文档记录

@enduml

这段代码会生成一个时序图,表示用户操作流程和系统内部工作流程。

你可以使用上述代码和PlantUML库来绘制UML图。注意,你需要安装PlantUML库并将代码输入到合适的环境中才能生成图形。

使用对应参数导出PDF

image-20230711131129034

使用PDF编辑工具进行进一步美化

image-20230711131221668

总结

本文写的略微粗糙,不过实际上手其实非常简单。希望大家都能轻松写出格式好看的报告~

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注