LaTeX 安装与配置

news/2024/5/18 13:59:06 标签: 论文, 排版, 格式, 文件, tex

这里写目录标题

  • 1. LaTeX 安装与配置
    • 1.1. TEX
    • 1.2. LATEX
    • 1.3. LATEX 的优缺点
    • 1.4. 环境配置
    • 1.5. MacOS 环境下配置
      • 1.5.1. MacTeX
      • 1.5.2. VSCode
      • 1.5.3. Skim
      • 1.5.4. 测试文件
      • 1.5.5. 异常解决
    • 1.6. tips
      • 1.6.1. 宏
      • 1.6.2. 数学公式
      • 1.6.3. 表格
      • 1.6.4. 文献引用

1. LaTeX 安装与配置

1.1. TEX

TeX 语言本身只有 300 个命令, 晦涩难懂, 只适合非正常的人类。一个简单的符号可能就需要多个命令来实现, 可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式格式可以与不同的引擎相结合。

TEX 以其卓越的稳定性、跨平台、几乎没有 Bug 而著称。TEX 的版本号不断趋近于 π, 当前为 3.141592653。 TEX 读作 “Tech”, 其中 "ch"的发音类似于 “h”, 与汉字"泰赫"的发音类似。TEX 的拼写来自希腊词语 τεχνική (technique, 技术) 的开头几个字母。在 ASCII 字符环境, TEX 写作 TeX。

1.2. LATEX

LATEX 为 TEX 基础上的一套格式, 令作者能够使用预定义的专业格式以较高质量排版和印刷他们的作品。

LATEX 读作 “Lah-tech"或者 “Lay-tech”, 近似于汉字"拉泰赫"或"雷泰赫”。LATEX 在 ASCII 字符环境写作 LaTeX。当前的 LATEX 版本为 LATEX 2ε, 意思是超出了第二版, 接近但没达到第三版, 在 ASCII 字符环境写作 LaTeX2e。

1.3. LATEX 的优缺点

LATEX 的优点:

  • 专业的排版输出, 产生的文档看上去就像"印刷品"一样。
  • 方便而强大的数学公式排版能力。
  • 绝大多数时候, 用户只需专注于一些组织文档结构的基础命令, 无需(或很少)操心文档的版面设计。
  • 很容易生成复杂的专业排版元素, 如脚注、交叉引用、参考文献、目录等。
  • 强大的扩展性。世界各地的人开发了数以千计的 LATEX 宏包用于补充和扩展 LATEX 的功能。
  • LATEX 依赖的 TEX 排版引擎和其它软件是跨平台、免费、开源的。无论用户使用的是 Windows, macOS(OS X), GNU/Linux 还是 FreeBSD 等操作系统, 都能轻松获得和使用这一强大的排版工具。

LATEX 的缺点:

  • 入门门槛高。
  • 排查错误困难。LATEX 作为一个依靠编写代码工作的排版工具, 其使用的宏语言比 C++ 或 Python 等程序设计语言在错误排查方面困难得多。它虽然能够提示错误, 但不提供调试的机制, 有时错误提示还很难理解。
  • 样式定制困难。LATEX 提供了一个基本上良好的样式, 为了让用户不去关注样式而专注于 文档结构。但如果想要改进 LATEX 生成的文档样式则是十分困难。

1.4. 环境配置

一般的, overleaf 就够用了, 有以下两个网址:

  • https://www.overleaf.com/
  • https://cn.overleaf.com/

如果硬要配置的话, 就多了。

1.5. MacOS 环境下配置

MacOS 下的推荐组合: MacTeX(编译器)+VSCode(编辑器)+Skim(pdf 阅读器)

1.5.1. MacTeX

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 查看是否安装成功。

1.5.2. VSCode

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 文件

将常用的指令添加到快捷键可以提高编辑效率, 命令与对应的快捷键如下:

  • 前向搜索: option + s
  • 开始编译: option + b
  • 终止编译: option + t
  • 选择其他 recipe 编译: option + e

配置时同样打开命令行, 键入"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"
    },

1.5.3. Skim

Skim 阅读器是一个支持 macOS 系统的嵌入式轻量级 PDF 阅读器, 相当于 Windows 下的 Sumatra 阅读器。

下载地址:

  • https://sourceforge.net/projects/skim-app/
  • https://skim-app.sourceforge.io/

1.5.4. 测试文件

先新建测试文件 test.tex 文件, 复制以下测试代码:

tex">\documentclass{article}
\usepackage[UTF8, scheme = plain]{ctex}

\begin{document}
This is a test file
\end{document}

点击小勾, 打开 LaTeX 工作台, 点击 "Build Project "进行编译

编译成功后, 点击上方状态栏右边的阅读按钮, 可在工作台分屏查看代码的 PDF 文件

中文测试:

tex">\documentclass[UTF8]{ctexart}
    \title{中文测试}
    \author{Who}
    \date{\today}
    \begin{document}
    \maketitle
    www.baidu.com
\end{document}

1.5.5. 异常解决

  • Recipe terminated with fatal error: spawn xelatex ENOENT

当运行时出现 "Recipe terminated with fatal error: spawn xelatex ENOENT"异常, 先检查环境变量 PATH 中是否存在 TeX bin 路径, TeX bin 中存放的是与 TeX 有关的指令, 若环境变量中没有该指令集, 会导致 VScode 在编译时找不到指令。检查方法和 "1. 安装 TeX "的检查方式相同, 若不存在, 则在 PATH 中添加 TeX 的指令集。若 PATH 中存在该指令集但仍编译不成功, 考虑可能是环境变量未更新。重新启动计算机, 再进行编译, 即可更新所有环境变量。此时再尝试编译, 应该就可以成功了。

  • Formatting failed. Please refer to LaTeX Workshop Output for details.

解决方法:

  1. 关闭 LaTeX Workshop 的代码格式化功能

setting.json 中将 "editor.formatOnSave:" 改为 false

  1. 自动格式化 LaTeX 代码(推荐)

在终端依次执行以下命令

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 所在路径"

1.6. tips

1.6.1. 宏

使用​ \usepackage[option]{name}

使用前要看宏的说明文档

1.6.2. 数学公式

使用 mathtype 进行转换

1.6.3. 表格

使用网站在线转换

http://www.tablesgenerator.com/ (需要梯子)

1.6.4. 文献引用

使用 BibTex

  • 在学术搜索引擎里面, 注意左下角的 cite, 批量引用是 Batch cite
    • 左下角 cite
    • 弹出的小框点击左下角的 BibTeX
  • 新建一个 .bib 文件, 用任意编辑器打开
  • .tex 文件中添加相关指令
    • \cite{label}
    • attention: google/bing 学术 导出的 bib item 难免会出错, 还是要自己检查一下

http://www.niftyadmin.cn/n/1620671.html

相关文章

python- do_excel

1 # File : class_01_do_excel.py2 # codinggbk3 4 #pip install openpyxl5 #新建.xlsx,一定要右键新建6 7 from openpyxl import load_workbook #可以对Excel进行读写操作8 #1.打开Excel9 workbook load_workbook(http_requests.xlsx) 10 11 #2.定位表单 12 sheet workbook…

机器学习概念杂记

机器学习分为有监督学习和无监督学习 有监督:(K近邻,逻辑回归,决策树,随机森林,朴素贝叶斯,SVM) 有监督学习分为回归(K近邻,决策树,随机森林&…

LaTeX 语法教程

1. LaTeX 语法教程 github: Begin LaTex in minutes.从零开始 LaTex 快速入门。LaTex 实战经验:新手须知。一份其实很短的 LaTex 入门文档。Overleaf 指南:30 分钟 LaTex 入门。 Getting more out of Overleaf Thanks for signing up for Overleaf r…

.Net 鉴权授权

在这里总结一下工作中遇到的鉴权和授权的方法 ① 固定token的方案 通过在nginx或者代码中写死token,或者通过在限制外网访问的方式已来达到安全授权的方式 ② session方案 分布式会话方案原理主要是将关于用户认证的信息存储在共享存储中。当用户访问微服务时&#…

机器学习数据分割(x_train, y_train, x_test, y_test)

#通常使用此方法 df df[[c for c in df if c not in [y]] [c for c in [y] if c in df]] num int(df.shape[0] * float(0.7)) train df[: num] test df[num:] x_train np.array(train.iloc[:, 0:-1]) y_train np.array(train.iloc[:, -1]) print(Training Features Shap…

离线安装Python环境(机器学习+flask)

服务器系统为win server 2012 R 离线安装环境,碰到了一些问题,总结一些。 安装pycharm的时候,已经安装上了但是打不开,提示XXX.dll文件错误或者缺少什么文件。开始使用提示什么安装什么的套路来解决,发现有点解决不掉…

Pytorch-nn.Module-modules()

测试代码: import torch.nn as nnclass Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 nn.Conv2d(10, 20, 4) self.conv2 nn.Conv2d(20, 40, 4)model Model()for m in model.modules(): print(m)…

研究生们刚开始看英文文献是怎么看的

这里写目录标题1. 研究生们刚开始看英文文献是怎么看的1. 研究生们刚开始看英文文献是怎么看的 文献积累初期, 即使个人英语很好, 也建议先读一些中文论文或经典著作打好基础。 博士毕业论文是最好的新手指南。 课题背景的基础知识、一些基本概念的解释、领域内重要研究的缩…