【Cheatsheet】LaTeX的常用代码、常见问题解决

2023-10-12 22:40

本文主要是介绍【Cheatsheet】LaTeX的常用代码、常见问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 前言
  • 2. 环境
  • 3. Preamble
  • 4. 文档属性设置
    • 4.1. 文档字体
    • 4.2. 文档的页面大小,边距(margin)
  • 5. 正文处理
    • 5.1. 缩进
      • 5.1.1. 段落缩进
      • 5.1.2. 段落无缩进
    • 5.2. 段落间距
    • 5.3. 章节的组织:chapter,section
  • 6. 参考文献
    • 6.1. 【问题解决】IEEETrans balance reference (平衡参考文献)
      • 6.1.1. 方法1
      • 6.1.2. 方法2
  • 7. 表格
    • 7.1. 单个cell居中
    • 7.2. threeparttable模板
      • 7.2.1. 插入tablenotes
      • 7.2.2. tablenotes 和 table 对齐
  • 8. latexdiff的使用
  • 9. Box的使用
    • 9.1. tcolorbox
    • 9.2. tcolorbox 进阶使用
  • 10. bibliography参考文献
    • 10.1. 添加url bib(我的artifact)
  • 11. 中文文档操作
    • 11.1. 使用中文、设置字体
    • 11.2. highlight中文文本且自动换行
  • 12. 公式相关
    • 12.1. 取消公式的自动编码
    • 12.2. 将latex的公式转换到word里面!(以及打出中文公式)
  • 13. enumerate
    • 13.1. 编号格式、取消缩进、调整间距
  • 14. 注释
  • 15. url 超链接
    • 15.1. 去除frame,以及修改颜色
  • 16. xcolor 颜色的使用
    • 16.1. 报错:Option clash for package xcolor
  • 17. 代码高亮 minted
  • 18. 算法 Algorithm 伪代码
  • 19. 小结
  • 20. 参考文献

1. 前言

创作开始时间:2021年11月23日14:50:41

用LaTeX很久了,感觉经常会反复用到一些操作,有时候记不住,所以在这里写一个cheatsheet,记录一些常用的操作。

2. 环境

  • Overleaf

3. Preamble

把preamble单独放到一个sty文件中,然后\usepackage。

  • Place preamble packages in a different tex file https://tex.stackexchange.com/questions/339923/place-preamble-packages-in-a-different-tex-file

4. 文档属性设置

4.1. 文档字体

\documentclass[12pt]{article}\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\usepackage{fourier} % Use the Adobe Utopia font for the document - comment this line to return to the LaTeX default

这种字体还挺好看的。

参考:

  • 我之前的overleaf项目
  • How to change the font size of a document? [duplicate] https://tex.stackexchange.com/questions/10619/how-to-change-the-font-size-of-a-document

4.2. 文档的页面大小,边距(margin)

\documentclass[12pt,english]{article}\usepackage[a4paper,bindingoffset=0.2in,left=1in,right=1in,top=1in,bottom=1in,footskip=.25in]{geometry}

自己调一下就行。

参考:

  • Setting exact margins https://tex.stackexchange.com/questions/46175/setting-exact-margins

5. 正文处理

5.1. 缩进

5.1.1. 段落缩进

\setlength{\parindent}{0em}
\setlength{\parskip}{1ex}

In LaTeX standard class documents, the default value for \parindent in one-column documents is 15pt when the default text size is 10pt, 17pt for 11pt, and 1.5em for 12pt. In two-column documents it is 1em. (These values are set before LaTeX calls \normalfont so em is derived from the default font, Computer Modern. If you use a different font then to set \parindent to 1em matching that font, put \AtBeginDocument{\setlength{\parindent}{1em}} in the preamble.)

  • https://latexref.xyz/_005cparindent-_0026-_005cparskip.html

5.1.2. 段落无缩进

\setlength{\parindent}{0em}

5.2. 段落间距

\setlength{\parskip}{1em}

参考:

  • Paragraph formatting - Overleaf, Online LaTeX Editor

5.3. 章节的组织:chapter,section

在这里插入图片描述

  • Sections and chapters https://www.overleaf.com/learn/latex/Sections_and_chapters

6. 参考文献

6.1. 【问题解决】IEEETrans balance reference (平衡参考文献)

6.1.1. 方法1

有时候参考文献是不平衡的。如图:右边一片空白。

在这里插入图片描述

我的项目的相关代码:

\documentclass[10pt,journal,compsoc]{IEEEtran}xxx (省略)\bibliographystyle{IEEEtran}
\bibliography{mybib}

改成以下:

\documentclass[10pt,journal,compsoc]{IEEEtran}xxx (省略)\bibliographystyle{IEEEtran}
% 添加下面两行
\IEEEtriggercmd{\enlargethispage{-5.31in}}
\IEEEtriggeratref{50}
\bibliography{mybib}

注意:50 代表参考文献的编号。-5.31代表间距的调整。这些都需要自己去按照具体的参考文献数目情况进行调整。

我调整之后得到下图:(已经balance了)

在这里插入图片描述

备注:
在IEEEtran 模板下面使用balance这个package不管用,所以才用的上面的方法。

参考:

  • Even columns in document with long bibliography https://tex.stackexchange.com/questions/102754/even-columns-in-document-with-long-bibliography
  • Balancing the Two Columns of Text on the Last Page https://cs.brown.edu/about/system/managed/latex/doc/balance.pdf
  • How can I balance columns in the last page of a bibliography section? https://tex.stackexchange.com/questions/38430/how-can-i-balance-columns-in-the-last-page-of-a-bibliography-section/273076
  • How to level columns in bibliography? https://tex.stackexchange.com/questions/49918/how-to-level-columns-in-bibliography

6.1.2. 方法2

有时候上面这招也不顶用,那么就用这个:

\bibliographystyle{IEEEtran} %IEEEtran, plain
% \IEEEtriggercmd{\enlargethispage{-0.4in}}
% 只插入\IEEEtriggeratref{118} 的指令,在编号为118的文献前面加一个column break
\IEEEtriggeratref{118}
\bibliography{mybib}

在这里插入图片描述
参考:

  • Even columns in document with long bibliography https://tex.stackexchange.com/questions/102754/even-columns-in-document-with-long-bibliography

7. 表格

7.1. 单个cell居中

\multicolumn{1}{|r|}{Item3}
  • Change align of a single cell in tabular [duplicate] https://tex.stackexchange.com/questions/47675/change-align-of-a-single-cell-in-tabular

7.2. threeparttable模板

7.2.1. 插入tablenotes

如下:
1)添加 \tnote{*}
2)添加 \footnotesize\item[*]

\setcounter{magicrownumbers}{0} 
\begin{table*}[t]\centering\caption{Study of biases in APR evaluation in the literature.}\label{tab:uncovered_bias_review}% \resizebox{1\linewidth}{!}{\begin{threeparttable}\begin{tabularx}{\textwidth}{c L{4.5cm} c c c c c}\toprule\textbf{ID} & \multicolumn{1}{c}{\textbf{xx}} & \textbf{Phase}\tnote{*} & \textbf{xx}  & \textbf{xx} & \textbf{xx} &       \textbf{xx}\\ \midrule \rownumber& xx& DS& xx        & xx&  xx& xx\\ \bottomrule\end{tabularx}\begin{tablenotes}[para, flushleft]
\footnotesize
%\item[*] DS stands for the xx phase. 
DS stands for the xx phase. 
\end{tablenotes}\end{threeparttable}

备注:2022年6月9日03:19:13 记住一定要把tablenotes放在threeparttable 环境里面,不然就没法对齐了。我被这个困扰了很久。。。难顶。

参考:

  • threeparttable: changing indentation of table footnotes https://tex.stackexchange.com/questions/134322/threeparttable-changing-indentation-of-table-footnotes
  • The threeparttable package https://mirror-hk.koddos.net/CTAN/macros/latex/contrib/threeparttable/threeparttable.pdf

7.2.2. tablenotes 和 table 对齐

核心就是: 把tablesnote的环境放到threeparttable环境里面,我之前都放外面,导致无法对齐!

2022年6月9日03:20:13 2022年6月9日03:20:16 这个时候又犯了同样的错误。。。又找了很久,看来自己不长记性,抑或是人是会同样错误好几次的?

\documentclass[a4paper]{article}
\usepackage{booktabs}
\usepackage{threeparttable}\begin{document}\begin{table}\centering\footnotesize\caption{Descriptive statistics of total sample based on modified data set}\label{table:descrtotal}\medskip\begin{threeparttable}\begin{tabular}{lrrr}\toprule& \% E & n UE & n E \\\midruleNo Denomination & 0.63 & 1425 & 2470 \\ Buddhist & 0.70 & 312 & 731 \\ Hindu & 0.24 & 482 & 149 \\ Muslim & 0.23 & 3993 & 1185 \\ Orthodox & 0.51 & 1574 & 1609 \\ Other Christian groups & 0.53 & 697 & 779 \\ Other Denominations & 0.53 & 294 & 326 \\ Other Muslim groups & 0.14 & 1428 & 238 \\ Protestant & 0.55 & 1214 & 1472 \\ Roman Catholic & 0.56 & 2031 & 2550 \\ \bottomrule\end{tabular}\begin{tablenotes}[para,flushleft]Note: Share of aliens employed (\% E), Number of aliens unemployed (n 
UE) and Number of aliens employed (n E).\end{tablenotes}\end{threeparttable}
\end{table}\end{document}
  • Align Note below table tex.stackexchange.com/questions/19991/align-note-below-table

8. latexdiff的使用

参考我之前的博客:

  • 【全面】在Ubuntu下安装、配置latexdiff,并且成功编译latexdiff后的项目_the Blog of 等不到天亮丶等时光-CSDN博客 优先参考。2021写的
  • latexdiff使用(latex下的diff,可用于论文修改版本的提交)(附perl的一系列操作)_the Blog of 等不到天亮丶等时光-CSDN博客 没想到2020年的时候也写过,,,早就不记得了!

9. Box的使用

9.1. tcolorbox

参考这两个,很全了:

  • https://tools.ietf.org/doc/texlive-doc/latex/tcolorbox/tcolorbox.pdf
  • https://www.overleaf.com/project/62908a819afb7b583d123dec
% 定义
\newtcolorbox{boxB}{% fontupper = \bf\color{main}, % font colorboxrule = 1pt,colframe = main,colback=white,width=0.98\linewidth,boxsep = 1mm,left = 1mm,right = 1mm,top = 1mm,bottom = 1mm,rounded corners,arc = 0pt   % corners roundness
}% 使用
\begin{boxB}
% \setlength{\parindent}{1em} 
xxx
\end{boxB}

9.2. tcolorbox 进阶使用

参考我的博客:

  • 【较全面】LaTeX tcolorbox的使用(添加阴影,支持跨页,设置颜色,设置缩进,设置边距,设置线框类型,隐藏线框) https://blog.csdn.net/weixin_39278265/article/details/125053192

10. bibliography参考文献

10.1. 添加url bib(我的artifact)

@Misc{artifact_xxx_2021,
howpublished = {[Online]},
note = {Available: \url{https://github.com/xxx}, 2021},
title = {Artifact page of our study},
author={xxx},
year={2021}
}
  • How to add a URL to a LaTeX bibtex file? https://tex.stackexchange.com/questions/35977/how-to-add-a-url-to-a-latex-bibtex-file

11. 中文文档操作

11.1. 使用中文、设置字体

参考这两篇文献就可:

  • Chinese https://www.overleaf.com/learn/latex/Chinese 使用中文
  • Which OTF or TTF fonts are supported via fontspec? https://www.overleaf.com/learn/latex/Questions/Which_OTF_or_TTF_fonts_are_supported_via_fontspec%3F#Chinese 使用中文字体

核心代码:

\usepackage{xeCJK} 
\setCJKmainfont{FandolKai}

11.2. highlight中文文本且自动换行

发现无法用下划线!!醉了,可能是overleaf的问题,都不好说。

只能用highlight了。
然而这个也比较难调。

最后得到代码如下:

\documentclass[fntef,nofonts,11pt,a4paper]{ctexbook}  %
\usepackage[utf8]{inputenc}% 中文
\setCJKmainfont{FandolKai}% highlight
\usepackage{xcolor}
\usepackage{ulem}
\newcommand\hl{\bgroup\markoverwith{\textcolor{yellow}{\rule[-.5ex]{2pt}{2.5ex}}}\ULon}

备注:

  • fntef 非常重要。换成CJKfntef都不行了(无法换行)。
  • ctexbook 这个也挺重要。

参考:

  • Is there any solution for highlighting text in CJK? https://tex.stackexchange.com/questions/75019/is-there-any-solution-for-highlighting-text-in-cjk

12. 公式相关

12.1. 取消公式的自动编码

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

参考:

  • How do I turn off equation auto numbering https://tex.stackexchange.com/questions/2597/how-do-i-turn-off-equation-auto-numbering

12.2. 将latex的公式转换到word里面!(以及打出中文公式)

2021年12月8日18:40:23
这个问题还没有完全解决,但是我么得时间了,先在这里记一笔,后面解决了再开单章!

首先解决方案有2种:
1)将latex写的pdf转word,然后copy。但是这个对公式好像不太好用,所以不太推荐。
2)使用Word里面的Aurora插件。 这个感觉不错。

关于Aurora的安装,网上有很多教程了:

  • word2016安装Aurora,并添加到选项卡 https://blog.csdn.net/qq_35987777/article/details/103499757 这里给了下载链接,还是比较给力的
  • Aurora的安装和中文配置 https://blog.csdn.net/wdkirchhoff/article/details/72903885

安装还是比较简单的,备注:由于我本地就有MikTex,所以我没有安装下载包里面的Micro-miktex.exe

但我不知道为啥,就是打不出来中文公式。(英文公式没问题的)。我的miktex也安装了各种ctex,xecjk包来着,按道理没问题,但是没得办法。搞不定。如下图:

在这里插入图片描述

我在本地的vscode上试了下:

\documentclass{article}% \usepackge{xeCJK}
\usepackage[UTF8]{ctex}%\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{amssymb}
% \usepackage{euler}\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{KaiTi}\providecommand{\abs}[1]{\left\lvert#1\right\rvert}
\providecommand{\norm}[1]{\left\lVert#1\right\rVert}\begin{document}\begin{equation}\stackrel{\stackrel{\mbox{\text{测试}}}{\mbox{用例}}}{%\begin{bmatrix}t_1 \\t_2 \\\vdots \\\quadt_m\end{bmatrix}%}\ \quad\stackrel{\textrm{\normalsize \textit{stmts}: \quad}\begin{bmatrix}\ s_1 & \ \ s_2 & \ \cdots & \ s_n \end{bmatrix} }{\textrm{\textit{spectrum}:}\begin{bmatrix}0/1 & 0/1 & \cdots & 0/1 \\0/1 & 0/1 & \cdots & 0/1 \\\vdots & \vdots & \ddots & \vdots \\0/1 & 0/1 & \cdots & 0/1\end{bmatrix}%}\ \quad\stackrel{\stackrel{\mbox{test}}{\mbox{result}}}{%\begin{bmatrix}pass/fail \\pass/fail \\\vdots \\pass/fail\end{bmatrix}%}\label{eq:spectrum}
\end{equation}测试测试测试\end{document} 

一点问题没有:
在这里插入图片描述

先就这样吧,告一段落,后续有需要再研究。2021年12月8日18:47:55

13. enumerate

13.1. 编号格式、取消缩进、调整间距

% leftmargin 是取消左边的缩进
% \arabic是阿拉伯数字,最后出来的编号是:(1) 这种
\begin{enumerate}[label=(\arabic*), leftmargin=*]\end{enumerate}
  • https://blog.chapagain.com.np/latex-roman-numbers-in-enumerate-list-and-adjust-space-between-list-items/

更好的办法

\usepackage{enumitem}% \SetEnumitemValue{label}{numeric}{(\arabic*)}
\setlist[enumerate]{label=(\arabic*), leftmargin=*, nosep, itemsep=5pt}
% nosep} , parsep=0pt
% \setlist{nosep}

参考:

  • 官方文档。 https://mirrors.cqu.edu.cn/CTAN/macros/latex/contrib/enumitem/enumitem.pdf
  • 调整间距。 https://tex.stackexchange.com/questions/434407/setting-enumerate-item-separation-in-preamble

14. 注释

多行注释:

  • Multi-line (block) comments in LaTeX https://tex.stackexchange.com/questions/87303/multi-line-block-comments-in-latex

15. url 超链接

15.1. 去除frame,以及修改颜色

2022年6月9日22:27:19

\usepackage[dvipsnames]{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks,linkcolor={red!50!black},citecolor={blue!50!black},urlcolor={blue!80!black}
}

参考:

  • Remove ugly borders around clickable cross-references and hyperlinks https://tex.stackexchange.com/questions/823/remove-ugly-borders-around-clickable-cross-references-and-hyperlinks

感觉审美是真的可以,我觉得这个颜色挺好看的。

16. xcolor 颜色的使用

16.1. 报错:Option clash for package xcolor

  • 【已解决】acmart模板中使用xcolor出错:Option clash for package xcolor.https://blog.csdn.net/weixin_39278265/article/details/125257636

17. 代码高亮 minted

参考我的博客:

  • 【已解决】VSCode LaTeX支持minted https://blog.csdn.net/weixin_39278265/article/details/126907724

18. 算法 Algorithm 伪代码

参考我的博客:

  • LaTeX Algorithm相关写法 https://blog.csdn.net/weixin_39278265/article/details/127099037

19. 小结

创作结束时间:

20. 参考文献

这篇关于【Cheatsheet】LaTeX的常用代码、常见问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198938

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d