【LaTeX】环境配置以及中文支持

网页环境

Overleaf

Overleaf 是一个在线的 LaTeX 编辑环境,可以避免在本地安装和配置的过程,同时还能和他人共享编辑

本地环境

TeX Live

TeX Live 可以利用镜像安装节省下载时间

可以在安装 TeX Live 时同时勾选上安装 TeXworks 前端,然后就可以使用 TeXworks 作为 IDE 来使用了

TeXstudio

TeXstudio 也是一个很好的 LaTeX 编辑软件,可以直接去官网下载安装,并且有中文界面

VSCode

个人更喜欢 VSCode,通过安装扩展并进行相应的配置即可较好的支持 LaTeX,同时还有格式化和自动补全等功能,非常方便

安装 LaTeX Workshop 扩展

直接在 VSCode 的扩展商店中搜索 LaTeX Workshop 安装即可

编译链配置

  1. 默认配置

    TeX Live 安装时会同时安装 latexmk, LaTeX Workshop 会默认使用 latexmk 来编译 .tex,无需手动再配置

  2. 手动配置(可选)

    手动配置 LaTeX Workshop,在 VSCode 的配置文件 settings.json 中直接手动添加如下代码:

    主要参考插件的官方 recipes 配置修改

    // 配置编译链,可以根据需要做修改
    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex 🔃",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "pdflatex 🔃",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "latexmk 🔃",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "xelatex ➞ bibtex ➞ xelatex`×2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "pdflatex ➞ bibtex ➞ pdflatex`×2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],
    // 具体的编译命令配置
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ]
        },
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    

正向同步

正向同步指的是编译完成后,在 .tex 文件内通过快捷键,快速定位到光标位置在 .tex 的对应位置,方便查看 PDF 文件

推荐打开文件修改后,编译完成后自动正向同步。该功能通过 latex-workshop.synctex.afterBuild.enabled 来控制

"latex-workshop.synctex.afterBuild.enabled": true,

反向同步

反向同步指的是编译完成后,在 PDF 文件内通过快捷键,快速定位点击部分在 .tex 的位置,方便修改 .tex 源码

主要参考插件的官方 synctex 配置修改

  1. VSCode 内部 PDF 浏览器

    如果直接使用 VSCode 来浏览 PDF,不需要额外设置,可以根据需要修改 latex-workshop.view.pdf.internal.synctex.keybinding 来修改反向同步的快捷键即可,默认 Ctrl 加鼠标左键

    // 默认 Ctrl 加鼠标左键
    "latex-workshop.view.pdf.internal.synctex.keybinding": "ctrl-click",
    
  2. 外部 PDF 浏览器

    SumatraPDF 是一款流行的小巧方便的免费 PDF 浏览软件。VSCode 支持使用外部的 PDF 浏览器来查看编译后的 PDF 文件,以及反向搜索功能。主要需要如下配置:

    // 配置为使用外部 PDF 浏览软件来浏览 PDF
    "latex-workshop.view.pdf.viewer": "external",
    // 配置外部 PDF 浏览软件的命令行以及参数
    "latex-workshop.view.pdf.external.viewer.command": "D:/Program/SumatraPDF/SumatraPDF-3.2-64.exe", // 自行修改路径
    "latex-workshop.view.pdf.external.viewer.args": [
        "%PDF%"
    ],
    

    在 SumatraPDF 的设置-选项中设置反向搜索命令行 C:\Users\<user>\AppData\Local\Programs\Microsoft VS Code\Code.exe -g "%f:%l",Code 的路径应该为完整的绝对路径

其他可选配置

// 关闭自动编译
"latex-workshop.latex.autoBuild.run": "never",
// 默认选择上次编译链
"latex-workshop.latex.recipe.default": "lastUsed"
// 右键菜单
"latex-workshop.showContextMenu": true,
// 关闭编译出错的弹窗
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,

中文支持

该节主要参考 Overleaf Chinese 文档

推荐使用 XeLaTeX 和 LuaLaTeX 来编译含有中文字符的 .tex 文件

XeLaTeX 和 LuaLaTeX

  1. 直接使用 ctexart 文档类即可支持中文
  2. 或者使用 ctex 包来支持中文

参考代码如下:

\documentclass{ctexart}

\begin{document}

\tableofcontents

\begin{abstract}
这是简介及摘要。
\end{abstract}

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

這是繁體中文。

\end{document}

或者

\documentclass{xxx}
\usepackage{ctex}

XeLaTeX

XeLaTeX 还可以使用 xeCJK 包来支持中文

参考代码如下:

\documentclass{article}
\usepackage{xeCJK}
\begin{document}

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

這是繁體中文。
\end{document}

pdfLaTeX

pdfLaTeX 对中文支持不是很好,只用 pdaLaTeX 的话需要引入 CJKutf8 包,并且用 \begin{CJK*}{UTF8}{gbsn}\end{CJK*} 包住所有的中文。

  • gbsngkai 是简体的字体
  • bsmibkai 是繁体的字体

参考代码如下:

\documentclass{article}
\usepackage{CJKutf8}

\begin{document}

\begin{CJK*}{UTF8}{gbsn}

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

\end{CJK*}

\bigskip  %% Just some white space

You can also insert Latin text in your document

\bigskip  %% Just some white space

\begin{CJK*}{UTF8}{bsmi}
這是繁體中文。
\end{CJK*}

\end{document}

编译

  1. 首先 .tex 文件名以及路径尽量不要含有空格以及中文字符

  2. 在使用 latexmk 和 VSCode 的 LaTeX Workshop 时,推荐使用第三个编译链 Recipe: latexmk (lualatex)

    build-chinese-latex.png

参考资料

本文作者: ywang_wnlo
本文链接: https://ywang-wnlo.github.io/posts/4f94956.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容