用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.如果當前狀態下無需代碼,則在<>中間留空(如果沒有最后一個參數,則可以直接省略<>)
  • \(<三級目錄名稱>\):如果你需要生成一個三級目錄,則你只需要在此項中填寫於\(<二級目錄名稱>\)相同的名稱。注意:此時填寫的名字代表的是一個二級目錄,(是一個文件夾),此時第二個以及第三個參數需要留空
  1. 二級目錄中的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給我留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM