latex笔记

xeCJK和ctexart介绍

中英文混排问题一直是latex的核心问题,现在比较好的方式是使用CTex宏包,ctexart是Ctex宏包中的文档类,使用xelatex编译时,ctexart文档类会调用xeCJK宏包,自动处理汉字与其他符号之间的距离,下面这段就是成功中英文混排的好例子

\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

在linux上一般是安装texlive的,没有ctex宏包,可以使用xeCJK宏包来处理中英文混排,发现现在的texlive都有ctex了,厉害了

\documentclass{article}
\usepackage{xeCJK} %调用 xeCJK 宏包
\setCJKmainfont{SimSun} %设置 CJK 主字体为 SimSun (宋体)
\begin{document}
你好,world!
\end{document}

这里的字体是系统里的,像ubuntu里就没有宋体等等。
可以通过

fc-list :lang=zh-cn

来查看有的中文字体,出来的格式如下所示:

<字体文件路径>: <字体标示名1>, <字体表示名2>:Style=<字体类型>

标题作者和日期

我们来加上作者标题和日期

\documentclass[UTF8]{ctexart}
% 导言区
\title{你好,world!}
\author{Liam}
\date{\today}

% 正文
\begin{document}
\maketitle
你好,world!
\end{document}

\maketitle 类似于执行语句,将导言区定义的一些内容按照预定的格式展现出来,可以使用titling宏包来修改

段落和目录

常用结构
\section{勾股定理在古代}
\subsection{勾股1.1}
\subsubsection{勾股1.1.1}
范例

\documentclass[UTF8]{ctexart}
% 导言区
\title{你好,world!}
\author{Liam}
\date{\today}

% 正文
\begin{document}
\maketitle
% \setcounter{tocdepth}{2} 设定目录深度
\tableofcontents    
\section{勾股定理}
\subsection{勾股定理1.1}
\subsubsection{勾股定理1.1.1}
\end{document}

我们可以用 \tableofcontents 命令来生成目录。系统会自动设定目录
包含的章节层次,用户也可以显式指定目录层次深度。比如下面的命令指
定目录深度为 2,也就是只显示 subsection 及以上层次的目录。注意设定目
录深度命令要放在\tableofcontents命令的前面。

\setcounter{tocdepth}{2} %设定目录深度

如果我们不想让某些层次的标题出现在目录里,则可以加上星号。

\section*{...}
\subsection *{...}
\subsubsection *{...}

数学公式

amsmath宏包优化了数学公式,在导言区加上

\usepackage{amsmath}

使用 $ ... $ 可以插入行内公式,需要编号的行间公式

\begin{equation}
...
\end{equation}

不需要编号的行间公式

\begin{equation*}
...
\end{equation*}

不推荐使用$$ $$,会改变行文的默认间距,此外行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。

![](http://www.forkosh.com/mathtex.cgi? \Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a})

公式大小调整

有四个命令控制公式大小

\displaystyle D 行间公式的基本尺寸
\textstyle T 行内公式的基本尺寸大小
\scriptstyle S 一级角标的尺寸
\scriptscirptstyle SS 二级角标的尺寸大小

$\frac{1}{a + b}$ % 小公式
$\displaystyle\frac{1}{a + b}$ % 大公式

公式显示方式调整

行内公式有些符号的位置和行间公式不一样,不过我们可以通过\limits和\nolimits两个命令来调整

行内显示的行间公式:$\sum\limits_{i=1}^{n} \int\limits_{0}^{\infty}$\\
行间显示的行内公式:$$\sum\nolimits_{i=1}^{n} \int\nolimits_{0}^{\infty}$$

插入图片

首先在导言区

\usepackage{graphicx}

然后在正文

\begin{figure}
\centering
\includegraphics[width=.6\textwidth]{fig5.jpg}
\caption{发生事故时车流饱和状态图示}
\label{fig:myphoto} %后文可以引用
\end{figure}

这里我缩放为0.6倍以避免图片过大。
图标标题格式宏包caption

\usepackage[format=hang,font=small,textfont=it]{caption}

页面尺寸

纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm

\usepackage{geometry}
\geometry{papersize={20cm,15cm}}
\geometry{left=1cm,right=2cm,top=3cm,bottom=4cm}

设计页面尺寸 a6大小,居中,长宽占页面的0.8

\usepackage{geometry}
\geometry{a6paper,centering,scale=0.8}

页眉页脚设置

latex共有四种风格,默认是empty

  • empyt没有页眉页脚
  • plain没有页面,页脚是页码居中
  • headings 没有页脚,页眉是章节名称和页码
  • myheadings 没有页脚,页眉是页码和自定义内容。

可以使用\pagestyle{}设置整体风格,也可以用\thispagestyle{}设置当前页的风格。提倡用fancyhdr宏包,fancyhdr宏包对页眉页脚的控制非常freestyle。
例:在页眉左边写上我的名字,中间写上今天的日期,右边写上我的电话;页脚的正中写上页码;页眉和正文之间有一道宽为 0.4pt 的横线分割

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\zihao{-5}\songti 武汉理工大学《信息处理课群综合训练与设计》报告}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}

例2: 双线页眉,以及页眉上写两行字

\pagestyle{fancy}                    % 设置页眉
\lhead{page \thepage\ of \pageref{LastPage}}
\chead{页眉中间\\换行(两行中文)}
\rhead{\small\leftmark}
%===============
%双线页眉的设置
\makeatletter %双线页眉
\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi%
\hrule\@height 1.0pt \@width\headwidth\vskip1pt%上面线为1pt粗
\hrule\@height 0.5pt\@width\headwidth  %下面0.5pt粗
\vskip-2\headrulewidth\vskip-1pt}      %两条线的距离1pt
  \vspace{6mm}}     %双线与下面正文之间的垂直间距
\makeatother
%===============

行间距

虽然可以\linespread{1.25} 1.25倍行间距,但\linespread 命令不仅会改变正文行距,同时也把目录、脚注、图表、标题等的行距给改了;setspace宏包只会改变正文间距

\usepackage{setspace}
\singlespacing %单倍行距
\onehalfspacing %一倍半行距
\doublespacing %双倍行距
\setstretch {1.25} %任意行距

字体

宋体 ⿊体 仿宋 ⾪书 楷书
\songti \heiti \fangsong \lishu \kaishu

空格与换行

空行分段,段前不用空格,会自动缩进
汉字后面空格会自动省略,其他符号后面的空格会保留
单个换行相当于一个空格
首行缩进两个中文字符

\setlength{\parindent}{\ccwd}

脚注与引用

\footnote{这里是脚注}
\begin{quote}
\zihao{-5}\kaishu 这里是引用
\end{quote}

自定义引用环境

% 导言区
\newenvironment{myquote}{\begin{quote}\kaishu\zihao{-5}}{\end{quote}}
% 正文
\begin{myquote}
新的引用
\end{myquote}

摘要

\begin{abstract}
这里是摘要
\end{abstract}

定理

% 导言区
\newtheorem{thm}{我的定理} 
% 正文
\begin{thm}[勾股定理]
这里是定理
\end{thm}

1997--2001 起讫年份 用--

公式和图表的引用

在公式和图标的环境中加上\label,引用时用\ref

\label{fig:xiantu} \ref{fig:xiantu}
\label{eq:gougu} \ref{eq:gougu}

目录设置宏包tocbibind
\usepackage[nottoc]{tocbibind}

列表

无序列表

\begin{itemize}
\item C++
\item Java
\item Python
\end{itemize}

有序列表

\begin{enumerate}
\item C++
\item Java
\item Python
\end{enumerate}

超链接

使用hyperref宏包

  • 在正文中显示超链接的完整地址并且可以点击访问
% 导言区
\usepackage[colorlinks,linkcolor=red]{hyperref}
% 正文
\url{http:www.baidu.com}
  • 在正文中出现链接地址的话,而想用文字或其他字体显示链接
% 正文
\href{http:www.baidu.com}{百度}

删除多余文件

发现编译后会生成除了.tex和.pdf之外很多无用的文件

find ./ -name "*.out" -delete
find ./ -name "*.aux" -delete
find ./ -name "*.log" -delete
find ./ -name "*.synctex.gz" -delete

做成.sh脚本,或者直接复制我这段在terminal里运行

插入python代码

需要在github上下个宏包

% 导言区
\usepackage{pythonhighlight}
% 正文
\begin{python}
...此处省略代码
\end{python}

我的latex模板

\documentclass[UTF8]{ctexart}
% 超链接
\usepackage[colorlinks,linkcolor=red]{hyperref}
% 页面尺寸设置
\usepackage{geometry}
\geometry{left=1cm,right=1cm,top=3cm,bottom=4cm}
\CTEXsetup[format={\Large\bfseries}]{section} 

\usepackage{fancyhdr}
\pagestyle{empty}


\usepackage{pythonhighlight}

\begin{document}
    \section{参考}
    \begin{enumerate}
        \item 
        
    \end{enumerate}
    
    \section{正文}

\end{document}

你可能感兴趣的:(latex笔记)