docker 部署 LaTeX 环境

docker 部署 LaTeX 环境

  • 需求表述
  • 部署步骤
  • [环境补丁(解决 picins.sty 缺失问题)](#环境补丁(解决 picins.sty 缺失问题))

同步发布在个人笔记docker 部署 LaTeX 环境

需求表述

想做一个项目,需要一个 LaTeX 的中文环境,由于习惯了在服务器上用 docker 部署环境,于是也决定如此。

关于 docker + LaTeX 的部署方式已经有很多成熟方案了,比如:

  • Overleaf
    Overleaf 项目可以方便的获得一个在线的 LaTeX 编辑环境,直接参考官方教程即可Overleaf/toolkit
  • texlive
    docker hub 有专门维护的 texlive/texlive 镜像,直接 pull 下来部署也可。

但是由于我的项目需要对 LaTeX 设置不少东西,于是决定干脆从 Ubuntu 的容器环境从新搭建好了,故笔记记录一下。

部署步骤

首先是部署一个 Ubuntu 的容器环境,具体过程见笔记DOCKER COMPOSE 部署交互模式的容器-以UBUNTU为例

上步搭建完成后,进入容器环境:
docker exec -it container_name bash

进入容器内部后,首先安装 Ubuntu 基础的一些工具(容器是 root 的,所以命令均不需要 sudo):

bash 复制代码
# LaTeX 环境仅需要前两步即可
apt update			#更新软件源
apt install vim		# vim 编辑器

# 常用 Ubuntu 工具软件
apt install iputils-ping	# ping tool
apt install net-tools		# ifconfig 等网络工具包
apt install openssh-client  # ssh 客户端
apt install openssh-server  # ssh 服务端
apt install vsftpd			# ftp 

完成基础 Ubuntu 部署后,安装 LaTeX 软件:

bash 复制代码
apt-get install texlive-full

注意此步中有可能在此处卡住,终端信息是:
Pregenerating ConTeXt MarkIV format. This may take some time...
此时多次敲击 Enter 就可以越过此步,不会有什么影响。

推荐使用 ctex 来实现中文排版,不要使用 CJK ,后者太麻烦了┑( ̄Д  ̄)┍。如果只是用 ctex 那么这样就够了。

通过查看版本来检查安装是否成功:

tex -v
pdflatex -v
xelatex -v

环境补丁(解决 picins.sty 缺失问题)

由于我需要用一个包含 picins 包的模板,所以需要手动打这个补丁,步骤如下:

  • 下载补丁文件夹 picins。网上有很多地址,我github上放了一份
  • 将文件夹 picins 放置在文件夹 /usr/share/texlive/texmf-dist/tex/latex/下:
    docker cp /home/username/download_path/picins container_namef:/usr/share/texlive/texmf-dist/tex/latex/
    不同系统的位置可能不一样,比如 windows 就可能在 C:\...\texlive\2023\texmf-dist\tex\latex,关键是找到 texmf-dist 文件夹。
  • 运行命令刷新 texlive 文件数据库
    texhash

然后就可以在 LaTeX 环境中编译一些文件进行测试啦。

PS :其实这个包很老了,新的模板根本不需要,可以直接用这个包:
\usepackage{graphicx}

相关推荐
金刚猿12 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong13 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿13 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
陈桴浮海14 小时前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
70asunflower17 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
ShiLiu_mtx17 小时前
k8s - 7
云原生·容器·kubernetes
春日见18 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe218 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天18 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua20 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka