• Mac中LaTex无法编译的问题


    最近在使用TexStudio时,遇到一个棘手的问题:

    无法编译,提示如下:

    kpathsea: Running mktexfmt xelatex.fmt
    /Library/TeX/texbin/mktexfmt: kpsewhich -var-value=TEXMFROOT failed, aborting early. BEGIN failed–compilation aborted at /Library/TeX/texbin/mktexfmt line 25.
    Process exited with error(s)

    以往,把错误提示复制到搜索引擎,一般都能找到类似问题,按照大家的经验,总能解决。但这次,无论如何也找不到类似错误提示。或许有,我看不懂。

    这里尝试分析一下这个错误。

    kpathsea

    是一个解决编译过程中文件搜索问题的库,是由Karl Berry编写的,因此该程序命名为Karl’s Path Searching简称为kpathsea。想详细了解一些可以看看对作者的采访

    mktexfmt xelatex.fmt

    mktexfmt是一个脚本(程序),它用于生成TeX
    Live中的格式文件。在LaTeX中,格式文件是预先编译的文件,可以使LaTeX快速地处理文档。 比如,当执行 pdflatex
    的时候,实际上 LaTeX 会调用 pdflatex.fmt 这个预编译好的格式文件来快速处理 pdflatex。

    在LaTeX系统中,.fmt文件是格式文件(format
    file),它是预编译的,其中包含了LaTeX的所有宏定义,字符信息,以及其他的基础格式设置。这样,每次运行LaTeX的时候,就不必重新读取所有的宏定义和格式设置,大大加快了编译速度。

    当然,.fmt文件不仅只用于LaTeX,还用于TeX和其他一些TeX的变体。

    .fmt文件通常在TeX系统安装或是更新时自动生成,也可以手动创建。TeX系统在启动时会加载一个.fmt文件,该文件决定了将要使用的格式。例如在启动LaTeX时,系统会加载latex.fmt文件。

    网上没搜到合适的解释,所以上面引用的文字是我问的chatGPT,它的回答。

    继续问chatGPT

    问题是:
    在只用TexStudio编译tex文件时,遇到了错误提示“kpathsea: Running mktexfmt xelatex.fmt
    /Library/TeX/texbin/mktexfmt: kpsewhich -var-value=TEXMFROOT failed, aborting early. BEGIN failed–compilation aborted at /Library/TeX/texbin/mktexfmt line 25.
    Process exited with error(s)”,可能是什么原因?

    回答是:

    这个错误可能是由于你的电脑的TeX安装有问题。这可能是由于安装过程中的错误,或者是你的TeX环境变量没有正确设置。

    具体来讲,错误提示显示kpsewhich
    -var-value=TEXMFROOT命令失败,这说明在运行这条命令查找TeX安装的根目录时出了问题。mktexfmt是TeX用来创建格式文件的程序,当它找不到需要的文件或者无法确定TeX的根目录时,就会退出并给出错误。

    如果你能够确保TeX已经正确安装,并且你知道TeX安装的实际路径,你可以尝试在终端中执行下面的命令以设定环境变量:

    export TEXMFROOT=/your/texmf/root
    这里的/your/texmf/root应当替换为你电脑中TeX的实际安装路径。

    如果你不确定TeX的实际安装路径,那也可能需要重新安装TeX。你可以去TeX Live官网下载最新的安装包,按照其指示进行安装。

    在大多数情况下,这些步骤能够解决问题。如果问题仍然存在,你可能需要寻找专业的TeX支持或者在TeX社区发。

    chatGPT的回答是不错的,但我是在写这个文章的时候才想起来问它。写文章之前其实已经解决了问题。现在看来,如果早点儿问chatGPT,能够更快地找到问题所在。

    实际问题所在

    可能是由于我卸载了以前版本的TexLive,但实际上没有卸载干净,新安装后,TexStudio默认的编译引擎所指向的地址实际找不到引擎。

    解决办法

    在TexStudio的preference中,设置引擎路径为正确的路径。。
    或者把以前版本删干净后再重新安装,我怕删错了,没试。
    在这里插入图片描述

  • 相关阅读:
    Go语言聊天室demo
    阿里终面:说说OAuth2.0 与 单点登录的区别?
    js将带标签的内容转为纯文本
    UE4 设计模式:单例模式(Singleton Pattern)
    前端项目nginx部署
    第三章 解析python中opencv,matpoltlib与pillow对JPG和PNG读取和写入(工具)
    torch 和paddle 的GPU版本可以放在同一个conda环境下吗
    【iOS】AutoreleasePool自动释放池的实现原理
    【Hello Go】Go语言函数
    【Java多数据源实现教程】实现动态数据源、多数据源切换方式
  • 原文地址:https://blog.csdn.net/namishizi321/article/details/134563314