0%

LaTeX学习笔记(2) 文章书写技巧

  1. 参考1:Latex入门教程|CSDN
  2. 参考文献上标
  3. 自定义环境
  4. 自定义字体
    1. 中文字体设置
      1. ctex自带字体
      2. 设置系统字体(使用xeCJK)
  5. def的用法
  6. clearpage
  7. 可变参数的自定义宏
  8. 自定义页眉页脚
  9. 空格
  10. 条件判断
  11. 设置标题间距
  12. 解决模板宋体无法加粗和斜体的问题
  13. 表格边框加粗
  14. 插入并列多图
  15. 参考文献之间的间距
  16. 算法伪代码
  17. 行距设置的三种方法
  18. ctex自定义目录格式
    1. 章节与目录深度
    2. 设置字体、一级标题加粗、与页码连接的虚线
    3. 章节标题使用“第xx章”
  19. 设置图表标题

参考1:Latex入门教程|CSDN

https://blog.csdn.net/u014803202/article/details/50410748

参考文献上标

https://blog.csdn.net/bi_hu_man_wu/article/details/72465664

a. 连续参考文献序号

b. 参考文献上标

参考:Latex 参考文献上标_bi_hu_man_wu的博客-CSDN博客

在文章开头添加如下代码,新增命令\upcite,借助\textsuperscript来实现上标。

1
\newcommand{\upcite}[1]{\textsuperscript{\textsuperscript{\cite{#1}}}}

效果如下:

image-20201119230532993

c. 更好看的大于小于号

d. 大图下的四幅小图都有标号

自定义环境

https://blog.csdn.net/sdu_hao/article/details/101392629

image-20201122164147933

自定义字体

字体识别:https://www.likefont.com/

导入自定义字体文件(ttf):https://blog.csdn.net/ProgramChangesWorld/article/details/51882726

中文字体设置

ctex自带字体

字体 命令1 命令2
宋体 \songti \CJKfamily{zhsong}
黑体 \heiti \CJKfamily{zhhei}
仿宋 \fangsong \CJKfamily{zhfs}
楷书 \kaishu \CJKfamily{zhkai}
隶书 \lishu \CJKfamily{zhli}
圆体 \youyuan \CJKfamily{zhyou}
微软雅黑 \yahei \CJKfamily{zhyahei}

参考:Latex 对中文字体设置的一些解决

设置系统字体(使用xeCJK)

查找可用字体:fc-list :lang=zh

image-20201123143312015

1
2
\setCJKfamilyfont{kaiti}{KaiTi}
\newcommand{\kaiti}{\CJKfamily{kaiti}}

参考:Latex 对中文字体设置的一些解决

def的用法

https://blog.csdn.net/u014713475/article/details/80651662

自定义变量:https://blog.csdn.net/robertchenguangzhi/article/details/50461514

clearpage

新一页

https://blog.csdn.net/zd0303/article/details/7572992

可变参数的自定义宏

https://davidyat.es/2016/07/27/writing-a-latex-macro-that-takes-a-variable-number-of-arguments/

自定义页眉页脚

http://www.ctex.org/documents/packages/layout/fancyhdr.htm

https://blog.csdn.net/markpen/article/details/42241067

https://blog.csdn.net/yq_forever/article/details/84024456

首页双线页眉:http://blog.sina.com.cn/s/blog_5e16f1770100me8u.html

fancyhdr官方文档:http://mirrors.ctan.org/macros/latex/contrib/fancyhdr/fancyhdr.pdf

http://www.ctex.org/documents/packages/layout/fancyhdr.pdf

空格

https://blog.csdn.net/luolang_103/article/details/81289529

image-20201123164257384

条件判断

ifthen

https://ctan.org/pkg/ifthen?lang=en

设置标题间距

https://www.jianshu.com/p/d7848f815e5f

1
2
3
\RequirePackage{titlesec}
\titleformat
\titlespacing

解决模板宋体无法加粗和斜体的问题

image-20201124172200389

原模板有这么一句:

image-20201124172219861

但我们自己写的用的是ctexart的class,使用这句会提示参数冲突(clash)

自己写一句字体设置语句,可以解决问题:

1
2
3
%%% 解决宋体无法加粗斜体的问题
\setCJKfamilyfont{zhsong}[AutoFakeBold=true,AutoFakeSlant=true]{SimSun}
\renewcommand*{\songti}{\CJKfamily{zhsong}}

参考:https://blog.csdn.net/songyuc/article/details/80271607

表格边框加粗

https://blog.csdn.net/loveaborn/article/details/9151505

booktabs

插入并列多图

https://blog.csdn.net/a6822342/article/details/80533135

要用subfigure,不要用subcaption

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
\begin{figure*}
\centering
\subfigure[JSEG,250]{
\centering
\includegraphics[width=0.3\textwidth]{figures/JSEG-250.png}
}
\quad
\subfigure[JSEG,500]{
\centering
\includegraphics[width=0.3\textwidth]{figures/JSEG-500.png}
}
\quad % ↓这个空行很重要

\subfigure[光谱纹理+分水岭,250]{
\centering
\includegraphics[width=0.3\textwidth]{figures/benwen-250.png}
}
\quad
\subfigure[光谱纹理+分水岭,500]{
\centering
\includegraphics[width=0.3\textwidth]{figures/benwen-500.png}
}
\bicaption{方法与目标区数量}{Method and Target Area Number}
\label{fig:compare-jseg}
\end{figure*}

image-20201124220614580

参考文献之间的间距

1
\setlength{\bibsep}{0.0pt} % 参考文献之间的间距

http://www.texfaq.org/FAQ-compactbib

算法伪代码

Latex-算法伪代码 - 知乎 (zhihu.com)

引入宏包

1
2
\usepackage{algorithm}
\usepackage{algorithmic}

官方示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\begin{algorithm} 
\caption{Calculate $y = x^n$}
\label{alg3}
\begin{algorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\STATE $y \gets 1$
\IF{$n < 0$}
\STATE $X \gets 1 / x$
\STATE $N \gets -n$
\ELSE
\STATE $X \gets x$
\STATE $N \gets n$
\ENDIF
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \gets X \times X$
\STATE $N \gets N / 2$
\ELSE[$N$ is odd] \STATE $y \gets y \times X$
\STATE $N \gets N - 1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\end{algorithm}

image-20220402062216453

添加注释

1
\STATE $\mu_B \gets \frac{1}{m}\sum^m_{i=1}x_i$ \COMMENT{均值}

行距设置的三种方法

设置行距为倍数:

1
\linespread{1.5}\selectfont

以上命令等价于:

1
\renewcommand{\baselinestretch}{1.5}\selectfont

以上两个命令完全一致,用来设置某一倍数的行距,在\begin{document}之前设置能够自动生效,但是在正文中,特别是某一小段落中无法生效,需要加上\selectfont来刷新行距信息,才能生效。因为\document包含\normalsize包含\@setfontsize包含\selectfont,相当于 \begin{document}处总是会执行一个\selectfont,所以在导言区使用的\linespread看起来自动生效了。

在文中更推荐使用以下命令:

1
\setlength{\baselineskip}{1.5em}

参数单位可以是ptcmmmem(多少倍)、in(inch),控制较为灵活,且不需要额外命令控制刷新。

ctex自定义目录格式

用latex写毕业论文—用 titletoc包重设目录格式_52Hz的博客-CSDN博客_latex中titletoc

使用宏包ctexbook,里面有个命令\tableofcontents可以直接生成目录,但是格式不符合要求,需要修改。

章节与目录深度

深度为2,即到1.1.1

1
2
\ctexset{tocdepth = 2}  % 目录深度
\ctexset{secnumdepth = 3} % 章节深度

设置字体、一级标题加粗、与页码连接的虚线

1
2
3
4
5
6
7
8
9
10
\usepackage{titletoc}
\titlecontents{chapter}[0em]{\vspace*{0.5em}\zihao{-4}\songti\bf}
{\thecontentslabel~~~ }{}
{\hspace{0em}\titlerule*{.}\contentspage}
\titlecontents{section}[1em]{\vspace*{0.5em}\zihao{-4}\songti}
{\thecontentslabel ~~}{}
{\hspace{0em}\titlerule*{.}\contentspage}
\titlecontents{subsection}[2em]{\vspace*{0.5em}\zihao{-4}\songti}
{\thecontentslabel~~}{}
{\hspace{0em}\titlerule*{.}\contentspage}

章节标题使用“第xx章”

1
2
3
4
\ctexset{chapter = {
number = {\chinese{chapter}},
name={第,章},
}}

设置图表标题

1
2
3
4
5
6
%%%%% ----- 设置图表标题 ----- %%%%%
\captionsetup[figure]{name={图},labelsep=space}
\captionsetup[table]{name={表},labelsep=space}
%space去掉点
%period加点
%不加space、period这两个就是冒号