ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用Latex高效整理你的ACM-ICPC模板

2019-06-05 14:03:56  阅读:402  来源: 互联网

标签:Latex 需要 文件 ACM ICPC 目录 模板


前言

在ICPC比赛前,为了在赛场上比较高效的书写代码,各位ACMer往往会提前准备好一份或是他人整理的,亦或是自己整理的板子。

而在我们整理板子的过程中,因为word文档的局限性,我们往往会对模板的排版而绞尽脑汁,而如果我们花大量的时间在排版上,或许也太过与得不偿失。因此此时就需要我们采用\(\Latex\)这一排版神器来帮助我们高效的整理我们的ICPC板子。

我在浏览了各位大佬的博客后,发现他们所提供的方法虽然已经非常不错,但是都或多或少有一定的缺陷。因此,在他们的博客的启示下,我个人整理并完善了一份我个人认为比较好的一份Latex模板生成器。

项目地址:

地址:https://github.com/Chen-Jr/ICPC-Code-Template-in-Latex

本项目主要以github的另一个项目:https://github.com/jasison27/ACM-ICPC-CodeTemplate-Late 为基础,进行了一定程度上的修改于完善:

  • 优化了排版
  • 优化了全文的代码显示
  • 支持中文
  • 可以在每一个Subciton/Subsection/Subsubsection后插入.tex文件,用来对当前的模板进行说明。
  • 支持subsubsection的建立。

文件结构:

12

其中:

  1. 主文件中的 config文件为控制一级目录的配置文件,主要用来控制Section的输出。内部填写的名字代表着一个一级目录。该项需要使用者自行进行更改。
  2. 主文件中的 headtailmain.cpp文件不建议进行修改,直接使用即可。如果有意对生成的tex文件进行自定义修改,可以修改head以及tail文件。如果发现编译运行main.cpp文件时发生错误,可以根据main.cpp中的注释进行一定程度上的修改。
  3. 一级目录中的config文件为当前目录的配置文件,主要用来控制Subsection的输出及判定是否存在Subsubsection。该文件存在四个参数:
    \[<二级目录名称> <代码文件> <tex文件> <三级目录名称>\]
    • \(<二级目录名称>\):在<>内部填写当前你需要的二级目录(即Subsection)的名称
    • \(<代码文件>\):在<>内部填写在当前二级目录中,你所需要插入的代码(支持.java/.cpp/.py文件)。如果当前状态下无需代码,则在<>中间留空(如果没有后面两个参数,则可以直接省略<>)
    • \(<tex文件>\):在<>内部填写在当前二级目录中,你所需要插入的说明文件.tex.如果当前状态下无需代码,则在<>中间留空(如果没有最后一个参数,则可以直接省略<>)
    • \(<三级目录名称>\):如果你需要生成一个三级目录,则你只需要在此项中填写于\(<二级目录名称>\)相同的名称。注意:此时填写的名字代表的是一个二级目录,(是一个文件夹),此时第二个以及第三个参数需要留空
  4. 二级目录中的config文件配置跟上述相同,只需要照葫芦画瓢即可。

使用:

准备:

ACM-ICPC模版库、g++环境、Latex发行版软件

Linux

直接make就可以了(如果没有安装Latex,需要自行安装一下texlive-full)

Windows

因为需要支持中文,故需要将Windows系统编码改为utf-8!!

之后编译运行main.cpp,之后就会生成一份template.tex文件,最后只需要用Latex使用XeLatex编译生成pdf文件即可。

样式:

封面:

uploading-image-150610.png

代码样式:

uploading-image-551524.png

后记

用Latex来创建ICPC的模板非常容易,我们只需要根据上述的格式,梳理好每个配置文件之间的关系,最后只需要运行c++文件即可以自动生成Latex文件,最后编译Latex文件即可获得一份漂亮的模板啦。同时,如果觉得上述的pdf的格式还是不符合自己的心意,可以通过修改head以及tail文件对tex文件进行修改。

另外,如果在使用过程中遇到一些神奇的bug,可以去github给我留言。

标签:Latex,需要,文件,ACM,ICPC,目录,模板
来源: https://www.cnblogs.com/Chen-Jr/p/10979145.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有