Latex使用过程中的一些总结
本文主要总结在使用Latex过程中遇到的一些问题及解决方案。
一:关于参考文献
1、如何在paper同一处用\cite命令同时引用多篇文献?
用\cite{bibtex1}\cite{bibtex2}\cite{bibtex3},则编译以后的正文引用处显示的是[1][2][3];
用\cite{bibtex1,bibtex2,bibtex3},则编译以后的正文引用处显示的是[1,2,3];
怎样才能在正文显示的该引用出处的时候显示[1-3]?
\usepackage[numbers,sort&compress]{natbib} % 不过这会使参考文献字体变大。
用 \usepackage{cite} % \cite{bibtex1,bibtex2,bibtex3} --> [1]-[3]
2、如何使连续的参考文献能够中间用破折号连起来?比如[6,7,8,9]变成[6-9]?
方法:在文档开始前加上下面的语句命令
\usepackage[numbers,sort&compress]{natbib}
不但可以压缩参考文献标号,还可以进行排序,即无论正文里面的顺序怎样,显示出来都是先后顺序。
注意:在elsevier模板中,natbib包已经默认引用了,无需重新引用,改一下natbib的选项即可,设置方法如下:
\biboptions{numbers,sort&compress}
以下是顺便查到的,觉得也挺好,仅作参考。
3、如何实现参考文献标号在右上角?
方法:在文档开始前加上下面的语句命令
\newcommand{\upcite}[1]{\textsuperscript{\textsuperscript{\cite{#1}}}}
然后引用的时候使用\upcite{}的格式(一般的正常引用格式为\cite{})
4、更改参考文献字体大小,段距和行距
\footnotesize % 更改字体大小
\setlength{\bibsep}{0.5ex} % 设置段距
\bibliographystyle{elsarticle-num}
\begin{spacing}{1.0} % 设置行距
\bibliography{references}
\end{spacing}
上述代码需要添加包\usepackage{setspace}
二:Latex 调整断字,连接符,取消断词/断字
latex使用了处理断字的算法去自动的找断字的地方,而且latex会调整单词间距,使得文章看起来不会显得疏密不一致。大多数情况下,这些算法都工作得很好。但是因为断字的算法是根据某种规则来处理单词的断字,而不是依照人工事先标注的字典,所以,它仍然会出问题。或是在不该断的地方断开了,又或者是断开的地方太多了等等。在latex下可以通过调整参数和指定断字点来处理这些问题。
在LaTex下可以通过设置参数和指定断字点来获得满意的断字。
-) 调整参数
\hyphenpenalty=5000
\tolerance=1000
把这两个参数的调整加到tex文件里。hyphenpenalty值越大断字出现的就越少。tolerance越大,换行就会越少,也就是说,LaTex会把本该断开放到下一行的单词,整个儿的留在当前行。
调这两个值有可能可以解决断字太多的问题。
-) 手动调整
如果遇到了断开的地方不对的情况,也可以手动来指定一个单词应该怎么断。
\hyphenation{hy-phen-a-tion}
这个命令告诉latex,hyphenation只能从标有短横线(-)的地方断开。
-) 取消断词/断字
某些期刊可能规定段落边上不能出现hyphen,如下设置即可:
可以将下面语句放在导言区:
\tolerance=1
\emergencystretch=\maxdimen
\hyphenpenalty=10000
\hbadness=10000
三:Latex Error:‘acmart.cls’ not found 解决方案
windows下latex编译ACM论文模板时,出现Latex Error:‘acmart.cls’ not found,解决方案:
- 首先cd至模板所在目录下,然后运行以下命令:
- tex acmart.ins
四:LaTeX 公式字体大小设置
字体大小:
七号 5.25pt 1.845mm \tiny
六号 7.875pt 2.768mm \scriptsize
小五号 9pt 3.163mm \footnotesize
五号 10.5pt 3.69mm \small
小四号 12pt 4.2175mm \normalsize
四号 13.75pt 4.83mm \large
三号 15.75pt 5.53mm \Large
二号 21pt 7.38mm \LARGE
一号 27.5pt 9.48mm \huge
小初号 36pt 12.65mm \Huge
初号 42pt 14.76mm
使用方法:替换下面代码中的small即可
\begin{small}
\begin{equation}
\ldots
\end{equation}
\end{small}
五:LaTeX 正文段落与间距设置
\setlength{\lineskip}{2em} % 设置行间距
\setlength{\parskip}{2em} % 设置段落间距
\usepackage{geometry}
\geometry{a4paper,scale=0.8} %设置了纸张为a4 纸,并且版心占页面长度的比例为80%;scale也可以改为ratio,表示版面边距占页面长度的比例。
\geometry{a4paper,left=2cm,right=2cm,top=1cm,bottom=1cm} %该宏包还可以设置页面的上下左右边距
\linespread{1.2} %设置行间距
六:公式技巧
1. 加粗变量
\usepakage{bm}
\bm{变量}
2. 求和,求乘积,积分,等公式的上下限设置
通过\limits 与 \nolimits可以改变缺省值。其中行间公式缺省使用\nolimits 而独立公式缺省使用\limits。如果要改变缺省规则,就要在符号后面、上下限之前加入上面的两个命令

或者

六:算法
1. 在Latex中使用algorithm2e显示if-elseif-else-endif
在algorithm2e中,\If, \Else, \ElseIf都是会以endif结尾的,而\uIf, \lIf, \uElse, \lElse, \uElseIf, \lElseIf都是不带endif的。u和l的区别是,u是块级元素,而l是行内元素。
通过上面9个标签的组合,就可以实现if-elseif-else-endif及其他组合。

例子:

2. 算法的缩进调整
命令为:\SetInd{0.5em}{0.6em}
左右分别为不使用上述命令和使用上述命令的情况。可以看到,使用上述命令时,while if for之间的空隙会减小,且数字越小,减小越多。

七:引用
1. 重复使用footnote,即脚注重复的情况,可以用下述方法解决。
第一次出现:\footnote{\label{footnote-1}some text.}
第二次出现:\textsuperscript{\ref{footnote-1}}
八:字体设置
1. 字体族设置
% 导言区
\documentclass{article}
\usepackage{ctex} % 正文区
\begin{document}
% 字体族的设置:罗马字体, 无衬线字体 打字机字体 中文(黑体,宋体,仿宋,楷书) % 字体命令
\textrm{Roman Family} \textsf{Sans Serif Family} \texttt{Typewriter Family } % 字体
{\songti 宋体} {\heiti 黑体} {\fangsong 仿宋} {\kaishu 楷书} % 字体声明
\rmfamily Roman Family
\sffamily Sans Serif Family
\ttfamily Typewriter Family \end{document}
输出示例

2. 字体系列设置
\begin{document}
% 字体系列的设置(粗细,宽度)
% 字体命令
\textmd{Medium Series}
\textbf{Boldface Series}
%字系列
\textbf{粗体}
\textit{斜体}
% 字体声明
\mdseries{Medium Series}
\bfseries{Boldface Series}
\end{document}
输出示例:
3. 字体形状设置
\begin{document}
% 字体形状设置(直立,斜体,伪斜体 ,小型大写)
% 字体命令
\textsf{BitFlipPM}
\textup{Upright Shape}
\textit{Italic Shape}
\textsl{Slanted Shape}
\textsc{Small Caps Shape}
% 字体声明
\upshape{Upright Shape}
\itshape{Slanted Shape}
\slshape{Slanted Shape}
\scshape{Small Caps Shape}
\end{document}
输出示例:


4. 字体大小对应表
Latex使用过程中的一些总结的更多相关文章
- Latex编译过程中遇到的奇奇怪怪的问题及解决方案
标签(空格分隔): 杂七杂八的问题 有必要写一个博文记录自己在Latex编译时遇到的各种问题,希望可以帮到遇到同样错误的亲故.讲真,一直没有系统的学习Latex,都是投哪个会直接拿那个会的模板来套,然 ...
- Latex — 写作编译过程中遇到问题记录与总结
最近在训练的时候,又开始用Latex进行写作.碰到了很多问题,将问题进行记录与总结. 一.输出中文的问题 由于写作的时候用的是中文,而之前用的是英文,故碰到的第一个问题就是中文的问题.我之前下的是Wi ...
- latex编译过程-关于嵌入所有字体
我们的初始目的是想在编译的过程中嵌入所有字体 参考 我们进行了设置,但是不起作用,后发现使用pdflatex编译时是不会调用 ps2pdf的 然后,我们就需要了解编译过程 1. 通常,我们使用texs ...
- WINDOWS系统下MYSQL安装过程中的注意事项
1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...
- 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误
SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...
- zabbix 3.0.3 (nginx)安装过程中的问题排错记录
特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ...
- C语言调试过程中duplicate symbol错误分析
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...
- 测试或运维工作过程中最常用的几个linux命令?
大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...
- Atomikos的使用过程中要注意的事
在使用Atomikos过程中遇到的一些问题,以作记录: MySQL does not support TMJOIN MySQL does not allow for joining an existi ...
随机推荐
- ES5.1下的作用域链
作用域链(ES5.1规格视角) javascript作用域类型 javascript采用的是词法作用域(静态作用域) 与之相对的是动态作用域,以下的例子可以很好地说明 let a = 3 functi ...
- Jenkins的简介及安装
Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 1. jenkins就是 ...
- 【搜索】L国的战斗之伞兵
伞兵?SB?嘿嘿嘿 原题传送门 思路 这道题需要采用倒退的思想. 如果a[x][y]无风或可吹至无风区: 那么它南面如果是北风区,则北风区就也是无风或可吹至无风区(实际上就是可吹至无风区). 那么它北 ...
- Linux 使用squid3搭建代理服务器
在对接微信/支付宝等3方业务时,往往都有ip白名单的设置,由于内网往往都是动态ip,频繁配置白名单是件及其繁琐的事情. 使用代理转发就是最方便的做法. 下面就使用squid3配置一台代理服务器. sq ...
- Spring security 知识笔记【内存角色授权】
一.原有的配置文件中,增加注解@EnableGlobalMethodSecurity(prePostEnabled = true) 二.原有配置文件中,内存新建账号的时候添加角色 package El ...
- 修改Launchpad的命令
修改Launchpad命令 1.设置Launchpad 图标的列数 defaults write com.apple.dock springboard-columns -int 10 2.设置 Lau ...
- mnist数据集探究
一.mnist的属性和方法 为了方便我只检查了后20个属性和方法 from tensorflow.examples.tutorials.mnist import input_data mnist = ...
- .NET Core WebApi帮助文档使用Swagger生成Api说明文档
Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案.简单的说就是一款让你更好的书写API文档的框架. 我们为什么选择 ...
- jenkins pipeline 复杂的发布流程
1.参数化构建界面 2.交付流水线界面 3.脚本详解 #!groovy pipeline { //在任何可用的代理上执行Pipeline agent any //参数化变量,目前只支持[boolean ...
- 社招C++后台面试-拿到offer
社招C++后台面试-拿到offer 之前在一家小公司上班,主要是做C语言的嵌入式软件开发,涉及过一点点C++.工作大概三年,然后去试试大公司,这个面试题是我拿到offer后4个月才拖拖拉拉的开始写,题 ...