Docker中使用TDS文件结构更新pgfplots报错如何解决
问题根因
你遇到的新报错并非pgfplots安装损坏,而是高版本pgfplots与TeX Live 2014自带的低版本pgf(TikZ核心依赖包)不兼容导致的:新版pgfplots依赖pgf 3.1.0以上版本,而TeX Live 2014自带的pgf版本远低于该要求,仅单独升级pgfplots就会出现参数定义冲突。
可行修复方案
方案1:补充升级匹配版本的pgf包(适配现有环境)
操作步骤:
- 下载和你安装的pgfplots版本匹配的pgf.tds包,上传到容器内的
/root/texmf/路径下:
docker cp pgf.tds docker_container_name:/root/texmf/pgf
- 容器内更新环境变量,把pgf的路径加入TeX搜索路径优先级:
export TEXINPUTS=/root/texmf/pgf/tex//:/root/texmf/pgfplots/tex//: export LUAINPUTS=/root/texmf/pgf//:/root/texmf/pgfplots//:
- 重新执行texhash更新索引
texhash
- 编译测试,此时pgf版本匹配后参数冲突报错会消失。如果不需要pgfplots 1.18的新特性,可以在TeX代码开头显式指定
\pgfplotsset{compat=1.16}关闭版本提示。
方案2:更稳定的升级方案(避免后续依赖冲突)
不需要重装整个TeX Live,只需要手动配置本地texmf目录的优先级高于系统apt安装的TeX目录即可:
- 容器内创建标准的本地texmf目录结构,TeX会默认优先加载
~/texmf下的包,无需手动配置环境变量:
mkdir -p ~/texmf/tex/latex/
- 将下载的pgf.tds和pgfplots.tds解压后,把里面
tex/latex/下的pgf、pgfplots文件夹直接移动到上面创建的~/texmf/tex/latex/路径下 - 执行
texhash ~/texmf更新本地索引即可,可避免临时环境变量失效的问题。
内容的提问来源于stack exchange,提问作者HeXXeN
相关产品推荐
相关产品推荐

