Contents

Latex排版的技巧记录

我在2017年的时候第一次接触Latex,从当时到现在都只会使用现成的模板来写文档,安装也麻烦,修改也麻烦,overleaf也麻烦(网速也不好,编译的时候总会突然的crash),综合起来它给我的印象就是两个字———“麻烦”。年少轻狂的时候用Latex写实验报告觉得蛮拉风,到后来更喜欢用markdown来写各种笔记。然而Latex的排版以及生成PDF的方便还是非常诱人滴,最近因为需求又开始重拾Latex排版了,并且需要自己修改样式,因此记录一下学到的东西。

1. 中英文设置不同的字体

1
2
3
4
5
6
7
8
% 英文字体配置部分
\setmainfont{Source Serif Pro}
\setsansfont{Source Sans Pro}
\setmonofont{Source Code Pro}
\usepackage{ctex}
\setCJKmainfont[BoldFont=Source Han Serif SC SemiBold]{Source Han Serif SC} %正文字体
\setCJKsansfont[BoldFont=Source Han Sans SC Medium]{Source Han Sans SC Normal} %无衬线字体
\setCJKmonofont{Source Han Sans SC Normal} %等宽字体

2. Chapter样式

让章节的样式比较好看,我比较喜欢Bjornstrup这个主题

1
\usepackage[Bjornstrup]{fncychap}

效果如下:

3. 代码样式

Latex默认的代码样式是带边框,没有行号的,可以使用listings包美化成markdown风格的代码样式,以下的代码来自OverLeaf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
\usepackage{listings}
\usepackage{xcolor}

\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\footnotesize,
    breakatwhitespace=false,
    breaklines=true,
    captionpos=b,
    keepspaces=true,
    numbers=left,
    numbersep=5pt,
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    tabsize=2
}

\lstset{style=mystyle}

另外,也可以使用minted包进行语法高亮。

4. 页眉和页脚

使用fancyhdr来自定义页眉和页脚。

1
2
3
4
5
6
7
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\rhead{Apache ShardingSphere Document}
\lhead{\leftmark}
\rfoot{Page \thepage}

5. 自动换行

在编译的时候会有overfull或者underfull的提示,PDF文件中的具体表现是有文字超出页面显示范围,尤其是url长链接。
解决方法:使用hyperref包

1
\usepackage[breaklinks]{hyperref}

6. 总结

总算小小的入门了latex,虽然只是在模板的基础上进行简单的修改。在搜集资料的过程中发现Overleaf的latex文档真的非常完善,mark一下以便后续学习。

最近的心态有一点差,感觉自己每天的效率都挺低的,每天都在自我怀疑中度过,自我反思问题可能出在自己没有多交流、多沟通、多了解,而是呆在自己的小圈子里面不了解实际情况地瞎想,而且自己的决心并不够坚定,并没有非常确信自己没有退路。
我对自己的建议是:

  • 多提问,多沟通;
  • 用瞎想焦虑的时间做一些其他的事情提升自己的科研背景;
  • 尽人事,听天命。(前提是真的尽了人事)

参考

  1. LaTeX补充:中英文不同的字体设置 https://muyuuuu.github.io/2019/03/02/latex-supplement3/
  2. Understanding underfull and overfull box warnings https://www.overleaf.com/learn/how-to/Understanding_underfull_and_overfull_box_warnings
  3. LaTeX 里「添加程序代码」的完美解决方案 https://zhuanlan.zhihu.com/p/65441079
  4. Code listing https://www.overleaf.com/learn/latex/Code_listing
  5. Headers and footers https://www.overleaf.com/learn/latex/Headers_and_footers
  6. Understanding underfull and overfull box warnings https://www.overleaf.com/learn/how-to/Understanding_underfull_and_overfull_box_warnings