最近修改论文格式,遇到很多奇奇怪怪的latex格式问题,记录一下,避免以后踩坑!
latex使用时各种报错
- 1.
! LaTeX Error: File `xstring.sty' not found.
解决方法:
在CTAN中搜索xstring.sty并放置在对应文件夹中,编译(没搜到)
另一种方法:
sudo apt-get install texlive-full
安装时间较长,安装好就,所有问题解决。
-
2.编译Latex遇到 file ended while scanning use of @xdblarg or @frac
编译提示:
ended while scanning use of @frac之类,很可能是括号不完整,查找图标内容是否完整添加!!! -
3.Latex 表格中使用 \toprule、\midrule、\bottomrule,出现 undefined control sequence
缺少相应包需要导入:
\usepackage{booktabs}
- 4.Undefined control sequence.<recently read> \multirow
表格中需要插入多行时,报错提示如上,需要导入响应包:
\usepackage{multirow}
- 5.需要改变字体颜色
导入对应包:
\usepackage{color, xcolor}
使用:
\begin{document}
%\pagecolor{yellow} %设置背景色为黄色
\textcolor{green}{绿色} %1.方法一
{\color{orange}橙色} %2.方法二
\colorbox{red}{\color{black}红底黑字}
\fcolorbox{red}{green}{红框绿背景} %框色+背景色
表格
控制表格大小和长宽
(参考博客)
-
表格过宽
\resizebox{\textwidth}{15mm}{XXXX} -
表格过窄
\setlength{\tabcolsep}{7mm}{XXXX}
表格添加注释
latex中表格添加注释,网上方法较多,然而很多注释添加之后并不美观,最好的注释肯定是,注释和表格同宽,注释左对齐。要做到这点,有一组代码可以实现,如何操作需要在这里详细说明。
- step 1. 在文档最开始,在\begin{document}上面,添加\usepackage{threeparttable},建立环境。
- step 2. 转到表格处,在表格代码\begin{tabular}上面,添加一行\begin{threeparttable}。
- step 3. 在表格\label{xxx}下,\end{table}上,这之间的部分添加注释。
- step 4. 注释的代码为:
\begin{tablenotes}
\footnotesize
\item This is note content.
\end{tablenotes}
\end{threeparttable}
- 完整版代码如下
\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
\usepackage{booktabs}
\usepackage{threeparttable} %这行要添加
\begin{document}
\begin{table}[!ht]
\caption{A table with notes}\label{tab:tablenotes}
\centering
\begin{threeparttable} %这行要添加
\begin{tabular}{*4{c}}\toprule
Table head\tnote{1} & Table head\tnote{1} & Table head\tnote{2} & Table head\tnote{2} \\ \midrule
Some values & Some values & Some values & Some values \\
Some values & Some values & Some values & Some values \\
Some values & Some values & Some values & Some values \\
Some values & Some values & Some values & Some values \\ \bottomrule
\end{tabular}
\begin{tablenotes} %这行要添加, 从这开始
\footnotesize %这行要添加
\item[1] The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. %这行要添加
\item[2] The quick brown fox jumps over the lazy dog. %这行要添加
\end{tablenotes} %这行要添加
\end{threeparttable} %这行要添加,到这里结束
\end{table}
如何控制注释长度
\renewcommand{\TPTminimum}{\linewidth}
不过我在使用以上控制语句并没有解决问题,直接在超长处使用\\
进行换行操作。
图片
怎么控制latex插图的位置
在LaTex中,\begin{figure}[~]是图片环境,常用选择项[htbp]是浮动格式:
[h] ~ here,当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩页面不够,这一参数将不起作用。
[t] ~ top,顶部。将图形放置在页面的顶部。
[b] ~ bottom,底部。将图形放置在页面的底部。
[p] ~ page of its own,浮动页。将图形放置在一个允许有浮动对象的页面上。
一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是LaTex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
[!h]只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页的。一般而言,用[!h]选项通常会出现不能正确放置的问题,所以常用[ht]、[htbp]等。
这里加感叹号的意思是 忽略 “美学” 标准。
对于双栏图片使用上述符号控制失去效果,可以用\usepackege{float}
宏包的[H]选项。不过如果这样做,出现放不下的问题时需要手工调整。使用格式如下:
\usepackage{float}
%...
\begin{figure}[H]
foo
\end{figure}
实际例子:
导言区加入:\usepackage{stfloats}
插图的话使用如下环境:
\begin{figure*}[bp]
…
\end{figure*}
表格类似使用
\begin{table*}[bp]
…
\end{table*}
特殊符号
- 导入包
\usepackage{pifont} % \ding{xx}
\usepackage{bbding} % \Checkmark,\XSolid,... (需要和pifont宏包共同使用)
\usepackage{fontawesome} % \faCheck,\faTimes
% 采用如下宏定义更方便
\newcommand{\cmark}{\ding{51}}
\newcommand{\xmark}{\ding{55}}
\newcommand{\crossmark}{\ding{53}}
- 加入特殊符号
\checkmark
\Checkmark
\CheckmarkBold
\XSolid
\XSolidBold
\XSolidBrush
\ding{51}
\ding{52}
\ding{53}
\ding{54}
\ding{55}
\ding{56}
\faCheck
\faTimes
- 效果
参考文献
当使用texlive时,论文中始终无法生成参考文献,考虑:
- 是否环境设置有问题
在使用Latex之前,我们一般会借用已有的论文模板,在模板基础上加入我们自己的文章内容,随后编译成PDF文件,其基本流程就是:Latex->Bibtex->Latex->Latex。
- 第一步点击Latex编译,可以获得*.aux文件、.dvi文件、.log文件以及*.gz文件;
- 第二步点击Bibtex编译,可以获得*.blg(性能监视器文件)和*.bbl文件;
- 第三步再次点击Latex编译,获得新的*.aux文件、.dvi文件、.log文件以及*.gz文件;
- 第四步再次点击Latex编译。
- 加入bib语句
在正式的文章部分中加入以下语句:
\bibliographystyle{ACM-Reference-Format}
\bibliography{bibfile}