TeX 语言本身只有 300 个命令, 晦涩难懂, 只适合非正常的人类。一个简单的符号可能就需要多个命令来实现, 可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式。格式可以与不同的引擎相结合。
TEX 以其卓越的稳定性、跨平台、几乎没有 Bug 而著称。TEX 的版本号不断趋近于 π, 当前为 3.141592653。 TEX 读作 “Tech”, 其中 "ch"的发音类似于 “h”, 与汉字"泰赫"的发音类似。TEX 的拼写来自希腊词语 τεχνική (technique, 技术) 的开头几个字母。在 ASCII 字符环境, TEX 写作 TeX。
LATEX 为 TEX 基础上的一套格式, 令作者能够使用预定义的专业格式以较高质量排版和印刷他们的作品。
LATEX 读作 “Lah-tech"或者 “Lay-tech”, 近似于汉字"拉泰赫"或"雷泰赫”。LATEX 在 ASCII 字符环境写作 LaTeX。当前的 LATEX 版本为 LATEX 2ε, 意思是超出了第二版, 接近但没达到第三版, 在 ASCII 字符环境写作 LaTeX2e。
LATEX 的优点:
LATEX 的缺点:
一般的, overleaf 就够用了, 有以下两个网址:
如果硬要配置的话, 就多了。
MacOS 下的推荐组合: MacTeX(编译器)+VSCode(编辑器)+Skim(pdf 阅读器)
MacTeX 是 TeX Live 的 Mac 版本。
All binaries in MacTeX-2022 are universal with code for both Arm and Intel processors. The same source code is used to compile both types of code, so Apple’s Arm and Intel machines are on exactly the same footing. (Correction: biber is Intel only. Read "What Is Installed"below for details.)
The author of biber created a universal version with code for both Intel and Arm, but had trouble notarizing the copy as required by Apple. Eventually he succeeded, so when these web pages were written we reported that all binaries are universal. Unfortunately, that universal version didn’t make it into TeX Live 2022, and thus is not in MacTeX-2022. So biber only has Intel code, but it runs fine under Rosetta.
New Arm machines don’t come with Rosetta preinstalled, but when users run a program with Intel code, a dialog appears offering to install Rosetta. That doesn’t happen when running command line programs like biber. To install Rosetta in this case, run the following command in Terminal:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
安装完成后通过命令 latex -version
查看是否安装成功。
LaTeX Workshop 是 VScode 中支持 LaTeX 语言的插件, 提供 LaTeX 文件的编译、项目的创建、排版的浏览等功能。
安装成功后, 在工作区下方的状态栏中会出现一个小对勾(或小叉号), 点击打开就可以进入 LaTeX 的工作台。
安装完成后, 需要配置工作区的编译工具, 编译命令, 自动编译等才可以正常使用。
配置 LaTeX Workshop 的 Settings JSON 文件: 使用 "command + shift + P"打开命令行, 键入 "Open Settings(JSON)"打开 JSON 配置文件, 将如下代码添加进配置。添加就好, 一定不要覆盖!
// LaTeX
// 不在保存的时候自动编译
"latex-workshop.latex.autoBuild.run": "never",
// 编译工具
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOCFILE%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
// 编译命令
"latex-workshop.latex.recipes": [
{
"name": "xelatex",
"tools": [
"xelatex"
],
},
{
"name": "xelatex*2",
"tools": [
"xelatex",
"xelatex"
],
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "xe->bib->xe->xe",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdf->bib->pdf->pdf",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
}
],
"latex-workshop.latex.clean.fileTypes": [ //设定清理文件的类型
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.nav",
"*.snm",
"*.synctex.gz"
],
// // 使能从 VSCode 跳转到 Skim 里相应位置
// // external pdf viewer
// "latex-workshop.view.pdf.viewer": "external",
// "latex-workshop.view.pdf.external.synctex.command": "/usr/local/bin/displayline",
// "latex-workshop.view.pdf.external.synctex.args": [
// "-r",
// "%LINE%",
// "%PDF%",
// "%TEX%"
// ],
// // 使能从 VSCode 中直接打开 Skim
// "latex-workshop.view.pdf.external.viewer.command": "/usr/local/bin/displayline",
// "latex-workshop.view.pdf.external.viewer.args": [
// "0",
// "%PDF%"
// ],
配置 LaTeX Workshop 的快捷键 Keybindings JSON 文件
将常用的指令添加到快捷键可以提高编辑效率, 命令与对应的快捷键如下:
配置时同样打开命令行, 键入"Open KeyBorad Shortcuts (JSON) ", 打开快捷键配置文件, 添加如下代码:
{
// 前向搜索
"key": "alt+s",
"command": "latex-workshop.synctex",
"when": "editorTextFocus"
},
{
// 使用默认 recipe 编译
"key": "alt+b",
"command": "latex-workshop.build",
"when": "editorTextFocus"
},
{
// 终止编译
"key": "alt+t",
"command": "latex-workshop.kill",
"when": "editorTextFocus"
},
{
// 选择其他 recipe 编译
"key": "alt+e",
"command": "latex-workshop.recipes"
},
Skim 阅读器是一个支持 macOS 系统的嵌入式轻量级 PDF 阅读器, 相当于 Windows 下的 Sumatra 阅读器。
下载地址:
先新建测试文件 test.tex 文件, 复制以下测试代码:
\documentclass{article}
\usepackage[UTF8, scheme = plain]{ctex}
\begin{document}
This is a test file
\end{document}
点击小勾, 打开 LaTeX 工作台, 点击 "Build Project "进行编译
编译成功后, 点击上方状态栏右边的阅读按钮, 可在工作台分屏查看代码的 PDF 文件
中文测试:
\documentclass[UTF8]{ctexart}
\title{中文测试}
\author{Who}
\date{\today}
\begin{document}
\maketitle
www.baidu.com
\end{document}
当运行时出现 "Recipe terminated with fatal error: spawn xelatex ENOENT"异常, 先检查环境变量 PATH 中是否存在 TeX bin 路径, TeX bin 中存放的是与 TeX 有关的指令, 若环境变量中没有该指令集, 会导致 VScode 在编译时找不到指令。检查方法和 "1. 安装 TeX "的检查方式相同, 若不存在, 则在 PATH 中添加 TeX 的指令集。若 PATH 中存在该指令集但仍编译不成功, 考虑可能是环境变量未更新。重新启动计算机, 再进行编译, 即可更新所有环境变量。此时再尝试编译, 应该就可以成功了。
解决方法:
在 setting.json
中将 "editor.formatOnSave:"
改为 false
在终端依次执行以下命令
sudo /usr/bin/cpan5.18 Unicode::GCString
sudo /usr/bin/cpan5.18 App::cpanminus
sudo /usr/bin/cpan5.18 YAML::Tiny
sudo /usr/bin/perl5.18 -MCPAN -e 'install "File::HomeDir"'
sudo cpan Log::Log4perl
sudo cpan Log::Dispatch
在终端中使用 which latexindent
查看所在位置, 打开 setting.json
添加配置, 指明 latexindent 的安装路径。
"latex-workshop.latexindent.path": "latexindent 所在路径"
使用 \usepackage[option]{name}
使用前要看宏的说明文档
使用 mathtype 进行转换
使用网站在线转换
http://www.tablesgenerator.com/ (需要梯子)
使用 BibTex
.bib
文件, 用任意编辑器打开.tex
文件中添加相关指令
\cite{label}
google/bing 学术
导出的 bib item 难免会出错, 还是要自己检查一下