ACM赛前准备——模板(排版篇)

更新

2018-01-31 添加中文支持

前言

一个好的模板抵的过一个漂亮的志愿者。本文旨在方便广大ACMer赛前整理代码,把繁琐的排版工作交给工具完成,更专注于模板本身的内容。

再次强调:本文只谈排版,本文只谈排版,本文只谈排版。

github地址

效果演示

封面

目录页

模板页(不分栏)

模板页(分栏)

结果文件

ply-template.pdf

快速使用

  1. git clone https://github.com/palayutm/ply-template  

  2. cd ply-template 

  3. xelatex -shell-escape ply-template.tex 

详看https://github.com/palayutm/ply-template ,推荐使用在线工具(sharelatex),不用在本地装tex环境。

准备工作

安装TexLive

安装指南

只需要安装就行了,不需要学习tex任何内容

(可选)安装minted包

这个包应该是TexLive自带的,如果接下来编译出现问题可以考虑手动安装此包。

https://github.com/gpoore/minted

创建模板

文件结构

其中所有的cc(cpp)文件是模板文件,可以以任意喜好分类成若干文件夹,唯一的tex文件ply-template.tex负责导入所有的代码文件并排版。代码文件和tex文件分离可以很方便的进行代码修改和完善。

Tex文件内容

照着抄就行了,不需要知道tex语法,里面已写好注释,增加模板只需要在tex中加个section就行。

实例:

  1. % \twocolumn % 是否需要分栏显示 

  2. \newpage %另起一页 

  3. \section{String} %一级标题 

  4. \subsection{KMP} %二级标题 

  5. \inputminted[breaklines]{c++}{string/kmp.cc} %导入模板文件 

  6. \subsection{Suffix Automaton} 

  7. \inputminted[breaklines]{c++}{string/suffix-automaton.cc} 

编译

  1. xelatex -shell-escape ply-template.tex 

相应目录下即可生成pdf文件

总结

用tex来创建ACM模板非常容易,只需要在tex文件中写好模板结构,把模板放在相应文件夹即可,相比较word,省去了大量复制粘贴和排版的困难,并且代码和排版分离也使得模板的修改更为容易。

ACM赛前准备——模板(排版篇)的更多相关文章

  1. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

  2. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作

    相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...

  3. 杭电acm 1002 大数模板(一)

    从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...

  4. SpringBoot日记——Thymeleaf模板引擎篇

    开发通常我们都会使用模板引擎,比如:JSP.Velocity.Freemarker.Thymeleaf等等很多,那么模板引擎是干嘛用的? 模板引擎,顾名思义,是一款模板,模板中可以动态的写入一些参数, ...

  5. ICPC模板排版工具

    感谢参考:https://www.cnblogs.com/palayutm/p/6444833.html 额外安装texlive, ubuntu环境提供参考: 1.下载镜像包 https://mirr ...

  6. 【ACM程序设计】动态规划 第二篇 LCS&LIS问题

    动态规划 P1439 [模板]最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 给出 1,2,-,n 的两个排列 P1 和 P2 ,求它们的最长公共子序列. ...

  7. ACM高精度加减乘除模板

    [转]#include <iostream> #include <string> using namespace std; inline int compare(string ...

  8. [笔记]ACM笔记 - 自用模板

    长期更新. 快速幂 lld pow_mod(lld a, lld b, const int &pr) { lld ans = 1; while (b) { if (b & 1) ans ...

  9. acm专题---KMP模板

    KMP的子串长n,模式串长m,复杂度o(m+n),朴素做法的复杂度o((n-m+1)*m) 觉得大话数据结果上面这个讲得特别好 改进版本的KMP leetcode 28. Implement strS ...

随机推荐

  1. Linux Netfilter注册钩子点

    注册钩子点首先要包含响应的头文件,因为这应该已经属于对kernel的编程了. #include <linux/module.h> #include <linux/kernel.h&g ...

  2. c# Socket通信基础

     一.IP地址操作类   1.IPAddress类 a.在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下: IPAddress address = I ...

  3. 获得当前正在显示的activity的类名

    需要加一个权限: <uses-permission android:name="android.permission.GET_TASKS"/> ActivityMana ...

  4. CentOS中用户不在 sudoers 文件中。此事将被报告。

    首先切换为root用户 su root; 然后更改etc/sudoers文件的只读为可读可写可执行. sudo chmod 777 /etc/sudoers 输入visudo命令即可编辑文件,找到ro ...

  5. 大规模网站sesson会话保持思路及实践配置

    1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在 ...

  6. 用CMAKE编译配置的项目进行调试的方法

    在Linux 下用CMAKE编译的项目进行Debug 需进行设置: 1.在未设置之前 进行调试可能会出现错误报告:No source available for ...等一系列错误,这些错误可能就是你 ...

  7. 修改js confirm alert 提示框文字

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. 【node】------mongoose的基本使用------【巷子】

    1.安装mongoose npm install mongoose 2.启动数据库 mongod --dbpath d:\data\db 3.引入mongoose模块并连接数据库 const mong ...

  9. Nmap介绍

    1.Nmap介绍 Nmap用于列举网络主机清单.管理服务升级调度.监控主机或服务运行状况.Nmap可以检测目标机是否在线.端口开放情况.侦测运行的服务类型及版本信息.侦测操作系统与设备类型等信息. 1 ...

  10. 转!!CMPP 网关错误码说明

    http://www.163duanxin.com/msg/1753.htm CMPP错误码说明   与中国移动代码的对应关系. MI::zzzzSMSC返回状态报告的状态值为EXPIREDMJ:zz ...