LaTeX NOTE
LaTeX——学习过程的困扰记录
前言: 暂未进行系统性latex学习,所以本文收录了各种基本的设置问题。
附: pdf戳此:一份不太简短的 LATEX2e 介绍
1.编译问题
1.1 报错:File ended while scanning use of @writefile
早上在修改编译论文时发现了这个问题,仔细检查代码并没发现错误,一时也找不到具体的解决办法。我一直以为是因为runaway argument的错误提示,可实际上就是因为aux文件没有完整输入,导致上次编译结束后aux文件的部分内容缺失。处理方法嘛,很简单。
解决方法:删除编译文件夹内.aux扩展名结尾的文件,重新用Latex命令进行编译,自动生成正确的aux文件,完成错误的修复。
注:如果还不好使,就把除.tex以外的文件均删除掉,如:.bbl,.blg,.dvi,.log等
英文原文见这里:
Solution to: File ended while scanning use of @writefile
Recently came across this error in latex. This shows up every time I try to compile the code after I first saw this error and restarting my system or the latex editor did not help-
Runaway argument?
! File ended while scanning use of @writefile.
par
l.110 begin{document}
This error is seen typically because of an incomplete entry in the aux file and can be removed by deleting the file with .aux extension in the latex source.
To re-generate these aux files “latex” needs to be run. Note – you have to run latex and not texify or any other tool.
Good luck.
1.2 自动安装宏包
链接戳此:CTeX自动安装宏包(package)解决Error .sty not found
1.3 LaTex不能预览生成的PDF文件的解决办法
1.4 LaTeX 常用宏包
2.字体类
2.1 形状
系列:
mdseries 普通
bfseries 加粗
形状:
upshape 竖直
slshape 倾斜
itshape 斜体
scshape 大写小写
2.2 字体字号对应
2.3 中文字体选择
tex宏包里定义的字体命令
\documentclass{ctexart}
\begin{document}
\begin{tabular}{|lll|}
\hline
\songti 宋体 & SimSun &\verb|\songti 宋体| \\
\kaishu 楷体 & KaiTi &\verb|\kaishu 楷体| \\
\heiti 黑体 & SimHei &\verb|\heiti 黑体| \\
\yahei 微软雅黑 & Microsoft YaHei &\verb|\yahei 微软雅黑| \\
\fangsong 仿宋 & FangSong &\verb|\fangsong 仿宋| \\
\youyuan 幼圆 & YouYuan &\verb|\youyuan 幼圆| \\
\lishu 隶书 & LiSu &\verb|\lishu 隶书| \\
\hline
\end{tabular}
\end{document}
华文系列字体自定义命令
\documentclass{ctexart}
\usepackage{xeCJK}
\renewcommand{\songti}{\CJKfontspec{STSong}}% 华文宋体
\newcommand{\zhongsong}{\CJKfontspec{STZhongsong}}%华文中宋
\renewcommand{\kaishu}{\CJKfontspec{STKaiti}}%华文楷体
\newcommand{\xingkai}{\CJKfontspec{STXingkai}}%华文行楷
\newcommand{\xihei}{\CJKfontspec{STXihei}}%华文细黑
\renewcommand{\fangsong}{\CJKfontspec{STFangsong}}%华文仿宋
\renewcommand{\lishu}{\CJKfontspec{STLiti}}%华文隶书
\newcommand{\caiyun}{\CJKfontspec{STCaiyun}}%华文彩云
\newcommand{\hupo}{\CJKfontspec{STHupo}}%华文琥珀
\begin{document}
\begin{tabular}{|cll|}
\hline
\songti 华文宋体 & STSong & \verb|\songti 华文宋体| \\
\zhongsong 华文中宋 & STZhongsong & \verb|\zhongsong 华文中宋| \\
\kaishu 华文楷体 & STKaiti & \verb|\kaishu 华文楷体| \\
\xingkai 华文行楷 & STXingkai & \verb|\xingkai 华文行楷| \\
\xihei 华文细黑 & STXihei & \verb|\xihei 华文细黑| \\
\fangsong 华文仿宋 & STFangsong & \verb|\fangsong 华文仿宋| \\
\lishu 华文隶书 & STLiti & \verb|\lishu 华文隶书| \\
\caiyun 华文彩云 & STCaiyun & \verb|\caiyun 华文彩云| \\
\hupo 华文琥珀 & STHupo & \verb|\hupo 华文琥珀| \\
\hline
\end{tabular}
\end{document}
2.4 Latex中如何设置字体颜色(三种方式)
1.直接使用定义好的颜色
\usepackage{color}
\textcolor{red/blue/green/black/white/cyan/magenta/yellow}{text}
其中textcolor{...}中包含的是系统定义好的颜色
2.组合red、green和blue的值合成我们想要的颜色
\usepackage{color}
\textcolor[rgb]{r,g,b}{text}
其中{r,g,b}代表red、green和blue三种颜色的组合,取值范围为[0-1]
\textcolor[RGB]{R,G,B}{text}
其中{R,G,B}代表red、green和blue三种颜色的组合,取值范围为[0-255]
3.定义一种颜色,直接调用
\usepackage{color}
\definecolor{ColorName}{rgb}{r,g,b} 这时r/g/b的定义域就在[0-1]。
\definecolor{ColorName}{RGB}{R,G,B},这时R/G/B的定义域就在[0-255]。
这里为颜色定义了名称ColorName,下面可以直接调用这个颜色方案
\textcolor{ColorName}{text}
3. 排版设计
3.1 使用多级标题
一般论文,三级标题够用,四级的格式就恢复为正文。
技术实现:
1.插入库,代码如下:
\setcounter{secnumdepth}{4}
2.插入标题命令,代码如下:
\section{一级标题}
\subsection{二级标题}
\subsubsection{三级标题}
3.插入分论点,代码如下:
\begin{enumerate}
\item[1)]Accurately and effectively...
\item[2)]Realizing the model-free...
\item[3)]The experiment on...
\end{enumerate}
*\item[ ], [ ]里的内容随意发挥,黑点等等。
*亲测有效
3.2 改变section、subsection等的fontstyle
首先确定使用的宏包是titlesec
\usepackage{titlesec}
然后设置你想使用的字体(中英各一个)
\newfontfamily\sectionef{LithosPro-Regular}
\newCJKfontfamily\sectioncf{DFWaWaSC-W5}%我电脑上的娃娃体文字的PostScript的名称
然后开始设置各个的新格式
\titleformat*{\section}{\LARGE\sectioncf}
\titleformat*{\subsection}{\Large\sectionef}
\titleformat*{\subsubsection}{\large\bfseries}
\titleformat*{\paragraph}{\large\bfseries}
\titleformat*{\subparagraph}{\large\bfseries}
3.3 文本居中
\centerline
语法:\centerline{文本}
这是 TeX 的原始命令,适用于居中较短的文本。
center 环境
语法:
\begin{center}
第一行 \\
第二行 \\
\end{center}
center环境可以实现多行居中对齐。
在center环境中,如果“第一行”太长了,则会自动换行,并且换行的文本也还是居中对齐的,因此这是我们很常用的方式。
3.4 使用 WinEdt 来写中文文章or 建模论文
WinEdt 是可以用来写中文文章的…而并非只能英文文章或演示文稿…
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{song}
这里输入中文
\end{CJK*}
\end{document}
例子:
\documentclass[UTF8]{article}
\usepackage{CJK}
\usepackage{geometry}
\geometry{a4paper,margin=1in}
\author{000}
\date{\today}
\begin{document}
\begin{CJK}{GBK}{song}
\title{中文文章}
\maketitle
\begin{abstract}
摘要摘要
\end{abstract}
\section{介绍}
这是第一部分 介绍
\begin{equation}
E= mc
\end{equation}
\section{主要内容}
这是第二部分 主要内容
\begin{equation}
E= mc
\end{equation}
\end{CJK}
\end{document}
3.5 用LaTex制作幻灯片(slide)###
3.6 LaTeX 表示断行和分页
3.7 标题居中(类推到其他各种标题)
\usepackage[justification=centering]{caption} %让图标题居中的包
3.8 修改自带abstract标题的字号和字体大小
article类型自带的\begin{abstract}的标题很小, 想把它放大的话有两种方法:
\renewcommand{\abstractname}{\large Abstract\\}
这种方法通过改变abstract的名字, 同时增加了字号. 可以按自己的大小要求修改\large或者标题名字修改后面的Abstract.
还有一种, 要先引入abstract包.
\usepackage{abstract}
\renewcommand{\abstractnamefont}{\Large\bfseries}
直接修改字体.
3.9 Latex强制图片位置
常用选项[htbp]是浮动格式:
『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
『t』顶部。将图形放置在页面的顶部。
『b』底部。将图形放置在页面的底部。
『p』浮动页。将图形放置在一只允许有浮动对象的页面上。
一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
!h 只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页的。一般页言,用 [!h] 选项经常会出现不能正确放置的问题,所以常用 [ht]、[htbp] 等。
如果你确实需要把图片放在当前位置,不容改变,可以用float宏包的[H]选项。不过如果这样做,出现放不下的问题时需要手工调整。使用格式如下:
\usepackage{float}
3.10 关于LaTeX中的正文的字体大小
LaTeX文档中通过\docummentclass[12pt]{article}
设置正文的字体大小只有3种值10pt,11pt,12pt。
3.11 插入图片及其引用
以下代码可直接复制粘贴 运行:
\documentclass{article}
%注意需要导包
\usepackage{caption}
\usepackage{graphicx, subfig}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=.8\textwidth]{1.png} %1.png是图片文件的相对路径
\caption{best} %caption是图片的标题
\label{img} %此处的label相当于一个图片的专属标志,目的是方便上下文的引用
\end{figure}
\end{document}
注意:
- 导包
- caption 如果放在
\includegraphics[width=.8\textwidth]{1.png}
这句话的下面 那么生成出的图片标题也在图片下面;如果\caption 写在这句话的上面 那么图片标题在图片的上面。
width的参数格式介绍:
\includegraphics [width=3in] {file.eps}
将 file.eps 插入文档并且它的宽度被缩放到 3 英寸,高度也会 按相应的比例缩放。
如果用 \textwidth 或 \em 等的函数来 指定宽度,而不是用像 3 英寸这样的固定尺寸,将会使你的 LATEX 文 档更具通用性。
例如: \includegraphics [width=\textwidth] {graphics.eps}
将所插入图形缩放到和文本行的宽度一样宽。
而下面的命令
\includegraphics [width=0.80\textwidth]{graphics.eps}
使得插入图形的宽度为文本行宽的 80%。
当与 calc 宏包配合使用 时,下面的命令可令图形的宽度比文本行宽少 2 英寸:
\includegraphics [width=\textwidth-2.0in]{graphics.eps}
label和ref的成对使用:
\ref最强大的功能在于引用
\label的作用是给这个标题定义一个供latex本身识别的编号, 方便其它地方引用。
比如在后文里要引用这幅图那么你在latex代码里应该输入重点内容:
This is figure \ref {img1}
这样做的好处是不用管这幅图是文中的第几幅图, 总能给出正确编号. (如果不加宏包就会显示图片的编号 加入宏包就会有超链接 点击可以跳转)
下列宏包的作用是为有超链接的地方设定样式:
\usepackage[colorlinks,linkcolor=red,anchorcolor=blue,citecolor=green]{hyperref}
%文件中可以有超链接的宏包并且可以为其设定样式
4. 数学公式编写
4.1 LaTeX编写分段函数
如果写成下面这种形式,在论文中你的公式会自动排序。
\begin{equation}
f(x)=\left\{
\begin{aligned}
x & = & \cos(t) \\
y & = & \sin(t) \\
z & = & \frac xy
\end{aligned}
\right.
\end{equation}
\begin{equation}
F^{HLLC}=\left\{
\begin{array}{rcl}
F_L & & {0 < S_L}\\
F^*_L & & {S_L \leq 0 < S_M}\\
F^*_R & & {S_M \leq 0 < S_R}\\
F_R & & {S_R \leq 0}
\end{array} \right.
\end{equation}
\begin{equation}
f(x)=
\begin{cases}
0& \text{x=0}\\
1& \text{x!=0}
\end{cases}
\end{equation}
\begin{equation}
\left\{
\begin{aligned}
\overset{.}x(t) &=A_{ci}x(t)+B_{1ci}w(t)+B_{2ci}u(t) \\
z(t) &=C_{ci}x(t)+D_{ci}u(t) \\
\end{aligned}
\right.
\end{equation}
而如果写成下面这种形式,就只是行内公式,不具有自动排序功能。
$$ f(x)=\left\{
\begin{aligned}
x & = & \cos(t) \\
y & = & \sin(t) \\
z & = & \frac xy
\end{aligned}
\right.
$$
$$ F^{HLLC}=\left\{
\begin{array}{rcl}
F_L & & {0 < S_L}\\
F^*_L & & {S_L \leq 0 < S_M}\\
F^*_R & & {S_M \leq 0 < S_R}\\
F_R & & {S_R \leq 0}
\end{array} \right. $$
$$f(x)=
\begin{cases}
0& \text{x=0}\\
1& \text{x!=0}
\end{cases}$$
$$
f(x)=\left\{
\begin{aligned}
\overset{.}x(t) &=A_{ci}x(t)+B_{1ci}w(t)+B_{2ci}u(t) \\
z(t) &=C_{ci}x(t)+D_{ci}u(t) \\
\end{aligned}
\right.
$$
4.2 LaTeX 括号总结
4.3 常用数学符号的 LaTeX 表示方法
4.4 标准的表格格式
\begin{table}[htbp]
\centering % 显示位置为中间
\caption{standard table} % 表格标题
\label{table1} % 用于索引表格的标签
%字母的个数对应列数,|代表分割线
% l代表左对齐,c代表居中,r代表右对齐
\begin{tabular}{|c|c|c|c|}
\hline % 表格的横线
& & & \\[-6pt] %可以避免文字偏上来调整文字与上边界的距离
1&2&3&4 \\ % 表格中的内容,用&分开,\\表示下一行
\hline
& & & \\[-6pt] %可以避免文字偏上
0.1&0.2&0.3&0.4 \\
\hline
\end{tabular}
\end{table}