如何写出一份好看的报告
如何写出一份好看的报告
前言
经历了一个写了无数篇实验报告加文档的学期,我深刻的意识到书写一篇好看的报告(得分高/老师喜欢)是极其耗费时间和精力的一件事。写这篇文章的缘由是发现大部分人还在用Word苦苦探寻,属予作文以记之。
ps.本文仅为个人在2023春季学期的个人实践,且一定会有更好的方法来进行报告的撰写,如LaTeX,望大佬轻喷qwq
requirements
Typora(最重要!!!)
typora-latex-theme(赞美大佬)
PDF-XChange Editor(或者自行寻找替代)
…
预览
(以下为Typora+typora-latex-theme生成效果)

封面,摘要和关键词

层级标题

表格

<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 |
项目列表

代码块

Mermaid

```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
```
公式

$$
\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生成的效果)

UML
(以下为plantuml绘制的uml图)
//代码由ChatGPT&&Newbing自动生成
@startuml
class "用户认证模块" {
+注册()
+登录()
+验证用户名的唯一性()
+生成访问令牌()
}
class "文档管理模块" {
+创建文档()
+编辑文档()
+删除文档()
+查看文档列表()
}
class "协作编辑模块" {
+实时同步文档内容()
}
class "评论和讨论模块" {
+创建评论()
+回复评论()
+删除评论()
+解决讨论问题()
}
class "数据安全和权限控制模块" {
+身份认证()
+生成访问令牌()
+验证访问令牌()
+验证编辑权限()
+验证文档访问权限()
}
class "前端" {
+注册页面
+登录页面
+文档列表页面
+文档编辑页面
+评论框
+讨论区域
}
class "后端" {
+用户认证接口
+文档管理接口
+协作编辑接口
+评论和讨论接口
}
class "数据库" {
+用户表
+文档表
+评论表
}
class "C++文档编辑模块" {
+处理编辑请求()
}
"用户认证模块" --> "前端"
"用户认证模块" --> "后端"
"文档管理模块" --> "前端"
"文档管理模块" --> "后端"
"协作编辑模块" --> "前端"
"协作编辑模块" --> "后端"
"评论和讨论模块" --> "前端"
"评论和讨论模块" --> "后端"
"数据安全和权限控制模块" --> "后端"
"前端" --> "后端"
"后端" --> "数据库"
"后端" --> "C++文档编辑模块"
@enduml
图床
(以下为PicGo+GitHub实现的在线免费图床)

使用
学习Markdown语言
markdown 是一种轻量级标记语言,用于使用纯文本创建格式化文本。 约翰·格鲁伯和亚伦·斯沃茨于2004年创建了 Markdown,作为一种以源代码形式吸引人类读者的标记语言。 Markdown 排版语法简洁,让人们更多地关注内容本身而非排版。它可与 HTML 混编,可导出 HTML、PDF 以及本身的 .md 格式等文件。 Markdown 广泛用于博客、即时消息、在线论坛、协作软件、文档页面和阅读文件。
下载Typora
Typora
一款 Markdown 编辑器和阅读器
风格极简 / 多种主题 / 支持 macOS,Windows 及 Linux
实时预览 / 图片与文字 / 代码块 / 数学公式 / 图表
目录大纲 / 文件管理 / 导入与导出 ……
安装typora-latex-theme
typora-latex-theme(赞美大佬)
本项目的初衷是为了简化中国大陆本科生小型通识课论文(或小型实验报告)撰写的负担。这里基本采用了浙江大学要求的格式(字体较小,页边距较小),但大部分同学都可以自行在 CSS 中修改适合自己学校的格式。
Markdown 的轻量化特性,使您可以专注于论文内容而不用担心格式。书写时仅通过简单的标记,并通过替换样例模板中的个人信息,您就可以输出类 LaTeX 排版的精美论文与报告。本项目支持 Windows, macOS 和 Linux 三大平台的 Typora。
学习如何正确的给予ChatGPT/Newbing 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

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

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