TeX Live 是一款开源、跨平台的 TeX 发行版 (distribution)。
TeXstudio 是一款开源、跨平台的 TeX 集成开发环境 (IDE)。
LaTeX Workshop 是一款基于 VS Code 的轻量级 TeX 前端。
首次安装后,在 ~/Library/Application Support/Code/User/settings.json
中加入以下内容,即可按绿色三角按钮进行编译:
{
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"%DOC%"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
],
"env": {}
},
{
"name": "nomencl",
"command": "makeindex",
"args": [
"%DOCFILE%.nlo",
"-s",
"nomencl.ist",
"-o",
"%DOCFILE%.nls"
],
"env": {}
},
],
"latex-workshop.latex.recipes": [
{
"name": "pvcthesis",
"tools": [
"xelatex",
"bibtex",
"nomencl",
"xelatex",
"xelatex"
]
},
],
}
ctex
宏包hello.tex
: ctexart
、ctexbook
等。xelatex
命令编译:mkdir build
cd build
xelatex ../hello.tex
fontspec
宏包此宏包用于设置文档正文字体,默认情况下会影响到 \mathrm
等数学字体(宏包选项 no-math
可以消除对数学字体的影响):
\usepackage[no-math]{fontspec}
\setmainfont{Courier}
mathspec
宏包此宏包用于设置(数学环境中)阿拉伯数字、拉丁字母、希腊字母的字体,默认情况下以 no-math
选项加载 fontspec
宏包:
\usepackage{mathspec}
\setmainfont{Palatino}
\setmathsfont{Courier}
\setmathrm{Optima}
CTeX 文档类会自动加载 fontspec
宏包。 如果要使用 mathspec
宏包。 如果要使用 mathspec
宏包,则应
\documentclass
之前将 no-math
选项传入 fontspec
宏包:\PassOptionsToPackage{no-math}{fontspec}
\documentclass{ctexart}
\usepackage{mathspec}
fontspec
宏包的)文档类,而在 mathspec
宏包的)文档类,而在 mathspec
宏包之后加载 ctex:\documentclass{article}
\usepackage{mathspec}
\usepackagep[heading]{ctex}
unicode-math
宏包此宏包用于设置数学符号字体:
\usepackage{unicode-math}
\unimathsetup{math-style=TeX}
\setmathfont{texgyrepagella-math.otf}
\setmathfont{Neo-Euler}[range=\mathalpha]
完整安装 TeX Live 后,应当可以用 texdoc unimath
命令打开《Every symbol (most symbols) defined by unicode-math
》。
TeX 将数学符号分为以下几类:
类型 | 命令 | 示例 | 代码 |
---|---|---|---|
Ordinary | \mathord | $a$ | a |
Operator | \mathop | $\sum$ | \sum |
Binary | \mathbin | $\times$ | \times |
Relation | \mathrel | $\le$ | \le |
Opening | \mathopen | $\biggl($ | \biggl( |
Closing | \mathclose | $\biggr)$ | \biggr) |
Punctuation | \mathpunct | $,$ | , |
Inner | \mathinner | $\left(\dfrac12\right)$ | \left(\dfrac12\right) |
并将它们之间的距离定义为(其中 * = 不可能,0 = 无间距,1 = \thinmuskip
,2 = \mediumskip
,3 = \thickmuskip
,( ) = 在上下标模式中忽略)
Ord | Op | Bin | Rel | Open | Close | Punct | Inner | |
---|---|---|---|---|---|---|---|---|
Ord | 0 | 1 | (2) | (3) | 0 | 0 | 0 | (1) |
Op | 1 | 1 | * | (3) | 0 | 0 | 0 | (1) |
Bin | (2) | (2) | * | * | (2) | * | * | (2) |
Rel | (3) | (3) | * | 0 | (3) | 0 | 0 | (3) |
Open | 0 | 0 | * | 0 | 0 | 0 | 0 | 0 |
Close | 0 | 1 | (2) | (3) | 0 | 0 | 0 | (1) |
Punct | (1) | (1) | * | (1) | (1) | (1) | (1) | (1) |
Inner | (1) | 1 | (2) | (3) | (1) | 0 | (1) | (1) |
比较以下写法(注意括号前后的间距):
示例 | 代码 | 缺点 |
---|---|---|
$f ( \dfrac{x^2}{2} ) dx$ | f ( \dfrac{x^2}{2} ) dx | 括号尺寸偏小,微分号前缺间距 |
$f \left( \dfrac{x^2}{2} \right) dx$ | f \left( \dfrac{x^2}{2} \right) dx | 函数名与开括号之间有多余间距 |
$f \biggl( \dfrac{x^2}{2} \biggr) \, dx$ | f \biggl( \dfrac{x^2}{2} \biggr) \, dx | 括号尺寸需手动调整 |
$f \mathopen{} \left( \dfrac{x^2}{2} \right) dx$ | f \mathopen{} \left( \dfrac{x^2}{2} \right) dx | 需手动插入 \mathopen{} |
physics
宏包siunitx
宏包$ \SI[<options>]{<number>}[<preunit>]{<unit>} $
$ R = \SI{8.3144598(48)}{J.mol^{-1}.K^{-1}} $
$ R = \SI{8.3144598(48)}{\joule\per\kelvin\per\mole} $
minted
宏包使用此宏包需安装 pygments
:
pip install pygments # for python2
pip3 install pygments # for python3
import
宏包import
宏包用于插入文件。minted
宏包用于代码高亮。import
对 minted
无效》。tikz
宏包LyX 是一款开源、支持所见即所思的 LaTeX 前端,兼具 LaTeX 排版效果优美和 Word 所及即所得的优势。
先完整安装 TeX Live,再安装 LyX。二者都安装好后,在 LyX【首选项】中设置环境变量 PATH
以确保 xelatex
等命令能够被 LyX 搜索到。
新建一个 LyX 文档,其【文档类】可任选,然后进入【文档】→【首选项】进行如下设置:
\usepackage{ctex}
CTeX 文档类及《LyX 中文支持》一节第 4 步的【使用非 TeX 字体】都会自动加载 fontspec
宏包。 如果进一步勾选【数学:非 TeX 字体默认值】,则还会自动加载 unicode-math
宏包。
如果要进行更精细的字体设置,则不应勾选【使用非 TeX 字体】,而是在【LaTeX 导言区】中手动加载字体设置宏包。
进入【文档】→【首选项】进行如下设置:
【程序列表】→【语法高亮支持包】→【Minted】。
【程序列表】→【空白处】可以设置 minted
宏包参数,例如:
style=xcode
frame=leftline
baselinestretch={1.0}
breaklines=true
fontsize={\footnotesize}
【输出格式】→【允许运行外部程序】。
首次编译该文档时,会弹出警告对话框,选择【对该文档总是允许】。
在 LyX 文件中插入外部代码文件的步骤如下:
language=python
。【方法一】直接在网页(HTML 文件)内配置、加载:
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
};
</script>
<script type="text/javascript" id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>
【方法二】将配置写入 mathjax-config.js
文件,再由网页依次加载此文件及 MathJax 组件:
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
svg: {
fontCache: 'global'
}
};
<script src="mathjax-config.js" defer></script>
<script type="text/javascript" id="MathJax-script" defer
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
</script>
【方法三】将配置、加载均写入 mathjax-load.js
文件,再由网页加载此文件:
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
svg: {
fontCache: 'global'
}
};
(function () {
var script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js';
script.async = true;
document.head.appendChild(script);
})();
<script src="mathjax-load.js" async></script>
【方法一】直接在数学环境中定义,作用域为当前网页内的所有数学环境:
$$
\def\RR{\boldsymbol{R}}
\def\bold#1{\boldsymbol{#1}}
$$
【方法二】在配置 MathJax 时定义,作用域为加载该配置的所有数学环境:
window.MathJax = {
tex: {
macros: {
RR: "{\boldsymbol{R}}",
bold: ["{\boldsymbol{#1}}", 1]
}
}
};
_
或 *
均表示强调 (emphasize)。_
的语义为下标 (subscript)。某些 Markdown 解析器不能正确地将行内公式中的上述字符按 TeX 语义解析,此时应以转义字符 \_
及 \*
代替之。