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}[]{@{}llll@{}}
\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更适合写这种程序。

效果图

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

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

    国内大学毕业论文LaTeX模板集合 薛瑞尼的清华大学学位论文LaTeX模板http://sourceforge.net/projects/thuthesis/ 北大论文文档 LaTeX 模板 pkut ...

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

    目录 1 当前美赛模板通行情况的概述 2 easymcm宏包说明 2.1 与mcmthesis的关系之说明 2.2 easymcm宏包的简介 2.3 美赛模板下载地址 3 常见问题的解决方案 若您无意 ...

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

    目录 1 当前美赛模板通行情况的概述 2 EasyMCM 宏包说明 2.1 与 mcmthesis 的关系之说明 2.2 easymcm宏包的简介 2.3 美赛模板下载地址 3 README 摘录 3 ...

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

    西北工业大学学位论文LaTeX模板 http://code.google.com/p/nwputhesis/ 西北工业大学硕博士论文LaTeX模版 http://code.google.com/p/n ...

  5. WPF--Blend制作Button控件模板

    博客园新人,WPF初学者.不涉及理论知识,直接进入操作. 记录一下使用Blend制作Button控件模板过程中,学到Blend几个知识点: 1.渐变画笔编辑器的Alpha选项可以调控件的透明度.即下图 ...

  6. 个人博客制作如何选择前端模板 thinkcmf后台加载新模板 CSS js文件

    我们的博客后台已经搭建好了,接下来我就要选择一个合适的模板做自己的博客,首先要定位你的博客是做什么用的,是属于什么行业,根据自己博客的定位选择适合的模板. 如果你是设计师,又会前端设计开发,那就可以自 ...

  7. IEEE LaTeX模板使用BibTeX

    IEEE LaTeX 模板使用 BibTeX 在Google Scholar获得的文献引用格式一般是BibTex的,而IEEE Transactions的模板默认用的是BibItem.目前没有什么自动 ...

  8. 山东大学硕士/博士研究生毕业论文--Latex模板

    山东大学硕士/博士研究生毕业论文Latex模板 模板下载地址:  https://github.com/Tsingke/SDU_thesis_template_for_postgraduate 封皮预 ...

  9. LaTeX模板 - FORMCM

    LaTex 模板 - FORMCM \documentclass{mcmthesis} \mcmsetup{CTeX = true, % 使用 CTeX 套装时,设置为 true tcn = 8989 ...

随机推荐

  1. Oracle层次查询

    Oracle层次查询的语法如下: 下面根据两道“烧脑”的题具体来体现: 1. 根据时间先后顺序,十二星座的英文名称用逗号串起来为'Aries,Taurus,Gemini,Cancer,Leo,Virg ...

  2. AJAX之JSON

    AJAX=Asynchronous JavaScript and XML(异步的JavaScript 和XML). AJAX不是新的编程语言,而是一种是用现代标准的新方法,用于创建快速动态网页的技术. ...

  3. 二、获取AccessToken

    二.获取AccessToken 1.官方文档: access_token是微信官方公众号调用接口的全局唯一票据,开发者调用任何接口都需要使用access_token,由于access_token有效期 ...

  4. ThinkPHP 3.1.2 模板的使用技巧

    本节课大纲: 一.模板包含 <include file="完整模板文件名" /> <include file="./Tpl/default/Public ...

  5. aspx向silverlight传值

    原文:http://www.cnblogs.com/lensso/archive/2010/07/27/1785844.html 方法1: 向嵌入aspx页面的silverlight对象添加imnit ...

  6. C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式.

    C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式. 目录: 1.多重继承在内存中的表现形式 多重继承在汇编中的表现形式 2.菱形继承 普通的菱形继承 虚继承 汇编中的表现形 ...

  7. java 需要准备的知识(转摘)

    需要准备的知识 以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实 ...

  8. mysql主从复制(半同步方式)

    mysql主从复制(半同步方式) 博客分类: MySQL mysqlreplication复制  一.半同步复制原理介绍 1. 优点 当事务返回客户端成功后,则日志一定在至少两台主机上存在. MySQ ...

  9. git 恢复误删的分支

    在使用git的过程中,因为人为因素造成分支(commit)被删除,可以使用以下步骤进行恢复. 首先用以下步骤创建一个新分支,修改一些文件后删除,以便进行恢复. 1.创建分支 abc git branc ...

  10. KiCad 5.1.0 正式版终于发布

    KiCad 5.1.0 正式版终于发布 前几天看到 KiCad 5.1.0 在官方的测试文件夹中,过了三天正式发布了,看来没什么问题了. 据说比 5.0 快了很多. 以下为官方的新闻. KiCad 5 ...