linux安装texlive并使用vscode远程连接

本来一直都是在windows上写latex, 奈何实在感觉编译太慢了, 虽然也有一些优化方法(下面会讲), 但切换为linux才是更加geek的方式, 正巧我家里就有一台N100的零刻的小主机, 系统为Ubuntu, 硬盘为M.2 PCIe SSD, 内存是DDR5 4800. 秒杀我的R7 6800H的windows笔记本!

提高LaTeX的编译速度

  • 取消压缩

    1
    \special{dvipdfmx:config z 0} %取消PDF压缩,加快速度,最终版本生成的时候最好把这句话注释掉

    确实提升很大, 但是让我原本15M的pdf变成了160+M, 打开查看都要转圈圈的那种

    对比测试: 只使用xelatex命令(不用xelatex -> bibtex -> xelatex*2)

    压缩 取消压缩
    windows 36.57s 9.53s
    linux 21.73s 3.47s
    1. 使用批处理模式,即编译时加上 -interaction=batchmode 参数

    2. 使用预编译技术,涉及到一个宏包(mylatexformat)和两条命令:

      1. etex -initialize -jobname="hello" "&pdflatex" "mylatexformat.ltx" "hello.tex"
      2. pdflatex -shell-escape "&hello" hello.tex

    没有仔细研究, 可参考[tikz-intro/t001 speedup tex/speedup-tex.md at master · Hansimov/tikz-intro (github.com)](https://github.com/Hansimov/tikz-intro/blob/master/t001 speedup tex/speedup-tex.md)

linux安装texlive

首先奉劝想在实验室服务器上安装的研究生(比如我)考虑清楚, 致命的问题是没有root权限. texlive确实能安装成功, 但缺失的字体就很让人难受了. 虽然部分字体也能手动安装, 但latex编译好像还是失败, 比如Arial.

image-20231228152637127

无root安装

依然是先下载.iso文件, 由于无root, 不可能直接挂载iso文件, 只能先解压出来再安装(服务器没有能解压iso的命令, 我是电脑解压再压缩成zip上传服务器的…)

进入到目录, 执行perl install-tl, 自己更改安装路径, 然后安装, 就是等, 实验室服务器安装了快半个小时, 我家的服务器安装10分钟? 可能服务器安装到机械盘了吧.

配置环境变量!!!

各种都试一遍, 什么.zshrc .bashrc .profile /etc/environment, 因为vscode的LaTeX Workshop插件好像识别不了新添加的PATH

image-20231228154311995

还有终极大杀器, 直接把texlive的所有可执行文件都软链接到已有的PATH里!

虽然他还是这样提示, 但亲测完全可以编译, pdf也能出来(只是缺字体), LaTeX Workshop的作者还坚称这不是插件的问题.

手动安装字体

看编译log, 缺啥字体, 啥字体报错就去你C:\Windows\Fontscopy到服务器~/.local/share/fonts/上, 执行

1
2
fc-cache -f -v
fc-list | grep "Arial" # 例子, 查看Arial

root安装

1
2
3
mount -o loop texlive2023.iso /mnt/texlive
cd /mnt/texlive
./install-tl

既然都root了, 别改安装目录了, 以免再有什么幺蛾子, 直接安装

环境变量参考上方, 经过我一番操作, 包括重启, LaTeX Workshop能识别到我的texlive路径了

字体安装

1
2
3
4
5
apt install ttf-mscorefonts-installer
apt-get install texlive-fonts-extra texlive-fonts-recommended texlive-math-extra
apt-get install cm-super
tlmgr install cm-super
tlmgr install ec

都安装一下吧, 不知道有没有用, 然后再缺字体, 也要手动安装, 进入/usr/share/fonts/chinese, 字体上传到这

1
2
3
4
mkfontscale
mkfontdir
fc-cache
fc-list :lang=zh|grep 华文细黑

也可以尝试上面的字体安装方法, 不知道什么区别

成功!

正值考试周, 耽误两天复习时间, gan

LaTeX Workshop

只安装这一个插件就可以了, 别的看个人需要

贴一个配置, 广为流传

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.showContextMenu": true,
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"pdflatex"
]
},
{
"name": "BibTeX",
"tools": [
"bibtex"
]
},
{
"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.clean.fileTypes": [
"*.aux",
// "*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk"
],
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",