本人手头电脑是Win10 Home版全新安装的系统,由于不想在新系统盘里面安装TexLive导致固态硬盘不断扩大,所以,考虑安装Ubuntu做为WSL,然后把TexLive安装在Ubuntu,并通过VS Code调用Ubuntu命令来写Latex的方法来写一些论文。在此,提供一个思路给大家借鉴。

Windows 10安装WSL2和Ubuntu 18.04

这个过程其实直接参照微软的标准过程就可以了,大致步骤总结如下:

  1. 去控制面板开启Virtual Machine Platform和Windows Subsystem for Linux(WSL)
  2. 在Win10的Settings里面开启Windows Insider Program的Slow模式(需要微软账户)
  3. 检查并且更新Win10系统版本到新的版本
  4. 打开Win10里面个人比较喜欢的命令行工具输入wsl --set-default-version 2来把默认的WSL版本升级到WSL2
  5. 去Microsoft Store安装并且下载Ubuntu 18.04 app
  6. 下载并且等到安装完毕就可以了

在Ubuntu 18.04安装TexLive 2019

这个过程安装稍微要长一点,保持耐心就好,步骤如下:

  1. 到清华的开源软件镜像站下载TexLive的安装器https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/install-tl.zip(如果你想下载完整版的.iso文件也可以的,我没有试过这个怎么安装的,请自行尝试)
  2. 解压以后进入解压后的文件夹并执行这个命令来安装sudo ./install-tl -repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/(在选项里面选择allow execution of restricted list of programs via \write18create all format files,然后选择set up for portable installation
  3. 等待一段时间后,安装好的TexLive在/usr/local/texlive这个目录
  4. 安装字体配置器以备以后安装字体使用sudo apt install fontconfig
  5. 如果需要配置字体,随时把想要的字体文件(.otf,.ttf等)拷贝到/usr/share/fonts下面,然后运行sudo fc-cache -f -v来扫描字体目录并生成字体信息的缓存

VS Code配置TexLive的运行环境并编译生成PDF文件

最后就可以来利用Ubuntu的TexLive环境来在VS Code里编译生成PDF文件了。下面着重讲讲VS Code的配置(对VS Code小白比较适用,高手勿喷)。

  1. 首先要安装VS Code的扩展程序叫做Latex Workshop(VS Code运行Latex必须的扩展),安装完在VS Code最左边会看到一个Tex字样的图标
  2. 点击这个Tex图标,然后按Ctrl+Shift+P来打开Preferences: Open Settings (JSON),输入以下内容:
{
"editor.wordWrap": "on",
"workbench.startupEditor": "newUntitledFile",
// 对应Clean up auxiliary files命令需要清楚的临时文件类型
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.bcf",
"*.cut",
"*.dvi",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.xml",
"*.pdf",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.gz"
],
// 这个viewer的配置好像不太需要,因为在对应的View Latex PDF命令里面可以选浏览方式
"latex-workshop.view.pdf.viewer": "tab",
// 重点:这决定了下面的recipes调用不同TeX命令具体的执行方式
"latex-workshop.latex.tools": [
{
"name": "latex",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/latex",
"-src",
"-interaction=nonstopmode",
"%DOCFILE%.tex"
]
},
{
"name": "pdflatex",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/pdflatex",
"-synctex=1",
"-interaction=nonstopmode",
"-aux-directory=build",
"%DOCFILE%.tex"
]
},
{
"name": "xelatex",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/xelatex",
"-synctex=1",
"-interaction=nonstopmode",
"%DOCFILE%.tex"
]
},
{
"name": "lualatex",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/lualatex",
"-synctex=1",
"-interaction=nonstopmode",
"%DOCFILE%.tex"
]
},
{
"name": "dvips",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/dvips",
"-o",
"%DOCFILE%.ps",
"%DOCFILE%.dvi"
]
},
{
"name": "dvipng",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/dvipng",
"-T",
"tight",
"-D",
"120",
"%DOCFILE%.dvi"
]
},
{
"name": "ps2pdf",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/ps2pdf",
"%DOCFILE%.ps"
]
},
{
"name": "dvipdf",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/dvipdfm",
"%DOCFILE%.dvi"
]
},
{
"name": "bibtex",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/bibtex",
"%DOCFILE%.aux"
]
},
{
"name": "biber",
"command": "wsl",
"args": [
"-u",
"YOUR LINUX USERNAME",
"/absolute/path/to/your/biber",
"%DOCFILE%.bcf"
]
}
],
// 这个会生成在Commands里面的recipe
"latex-workshop.latex.recipes": [
{
"name": "latex",
"tools": [
"latex"
]
},
{
"name": "pdftex",
"tools": [
"pdflatex"
]
},
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "luatex",
"tools": [
"lualatex"
]
},
{
"name": "dvips",
"tools": [
"dvips"
]
},
{
"name": "dvipng",
"tools": [
"dvipng"
]
},
{
"name": "ps2pdf",
"tools": [
"ps2pdf"
]
},
{
"name": "dvipdf",
"tools": [
"dvipdf"
]
},
{
"name": "bibtex",
"tools": [
"bibtex"
]
},
{
"name": "biber",
"tools": [
"biber"
]
}
]
}

至此环境已经准备完毕,重启以下VS Code,下面就是怎么打开你的Tex文件,然后点击刚才左侧的Tex图标,并且调出Commands窗口,在Build LaTeX Project下面的Recipe就可以利用不同的Tex命令来编译生成PDF文件了。纵观整个过程,这个settings.json的配置是重点。

Win10+WSL2+Ubuntu 18.04(WSL下)+VS Code(Win10下)+TexLive 2019(Ubuntu下)安装和配置的更多相关文章

  1. 在 Ubuntu 18.04 LTS 无头服务器上安装 Oracle VirtualBox

    作者: Sk 译者: LCTT qhwdw | 2018-10-12 01:59 本教程将指导你在 Ubuntu 18.04 LTS 无头服务器上,一步一步地安装 Oracle VirtualBox. ...

  2. Ubuntu 18.04中截图工具Shutter的编辑按钮不可用的解决办法

    Shutter是一个由第三方提供的在Ubuntu上运行的截图工具,相对于系统自带的截图工具(默认可通过Ctrl + Shift + Print快捷键启动截图),最大的优点就是可以即时对图片进行编辑,在 ...

  3. How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux

    Objective The objective is to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux. This a ...

  4. How to Install Oracle Java 11 on Ubuntu 18.04 LTS (Bionic) Written by Rahul, Updated on April 3, 20

    本文系转载备份 请阅读点击下面链接阅读原文以获取更佳地阅读体验.谢谢. How to Install Oracle Java 11 on Ubuntu 18.04 LTS (Bionic) Writt ...

  5. 如何在Ubuntu 18.04上安装和卸载TeamViewer

    卸载命令:sudo apt --purge remove teamviewer 安装:https://www.linuxidc.com/Linux/2018-05/152282.htm 如何在Ubun ...

  6. Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量

    Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量   Ubuntu 作为服务器系统使用的时候,系统盘的空间可能并不是很充裕,apt apt 着,根目录就满了.诚然, ...

  7. 在ubuntu 18.04下,无线网卡无驱动,连不上wifi,显示wifi没有适配器的解决方法

    近来因为做东西要用到linux环境,所以自己的笔记本在win10的系统上又安装了ubuntu 18.04版本的双系统,但是安装好以后,没有无线网卡的驱动,显示wifi没有适配器等字样,很纠结,前后研究 ...

  8. WSL Ubuntu 18.04 LTS + VS Code

    WSL Ubuntu 18.04 LTS + VS Code ​ WSL(Windows Subsystem for Linux)使得Windows用户能够在Windows系统上使用原生的Linux环 ...

  9. Ubuntu 18.04下Couldn't connect to Docker daemon at http+docker://localunixsocket解决办法

    一台服务器系统为:Ubuntu 18.04 LTS,上面建了git裸仓库,用于开发吧代码push到这里.同时WEB测试环境通过docker也部署在这台.通过git钩子post-receive,当有新代 ...

随机推荐

  1. 流程控制 if-while-for -语句

    if 语句是用来判断条件的真假,是否成立,如果为ture就执行,为flase则跳过 1.python用缩进表示代码的归属 2.同一缩进的代码,称之为代码块,默认缩进4个      if 语句结构   ...

  2. [SDOI2019]染色(DP)

    好神的题啊! 看了这题只会第一个subtask,又参考了HN-CJ鸽王zsy的题解,实在太菜了. 暴力转移是O(nc2),很显然没有分.考虑子任务1,2,只需要转移包含已染色格子的列,然后状态数只有O ...

  3. BaseAdapter教程(1) 最简单地使用BaseAdapter

    Adapter就是适配器,而设计模式里也有Adapter Pattern. 而BaseAdapter就是设计模式里的思维,把一些不相关的东西放进去,经过适配器,最终都会出产同一样的东西. 就像Base ...

  4. 移植linux4.14内核到四核Exynos4412开发板

    最近法师收到了很多留言,其中有一部分问法师什么时候更新,还有一大部分问法师我是买迅为的IMX6UL精英版好呢还是买4412精英版好呢,因为我们这俩个都不贵.法师的建议的是入手4412!为什么呢? 第一 ...

  5. 存储过程获取QLIKVIEW关键数据

    declare @table table(DDID INT,FHDID INT ,CKDID INT,ZGYSDID INT,CWYSDID INT)--定义表变量来存放存储过程返回的内容insert ...

  6. RequestContextHolder getHttpServletRequest

    package me.zhengjie.common.utils; import org.springframework.web.context.request.RequestContextHolde ...

  7. Bc-数组-Stack

    1.栈,堆栈,先进后出 2.栈的几个操作: > 入栈,push > 出栈,pop > 获取栈顶元素,peek > 获取栈中共有元素个数,getSize > 是否为空,is ...

  8. Android内存调优的一些方法

    一.巧妙使用软引用和弱引用 软引用,系统内存紧张时会回收软引用对象,一般用用高速缓存,例如图片缓存,我们一般通过内存缓存图片来提高图片加载速度,但内存吃紧的时候可以通过软引用及时对图片资源回收. 弱引 ...

  9. RabbitMQ传输原理、五种模式

    本文代码基于SpringBoot,文末有代码连接 .首先是一些在Spring Boot的一些配置和概念,然后跟随代码看下五种模式 MQ两种消息传输方式,点对点(代码中的简单传递模式),发布/订阅(代码 ...

  10. JavaScript学习总结(六)数据类型和JSON格式

    转自:http://segmentfault.com/a/1190000000668072 什么是JSON JSON:JavaScript 对象表示法(JavaScript Object Notati ...