配置code-server和texlive实现网页写tex

news2024/11/24 11:11:22

使用overleaf太卡了,有云服务器或者nas小主机,配置自己的code-server+texlive,来写论文。
之前用服务器配置过自己的overleaf,感觉不是很好用,缺少东西。

一、思路

  1. 使用docker先安装一个ubuntu,用dockerfile在里面配置好ssh;(如果是云服务器,则不需要安装ubuntu,直接操作下面接即可)
  2. 通过ssh,依次安装code-server、texlive、git(当然也可以在dockerfile中直接配置好,但是code-server需要科学上网,不一定成功)
  3. 然后在code-server中配置相应的文件,即可运行。(主要是安装插件、配置tex指令)

二、操作步骤

  1. Dockerfile内容如下:
FROM ubuntu

# Install SSH
RUN apt-get update && apt-get install -y openssh-server && rm -rf /var/lib/apt/lists/*

# Configure SSH
RUN mkdir /var/run/sshd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# Setup the root password
ARG ROOT_PASSWORD
RUN echo "root:${ROOT_PASSWORD}" | chpasswd

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y iputils-ping nano

RUN apt-get install -y curl git
  1. docker-compose.yml文件如下,可以修改你自己的ubuntu密码,默认账户是root。

这里映射了/home文件夹,用于放自己的文件夹

version: '3.8'
services:
  ubuntu_texlive:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        ROOT_PASSWORD: UBUNTU_PASSWORD
    network_mode: host
    volumes:
      - /mnt/user/appdata/ubuntu-texlive/home:/home

上面网络设置为host,会需要22端口,对于云服务器可能不适用。可以映射两个端口出来,分别为ssh的22和code-server的8080。可以将network_mode: host改为:

ports:
      - "2222:22"
      - "8081:8080"
  1. 运行上述后,将会生成一个docker容器,通过ssh访问,进行后操作。账户是root,密码上前面设置的
  2. 安装texlive:
    基于官方网页进行安装即可:https://tug.org/texlive/quickinstall.html
    完成后需要在~/.bashrc添加路径:
PATH=$PATH:/usr/local/texlive/2024/bin/x86_64-linux
  1. 安装code-server:
    基于官方一件安装脚本即可:https://github.com/coder/code-server/tree/main
    可能会下载失败,如果有代理,可以添加代理:
export http_proxy="http://192.168.1.104:7893"
export https_proxy="http://192.168.1.104:7893"
export all_proxy="socks5://192.168.1.104:7893"

如果云服务器不方便走代理,可以下载release后,进行手动sh安装即可。
完成后使用code-server --host 0.0.0.0 --port 8081即可运行,并从外部从ip+端口访问

  1. code-server登录密码
    运行上述code-server后,会有一个路径告诉你配置文件的路径,可以从里面获得默认密码,也可以修改里面的文件,包括密码、host和port。

  2. code-server后台运行
    使用nohup xxx &即可后台运行,通过ps -aux | grep code-server可以找到该命令,使用kill进行关闭。
    官方的使用systemctl指令,无法在docker的ubuntu中运行,如果是云服务器则可以,后面需要使用systemctl stop进行关闭。

  3. code-server插件安装
    安装插件如下,需要就这三个。
    在这里插入图片描述

  4. code-server json配置
    在code-server命令面板中,输入json,打开 首选项:打开用户设置,输入以下内容:
    (有些是其他的不必要的,但是我也判断不出来了


{
    "files.autoSave": "onFocusChange",
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.view.pdf.hand": true,
    "latex-workshop.synctex.afterBuild.enabled": true,
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "latexmk",
            "command": "latexmk",
            "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": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "latexmk",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "BibTeX",
            "tools": [
                "bibtex"
            ]
        },
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "xelatex -> bibtex -> xelatex*2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        }
    ],
    
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "editor.fontSize": 18,
    "terminal.integrated.enableMultiLinePasteWarning": false,
    "git.autofetch": true,
    "git.confirmSync": false,

    "diffEditor.ignoreTrimWhitespace": false,
    "explorer.confirmDelete": false,
    "pdf-preview.default.sidebar": true,
    "platformio-ide.activateProjectOnTextEditorChange": true,
    "git.enableSmartCommit": true,
    "editor.unicodeHighlight.ambiguousCharacters": false,

    "grammarly.files.include": [
        "**/README.md",
        "**/readme.md",
        "**/*.txt",
        "**/*.tex"
    ],

    // "commentTranslate.hover.concise":true,
    "commentTranslate.hover.enabled": true,
    "grammarly.config.documentDialect": "american",
    "grammarly.config.documentDomain": "academic",
    "workbench.editorAssociations": {
        "*.pdf": "latex-workshop-pdf-hook"
    },
    "workbench.colorTheme": "Quiet Light",
    "workbench.editor.enablePreview": false,
    "translation.target-language": "zh",
    "todo-tree.general.schemes": [
        "file",
        "ssh",
        "untitled",
        "vscode-notebook-cell",
        "tex"
    ],
}
  1. 运行测试
    在/home文件夹(从容器映射到了外面)下,写一个tex文件进行测试。

  2. 快捷方式修改
    grammally的快捷方式会被占用,修改成alt+x比较合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1566078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

施耐德 Unity Pro PLC 编程软件介绍

Unity Pro 软件基本介绍 Unity Pro 是施耐德中大型 PLC 的编程软件&#xff08;<–> 对应西门子 Step7&#xff09; 支持的 PLC&#xff1a;施耐德中大型 PLC 中型 PLC&#xff1a;Premium、M340&#xff08;<–> 对应西门子 S7-300、S7-1200&#xff09;大型 PL…

制作一个一键运行的10多M的go-cqhttp最简docker镜像

一直有个想自己部署一个QQ机器人&#xff0c;虽然成功完成在Windows环境下基于 go-cqhttp 的搭建工作。但考虑到我有一台常年在线的群晖 NAS&#xff0c;并且已经配置并启用了 Docke r服务&#xff0c;可否将go-cqhttp 迁移至 NAS 上的 Docker 容器中运行吗呢&#xff1f;同时&…

SSTI模板注入(jinja2)

前面学习了SSTI中的smarty类型&#xff0c;今天学习了Jinja2&#xff0c;两种类型都是flask框架的&#xff0c;但是在注入的语法上还是有不同 SSTI&#xff1a;服务器端模板注入&#xff0c;也属于一种注入类型。与sql注入类似&#xff0c;也是通过凭借进行命令的执行&#xff…

短袖有什么牌子可以推荐?五款每个人都必备的短袖分享

最近天气逐渐升温&#xff0c;大家都在挑选夏季的短袖了&#xff0c;但是因为市面上的短袖质量参差不齐&#xff0c;甚至有一些使用劣质面料&#xff0c;不仅不耐穿不耐洗&#xff0c;而且穿着还十分闷热。相信大家心里都非常想知道现在有哪些短袖品牌是可靠的&#xff0c;所以…

鸿蒙TypeScript入门学习第8天:【TypeScript 函数】

1、TypeScript 函数 函数是一组一起执行一个任务的语句。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&#xff0c;但在逻辑上&#xff0c;划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器函数的名称、返回类型和参…

2.2.1.2-网格交易(python网格交易附实战交易记录)

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…

源浩流体设备与您相约2024年第13届生物发酵展

参展企业介绍 温州源浩流体设备科技有限公司是一家集设计、开发、制造、销售、服务于一体的高科技企业&#xff0c;公司主要生产各种不锈钢阀门、管件、卫生级流体设备(卫生级换向阀,卫生级减压阀,卫生级罐底阀)等。现为温州市泵阀协会会员&#xff0c;ISO9000 2008版质量质量…

Leaflet使用多面(MultiPolygon)进行遥感影像掩膜报错解决之道

目录 前言 一、问题初诊断 1、山重水复 2、柳暗花明 3、庖丁解牛 4、问题定位 二、解决多面掩膜问题 1、尝试数据修复 2、实际修复 3、最终效果 三、总结 前言 之前一篇讲解遥感影像掩膜实现&#xff1a;基于SpringBoot和Leaflet的行政区划地图掩膜效果实战&#xff0…

解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理

随着信创国产化改造持续推进&#xff0c;越来越多的金融机构不断采购信创服务器、PC、办公软件等&#xff0c;其 IT 基础设施逐渐迁移至国产化 IT 架构下。为支撑国产化 IT 基础设施的正常使用和集中管理运维&#xff0c;某金融机构数据中心的微软Active Directory&#xff08;…

Java入门教程||Java 多线程编程

Java 多线程编程 Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程&#xff0c;并且每个线程定义了一个独立的执行路径。 多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。 这里定义和线程…

WEB 工程路径

WEB 工程路径 相对路径 使用相对路径来解决&#xff0c; 一个非常重要的规则&#xff1a;页面所有的相对路径&#xff0c;在默认情况下&#xff0c;都会参考当前浏览器地址栏的路径 http://ip:port/工程名/ 资源来进行跳转。 相对路径带来的问题 如上图&#xff0c;若在a.h…

Shell脚本介绍及基本功能

目录 一、什么是Shell 二、什么是Shell脚本 三、echo 四、Hello World 五、Bash的基本功能 1.别名 2.常用快捷键 3.输入输出 4.输出重定向 5.多命令执行 6.管道符 7.通配符和特殊符合 一、什么是Shell Shell是一种命令行解释器&#xff0c;它是操作系统的一部分&a…

N5182A安捷伦N5182A信号发生器

181/2461/8938产品概述&#xff1a; 信号特征 100 kHz至3或6 GHz使用高度可靠的快速开关电子衰减器时&#xff0c;最高可达3 GHz》23 dBmW-CDMA动态范围:≤-73 dBc&#xff0c;输出功率为5 dBm列表模式下≤900 μs的同步频率、幅度和波形切换 调制和扫描 调幅、调频、调频和…

OpenHarmony实战开发-如何通过Stage模型实现一个简单的游戏卡片

介绍 本示例展示了如何通过Stage模型实现一个简单的游戏卡片。 通过卡片支持的点击事件进行交互&#xff0c;让用户通过点击的先后顺序把一个乱序的成语排列成正确的成语。使用了C和TS的混合编程方式&#xff0c;将获取随机数的能力下沉到C实现&#xff0c;并通过NAPI的能力将…

高德定位 SDK 到底提供了什么服务?

最近我被高德的销售烦到不行&#xff0c;说是我用了他们的 SDK&#xff0c;现在 SDK 要收费。 表达是很绕的&#xff0c;什么授权啦&#xff0c;什么企业认证风险啦&#xff0c;讲了一堆&#xff0c;还跟我开始搬出协议了。感觉高德的销售真够垃圾的&#xff0c;编个话术都不会…

【EI检索会议】电子、通信与智能科学国际会议二轮征稿中

【会议名称】电子、通信与智能科学国际会议 【会议简称】ECIS 2024 【会议官网】www.icecis.org 【会议时间】2024年5月24日~27日 【二轮截稿时间】2024年4月20日 【会议地点】中国长沙 【征稿主题】集中但不限于“电子、通信、智能科学”等其他相关主题。 【官方邮箱】…

3.java openCV4.x 入门-数据类型(CvType)与Scalar

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天 &#x1f9ed;文章导航&#x1f9ed; ⬆️ 2.hello openCV ⬇️ 4.待更新 数据类型&#xff…

【leetcode】双指针(二)

标题&#xff1a; 【leetcode】双指针&#xff08;二&#xff09; 水墨不写bug 正文开始&#xff1a; &#xff08;一&#xff09;总和为目标值的两个数 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况&#…

支持各种不同系列nvdia显卡和amd显卡,DeepFaceLab安装与使用,附完整的软件打包下载一键安装

支持各种不同系列nvdia显卡和amd显卡&#xff0c;DeepFaceLab安装与使用&#xff0c;附完整的软件打包下载一键安装。 主要使用的技术&#xff1a; 1. 深度学习&#xff08;Deep Learning&#xff09; 深度学习是人工智能领域的一个重要分支&#xff0c;它通过模拟人脑的神经…

面试经典150题【131-140】

文章目录 面试经典150题【131-140】123.买卖股票的最佳时机III188.买卖股票的最佳时机IV二分查找的板子&#xff1a;35.搜索插入位置74.搜索二维矩阵162.寻找峰值33.搜索旋转排序数组34.在排序数组中查找元素的第一个和最后一个位置153.寻找旋转排序数组中的最小值4.寻找两个正…