制作代码模板的 LaTex 模板

Tex 真的是一个用起来非常舒服的排版工具(对于排版要求高的人来说),去比赛前一天放弃了markdown转pdf来生成代码模板,现学Tex(其实美赛已经用过了:P)。

推荐一个链接:TeX — Beauty and Fun,可以了解一下Tex。

我用的工具是Mac下的TexShop,排版时选择XeLaTeX

基本模板:

% !TEX encoding = UTF-8 Unicode
\documentclass[a4paper,11pt,twoside,fontset = fandol,UTF8]{ctexbook} % 页面A4纸大小,11 磅大小的字体,式样为双面,字体集为Fandol,编码为UTF8,文档类型为cTex的book(支持中文)
\usepackage{geometry}
\geometry{a4paper,scale=0.8} % A4纸大小,缩放80%

\usepackage{hyperref}   %超链接
\usepackage{listings}   %代码块
\usepackage{courier}    %字体
\usepackage{fontspec}   %字体
\usepackage{fancyhdr}   % 页眉页脚相关宏包
\usepackage{lastpage}   % 引用最后一页
\usepackage{amsmath,amsthm,amsfonts,amssymb,bm} %数学
\usepackage{graphicx}   % 图片
\usepackage{subcaption} % 图片描述
\usepackage{longtable,booktabs} % 表格

\setmonofont{Consolas}  %设置字体为Consolas
\lstset{                %设置代码块
         basicstyle=\footnotesize\ttfamily, % 基本风格
         numbers=left,                      % 行号
         numbersep=10pt,                    % 行号间隔
         tabsize=2,                         % 缩进
         extendedchars=true,                % 扩展符号?
         breaklines=true,                   % 自动换行
         language=C++,
         frame=leftline,                    % 框架左边竖线
         xleftmargin=19pt,                  % 竖线左边间距
         showspaces=false,                  % 空格字符加下划线
         showstringspaces=false,            % 字符串中的空格加下划线
         showtabs=false,                    % 字符串中的tab加下划线
 }
\pagestyle{fancy}       % 页眉页脚风格
\fancyhf{}              % 清空当前设置
\fancyfoot[C]{\thepage\ / \pageref{LastPage}}%页脚中间显示 当前页 / 总页数,把\label{LastPage}放在最后
\fancyhead[LO,RE]{\thepage}% 页眉奇数页左边,偶数页右边显示当前页
\begin{document}
  \begin{titlepage}     % 封面
    \centering
    \vspace*{\baselineskip}
    \rule{\textwidth}{1.6pt}\vspace*{-\baselineskip}\vspace*{2pt}
    \rule{\textwidth}{0.4pt}\\[\baselineskip]
    {\LARGE Algos @BY 2017\\[\baselineskip]\small for ACM ICPC}
    \\[0.2\baselineskip]
    \rule{\textwidth}{0.4pt}\vspace*{-\baselineskip}\vspace{3.2pt}
    \rule{\textwidth}{1.6pt}\\[\baselineskip]
    \scshape

    \begin{figure}[!htb]
        \centering
        \includegraphics[width=0.3\textwidth]{icpc}    % 当前tex文件同一目录下名为icpc的任意格式图片
    \end{figure}

    \vspace*{3\baselineskip}
    Edited by \\[\baselineskip] {向饿势力低头\par}
    {Team \Large Bow to hungrY \normalsize{at BUPT}\par }
    \vfill
    {\scshape 2017} \\{\large BEIJING}\par
  \end{titlepage}
 \newpage             % 封面背后空白页
\tableofcontents      % 目录
\chapter{计算几何}     % 第一章
\setcounter{page}{1}  % 这里页数从1开始计算
\section{ 几何基础}    % 第一节
\begin{lstlisting}    % 代码块
#include <bits/stdc++.h>
using namespace std;
#define sqr(x) (x)*(x)
typedef double dd;
const dd EPS = 1e-8;
const dd PI = acos(-1);
int sgn(dd x) {return x<-EPS?-1:x>EPS;}
struct Po {
    dd x,y;
    Po(dd x=0,dd y=0):x(x), y(y) {}
    Po operator -(const Po&b)const {return Po(x-b.x,y-b.y);}
    Po operator +(const Po&b)const {return Po(x+b.x,y+b.y);}
    Po operator *(dd b)const {return Po(x*b,y*b);}
    Po operator /(dd b)const {return Po(x/b,y/b);}
    bool operator ==(const Po&b)const {return x==b.x&&y==b.y;}
    dd operator ^(const Po&b)const {return x*b.y-y*b.x;}
    dd operator *(const Po&b)const {return x*b.x+y*b.y;}
    dd dis(const Po &p){return  sqrt(sqr(x-p.x)+sqr(y-p.y));}
};
//叉积|a||b|sin:为0:oa共线ob,大于0:ob在oa的逆时针方向
dd xmul(Po a,Po b,Po o) {return (a-o)^(b-o);}
//点积|a||b|cos:为0:oa垂直ob
dd mult(Po a,Po b,Po o) {return (a-o)*(b-o);}
\end{lstlisting}
\section{ 向量变换}    % 第二节
\begin{lstlisting}
struct Po {
    ..
    Po rotL(){return Po(-y,x);}//逆时针90度
    Po rotR(){return Po(y,-x);}
    dd len(){return  sqrt(x*x+y*y);}
    Po trunc(dd r){//截短为r
        dd l=len();if(!sgn(l))return *this;
        r/=l;
        return Po(x*r,y*r);
    }
    //绕p逆时针转ang度
    Po rotate(Po p,dd ang){
        Po v=*this-p;
        dd c=cos(ang),s=sin(ang);
        return Po(p.x+v.x*c-v.y*s,p.y+v.x*s+v.y*c);
    }
};
\end{lstlisting}
% ...其它内容
\end{document}
\label{LastPage}

章节层次

  • chapter
  • section
  • subsection

图片

如果需要几张图片并排显示,可用subfigure宏包。

\begin{figure}[h]
    \centering
    \begin{subfigure}[h]{0.2\textwidth}
        \includegraphics[width=\textwidth]{平移} % 名为'平移'的图片文件放在同一目录
    \end{subfigure}
    ~
    \begin{subfigure}[h]{0.2\textwidth}
        \includegraphics[width=\textwidth]{缩放}
    \end{subfigure}
   ~
    \begin{subfigure}[h]{0.5\textwidth}
        \includegraphics[width=\textwidth]{旋转}
    \end{subfigure}
    \    \begin{subfigure}[h]{0.8\textwidth}
        \includegraphics[width=\textwidth]{3D绕轴翻转}
    \end{subfigure}
\end{figure}

表格

用了longtable宏包

\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}[]{@{}[email protected]{}}
\toprule
\(r\cdot 2 ^ k + 1\) & r & k & g\tabularnewline
\midrule
\endhead
3 & 1 & 1 & 2\tabularnewline
5 & 1 & 2 & 2\tabularnewline
17 & 1 & 4 & 3\tabularnewline
97 & 3 & 5 & 5\tabularnewline
193 & 3 & 6 & 5\tabularnewline
257 & 1 & 8 & 3\tabularnewline
7681 & 15 & 9 & 17\tabularnewline
12289 & 3 & 12 & 11\tabularnewline
40961 & 5 & 13 & 3\tabularnewline
65537 & 1 & 16 & 3\tabularnewline
786433 & 3 & 18 & 10\tabularnewline
5767169 & 11 & 19 & 3\tabularnewline
7340033 & 7 & 20 & 3\tabularnewline
23068673 & 11 & 21 & 3\tabularnewline
104857601 & 25 & 22 & 3\tabularnewline
167772161 & 5 & 25 & 3\tabularnewline
469762049 & 7 & 26 & 3\tabularnewline
1004535809 & 479 & 21 & 3\tabularnewline
2013265921 & 15 & 27 & 31\tabularnewline
\bottomrule
\end{longtable}

代码

用的是listings宏包。具体配置可看wiki-Source_Code_Listings,要求多的可查阅文档

Markdown 转换到 LaTex

原来的 Markdown 的代码模板里大部分就是 ### 标题和代码块,手动加入 LaTex 里太辛苦了,用 typora 转的 LaTex 内容太复杂了,所以我写了个 c++ 程序来转:P,不过也许 python更适合写这种程序。

效果图

时间: 2024-11-09 20:23:46

制作代码模板的 LaTex 模板的相关文章

国内大学毕业论文LaTeX模板集合

薛瑞尼的清华大学学位论文LaTeX模板http://sourceforge.net/projects/thuthesis/ 北大论文文档 LaTeX 模板 pkuthss v1.2 betahttp://bbs.pku.edu.cn/bbs/bbstcon.php?board=MathTools&threadid=11364449 刘本源的国防科学技术大学研究生学位论文LaTeX模板http://code.google.com/p/nudtpaper/ 南开大学学位论文LaTeX模板(孙文昌老师

【持续更新】一个简洁、易用的美赛LaTeX模板:easyMCM

若您无意阅读下面的这番引入性介绍,想直接下载模板,请点这里. 1 当前美赛模板通行情况的概述 美赛是许多大学生第一次接触\(\LaTeX\)的机会,但是由于时间安排上的原因,很多人都是在赛前几天匆匆拾起\(\LaTeX\)编译器决定用其排版论文.花了一下午安装编译器,又花了一晚上琢磨命令行里弹出来的各种莫名其妙的警告和错误--最终,一些队伍把美赛的时间浪费在对付"难用"的\(\LaTeX\)系统上,失去了许多宝贵的时间.除此以外,网上流传的各种参差不齐的美赛\(\LaTeX\)模板.\

国内大学毕业论文 LaTeX 模板集合

西北工业大学学位论文LaTeX模板 http://code.google.com/p/nwputhesis/ 西北工业大学硕博士论文LaTeX模版 http://code.google.com/p/nputhesis/ 中国科技大学本科.硕士.博士论文LaTeX模板 http://home.ustc.edu.cn/~squall/index.html http://code.google.com/p/ustcthesis/ 其他大学: 薛瑞尼的清华大学学位论文LaTeX模板 http://sou

Discuz3.3精仿小米风格整站模板制作——1、新建模板方案

术语说明: 模板——模板是一堆按照规定命名方式的html文件,用于指定整个论坛不同页面的外观. 标签——标签和模板共同作用以实现论坛换肤功能,其中标签主要控制页面显示什么数据,显示多少条等. 风格——风格是一个xml配置文件,用于配置一些固定区域字体的大小.颜色.背景色等.例如春节时,整个版面变成喜庆红色等.风格这个功能实质上是一种可以直接在后台设置论坛中固定格式的文字(如标题列表等)的大小.颜色.背景色等而不用单独写css文件进行覆盖的技术.对于有编码能力的站长来说,其实无多大意义. Disc

Latex 博客模板-基于电子科技大学学位论文latex模板

主要修改了原工程的thesis.clx文件,主要修改了 1 封面LOGO 2 封面个人信息 3 去掉英文摘要.英文译文等章节 ,使内容更适合paper. 修改的代码如下: 1 %% 2 %% This is file `uestcthesis.cls', 3 %% generated with the docstrip utility. 4 %% 5 %% The original source files were: 6 %% 7 %% uestcthesis.dtx (with option

如何制作商务礼仪PPT模板?

商务礼仪是在商务活动中的行为准则,商务礼仪具体可以表述为三方面:一可以提供个人的素质:二有助于建立良好的人际沟通关系:三既能维护个人形象也能维护企业形象.看来商务礼仪在职场中是一个很重要的存在了.那么商务礼仪PT模板要怎么制作呢?看看小编的制作思路吧.可以从三个人方向来指定:一. 商务礼仪的作用:1. 内强素质,外塑形象2. 有助于对交往对象的恰倒好处的表示尊重和友善3. 维护形象(维护个人.企业以及国家的形象)二.商务礼仪的原则:1. 接受对方:必须注意交谈时的三不准:不要打断别人;不要轻易补

制作openstack windows镜像模板(官方镜像)

一.硬件及软件准备 1.物理机一台:要求支持硬件虚拟化,将centos7安装在物理机上 2.windows7的ISO ,可使用任意官方镜像,此处以windows7-x86为例. 3.下载virtio驱动 因为win默认不支持virtio驱动,而通过openstack管理虚拟机是需要virtio驱动的.需要两个virtio驱动,一个是硬盘的,一个是网卡 . 备注:要求对虚拟机进行内存监控,故在模版制作过程中需要安装virtio-balloon驱动 下载地址一: https://fedoraproj

Ubuntu使用Latex模板moderncv写简历

回家打开小电脑写个简历,但是moderncv在Ubuntu上编译有点问题啊.一点不惊讶,下面一步一步解决吧. 看到这里就JD不已: LaTeX is a markup language and also a system designed for generate high quality documents. Almost all scientific papers and most books published nowadays are generated with this system

毕业论文LaTeX模板

最近正在写毕业论文,找到一个自己需要的模板.但由于github好像不能分享,所以专门在这里写一下,然后在分享出来.如果有需要的可以拿去. 网址如下:https://github.com/RonTs/zzuthesis 声明,模板非原创,是Fork过来的.原作者应该是大我几届的学长,在这里要感谢原作者.