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. PHP获取POST的原始数据的方法

    一般我们都用$_POST或$_REQUEST两个预定义变量来接收POST提交的数据.但如果提交的数据没有变量名,而是直接的字符串,则需要使用其他的方式来接收. 方法一: 使用全局变量$GLOBALS[ ...

  2. SHTML 教程

    什么是 SHTML 使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类 ...

  3. Unity3D笔记五 快捷键

    一.近距离查看游戏对象 在Hierarchy视图中选择游戏对象,然后在Scene视图中按快捷键“F”来近距离查看该游戏对象. 二.游戏对象不在主摄像头中? Hierarchy中双击选择需要显示的游戏对 ...

  4. 设备加速传感器(accelerometer) ---- HTML5+

    模块:Accelerometer Accelerometer模块管理设备加速度传感器,用于获取设备加速度信息,包括x(屏幕水平方向).y(垂直屏幕水平方向).z(垂直屏幕平面方向)三个方向的加速度信息 ...

  5. 二叉树各种相关操作(建立二叉树、前序、中序、后序、求二叉树的深度、查找二叉树节点,层次遍历二叉树等)(C语言版)

    将二叉树相关的操作集中在一个实例里,有助于理解有关二叉树的相关操作: 1.定义树的结构体: typedef struct TreeNode{ int data; struct TreeNode *le ...

  6. model 模型层

    using System; namespace MODEL { [Serializable] /// <summary> /// 作者: liuhaitao /// 描述: 实体层 -- ...

  7. Spring源码学习之IOC实现原理(二)-ApplicationContext

    一.Spring核心组件结构 总的来说Spring共有三个核心组件,分别为Core,Context,Bean.三大核心组件的协同工作主要表现在 :Bean是包装我们应用程序自定义对象Object的,O ...

  8. c# 调用声音文件

    一.使用C#自带的SoundPlayer using System.Media; SoundPlayer sound = new SoundPlayer("声音.wav"); so ...

  9. python调用C++之pybind11入门(相互调用)

    python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单 ...

  10. python 使用qqwry.dat获取ip物理地址:速度快

    # -*- coding: utf-8 -*- import socket import struct class IPAddresss: def __init__(self, ipdbFile): ...