LaTex常见问题汇总(持续更新)

东明德
2023-12-01

LaTex 常见问题汇总

1. 报错问题

1.1. &符号引发的错误

Latex 报错 ! Misplaced alignment tab character &

此时,只需要在.bib文件里找到对应的&符号,并改为\&即可。这是由于特殊表意符号,没有进行标注导致的错误。

类似这样的“转义”符号还有很多,如“$、^、_”等用于排版数学公式,“&”用于排版表格,等等。直接输入这些字符得不到对应的符号,往往会出错。这些“转义”符号事实上是一些 LATEX 命令。其中^和~两个命令需要一个参数,加一对花括号的写法相当于提供了空的参数,否则它们可能会将后面的字符作为参数,形成重音效果。“\”被直接定义成了手动换行的命令,输入反斜线就需要用“\textbackslash”。

\hfill 弹性长度:hspace{\hfill}插入空白

2. 从 LaTex 到 word 的转换

这里需要用到 pandoc 工具,安装过程不再介绍,网上 N 多教程。这里直接给出最后需要使用的命令:

pandoc mydoc.tex --filter pandoc-crossref --bibliography=myref.bib --reference-docx=IEEE_template.doc -o mydoc.docx

3. 常用操作

3.1. 双向搜索

在撰写特别长篇幅的文章时,经常会无法将.tex 和.pdf 中的各个部分对应起来,要花费好久才能完成一次定位。这时候就需要双向搜索功能。在 vscode 中,双向搜索可以直接通过快捷键实现。

  • 正向搜索:先固定.tex 源码中光标的位置,然后采用快捷键Ctrl + Alt + J
  • 反向搜索:Ctrl + 鼠标左键点击 pdf 中任意一个位置。

4. 宏包和环境

4.1. 定理环境

使用 LATEX 排版数学和其他科技文档时,会接触到大量的定理、证明等内容。LATEX 提供了一个基本的命令\newtheorem提供定理环境的定义:

\newtheorem{⟨theorem environment⟩}{⟨title⟩}[⟨section-level⟩]
\newtheorem{⟨theorem environment⟩}[⟨counter⟩]{⟨title⟩}

⟨theorem environment⟩为定理环境的名称。原始的 LATEX 里没有现成的定理环境,不加定义而直接使用很可能会出错。⟨title⟩是定理环境的标题(“定理”,“公理”等)。定理的序号由两个可选参数之一决定,它们不能同时使用:

  • ⟨section level⟩为章节级别,如 chapter、section 等,定理序号成为章节的下一级序号;
  • ⟨counter⟩为用\newcounter 自定义的计数器名称,定理序号由这个计数器管理。

如果两个可选参数都不用的话,则使用默认的与定理环境同名的计数器。这里给一个示例:

\newtheorem{remark}{REMARK}

4.2. 字体/字号

可以通过类似begin{small} end{small}的形式来实现修改字号的目的。字号对照表如下:

中文字号英文字号单字宽度LaTex 名称
七号5.25pt1.845mmtiny
六号7.875pt2.768mmscriptsize
小五号9pt3.163mmfootnotesize
五号10.5pt3.69mmsmall
小四号12pt4.2175mmnormalsize
四号13.75pt4.83mmlarge
三号15.75pt5.53mmLarge
二号21pt7.38mmLARGE
一号27.5pt9.48mmhuge
小初号36pt12.65mmHuge

但是使用上述方法时,公式编号也会跟着变小。因此,需要定义以下环境:

\makeatletter
\renewcommand{\maketag@@@}[1]{\hbox{\m@th\normalsize\normalfont#1}}%
\makeatother

4.3. 增广矩阵

可以在矩阵里使用arydshln宏包来绘制横竖虚线。示例如下:

\usepackage{arydshln}

\left(\begin{array}{ccc;{2pt/2pt}ccc}
a& \cdots & a & b & \cdots & b \\
& \ddots & \vdots & \vdots & \adots \\
& & a & b \\ \hdashline[2pt/2pt]
& & & c & \cdots & c \\
& & & \vdots & & \vdots \\
\multicolumn{3}{c;{2pt/2pt}}
{\raisebox{2ex}[0pt]{\Huge0}}
& c & \cdots & c
\end{array}\right)
 类似资料: