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中,設置引擎路徑為正確的路徑。。
或者把以前版本刪干凈后再重新安裝,我怕刪錯了,沒試。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160227.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160227.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Linux] Network: IPv6 link-local 地址是否可用不自動生成

原來有一段時間在做擴充產品的VLAN個數,然后就遇到過一個問題:說這個Linux的默認配置里,會為每一個網絡接口添加一個link-local的地址,就是FE80::開頭的地址,在RFC-4291里有如下的定義: Link-Local unicas…

redis運維(十二) 位圖

一 位圖 ① 概念 1、說明:位圖還是在操作字符串2、位圖玩字符串在內存中存儲的二進制3、ASCII字符通過映射轉化為二進制4、操作的是字符串value ② ASCII字符鋪墊 1、控制ASCII字符 2、ASCII可顯示字符 ③ SETBIT 細節: setbit 命令的返回值是之…

git常用命令(git github ssh)

目錄 1、語法說明2、本地倉庫相關操作建立一個git文件(git init)把工作區的文件添加到暫存區(git add)把暫存區的文件添加到本地倉庫(git commit)查看暫存區和本地倉庫中的文件(git ls-files)查看文件夾下所有文件的狀態(git status)查看版本庫中的提交記錄(git log)恢復的文件…

如何解決msvcp110.dll丟失問題,分享5個有效的解決方法

最近,我在使用電腦時遇到了一個令人頭疼的問題——msvcp110.dll丟失。這個錯誤通常會導致某些應用程序無法正常運行。為了解決這個問題,我們需要采取一些有效的方法來修復丟失的msvcp110.dll文件。那么,msvcp110.dll到底是什么呢?…

代碼隨想錄 10.14 || 二叉樹 LeetCode 669.修剪二叉搜索樹、108.將有序數組轉換為二叉搜索樹、538.將二叉搜索樹轉為累加樹

669.修剪二叉搜索樹 根據給定的最小邊界 left 和最大邊界 right 修剪二叉搜索樹,保留值在 left ~ right 的節點,刪除不滿足此條件的節點。修剪樹不應該改變保留在樹中的元素的相對結構,即父子關系。 設 cur 為當前訪問的二叉樹節點&#xff0…

LeetCode(32)串聯所有單詞的子串【滑動窗口】【困難】(含圖解)

目錄 1.題目2.答案3.提交結果截圖4.圖解 鏈接: 串聯所有單詞的子串 1.題目 給定一個字符串 s 和一個字符串數組 words。 words 中所有字符串 長度相同。 s 中的 串聯子串 是指一個包含 words 中所有字符串以任意順序排列連接起來的子串。 例如,如果 w…

Flutter的Event Loop

Flutter 的事件循環機制是其框架的核心部分,它負責管理事件的處理和UI的渲染。了解這個機制對于開發高效且響應迅速的Flutter應用非常重要。以下是Flutter事件循環的主要組成部分和工作原理: 1. 主事件循環(Main Event Loop) 當…

利用ros實現單片機通訊(轉載)

我覺得如果使用這個人的micro_ros通信協議,就不用再去Ubuntu或者Windows上面自己寫驅動程序了, 利用micro_ros實現esp32與ros2的通訊 Tianci ? 天津大學 工學博士 參考:https://github.com/micro-ROS/micro_ros_arduino https://blog.cs…

B站app作品列表sign

之前寫過一篇pc的:B站pc端w_rid逆向 最近pc端老是作妖,更新的太頻繁了, 于是決定干一下app, pc端有個w_rid加密,app端也有個類似的sign 人狠話不多,直接上成果吧: # -*- coding: UTF-8 -*- import hashlib import time import requests import json from urllib.parse…

C語言好好題(一維數組)

兩天沒有更新了,貼紙們,有沒有想我呀。😄😄😄 好了,就寒暄到這里吧,下面請看題: 有序序列判斷 輸入一個整數序列,判斷是否是有序序列,有序,指序列…

騰訊云輕量4核8G12M帶寬服務器租用價格和S5實例報價

騰訊云4核8G服務器優惠價格表,云服務器CVM標準型S5實例4核8G配置價格15個月1437.3元,5年6490.44元,輕量應用服務器4核8G12M帶寬一年446元、529元15個月,阿騰云atengyun.com分享騰訊云4核8G服務器詳細配置、優惠價格及限制條件&…

C++(模板進階)

目錄 前言: 本章學習目標: 1.非類型模版參數 1.1使用方法 1.2注意事項 1.3 實際引用 2.模版特化 2.1概念 2.2函數模板特化 2.3類模板特化 2.3.1全特化 2.3.2偏特化 3.模版分離編譯 ?編輯 3.1失敗原因 ?編輯 3.2解決方案 4 總結 前言&…

【C++】類和對象——構造函數和析構函數

今天要學習兩個特殊的函數&#xff0c;分別是構造函數和析構函數&#xff0c;它們究竟有什么用呢&#xff1f; 比如說&#xff0c;我們先寫一個簡單的日期的類 class Date { public:void Init() {_year 1;_month 1;_day 1;}void Print() {cout << _year << &qu…

Sentinel 分布式系統

Sentinel 是一種分布式系統的流量防衛兵和熔斷器&#xff0c;由阿里巴巴開發并開源。它的主要目標是保護分布式系統中的穩定性和可用性&#xff0c;防止因高并發或異常流量而導致的系統崩潰。下面是 Sentinel 的原理和使用教程的概要&#xff1a; Sentinel 的原理&#xff1a;…

如何去開發一個springboot starter

如何去開發一個springboot starter 我們在平時用 Java 開發的時候&#xff0c;在 pom.xml 文件中引入一個依賴就可以很方便的使用了&#xff0c;但是你們知道這是如何實現的嗎。 現在我們就來解決這一個問題&#xff01; 創建 SpringBoot 項目 首先我們要做的就是把你想要給別…

css3

基礎 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>style</title><!-- link&#xff08;外部樣式&#xff09;和style&#xff08;內部樣式&#xff09;優先級相同&#xff0c;重復寫會覆蓋 --><link re…

面試題-9

1.如何封裝一個組件 1.使用Vue.extend()創建一個組件 2.使用Vue.components()方法注冊組件 3.如果子組件需要數據,可以在props中接收定義 4.子組件修改好數據,要把數據傳遞給父組件&#xff0c;可以用emit()方法 原則: 把功能拆開 盡量讓組件原子化,一個組件做一件事情 …