
在 TeX Live 中,有TEXMFLOCAL
針對管理員和TEXMFHOME
使用者的預定義,但在 MiKTeX 中,預設情況下沒有texmf
安裝本機樹,儘管它很有用,請參閱。本地 texmf 樹的用途。因此我的問題是:
如何texmf
在 MiKTeX 中建立本地樹?
答案1
實際上,您可以建立多個本機 TeXMF 資料夾! MiKTeX 的線上文件上已經有說明,請參閱整合本地添加,在撰寫最近的 MiKTeX 2.9 時(但所包含的圖像來自舊版本,看似 MiKTeX 2.5,並且略有不同,也參見http://docs.miktex.org/2.5/manual/localadditions.html)。名稱是“用戶管理的 TEXMF 目錄”(另請參閱本答案最後的附加說明)。
無論如何,這裡有一個替代描述:
在電腦上的某個位置建立一個資料夾 - 使用重要的例外。它一定不是 MiKTeX 安裝的子資料夾(在舊的 MiKTeX 版本中以這種方式工作,但出於安全原因進行了更改)。路徑中盡可能避免空間,這是潛在的故障風險。當然,為了與 MiKTeX 便攜式一起使用,該資料夾必須與 MiKTeX 安裝位於同一磁碟機上,它將保存為相對路徑。這裡我將使用
c:\localtexmf
.此資料夾必須符合 TDS(請參閱TeX 檔案的目錄結構);如果沒有,MiKTeX 會抱怨。您需要什麼,取決於您要安裝到此目錄中的內容,至少一個
tex\latex
子樹就足夠了。如果你模仿了結構,你就會安全(本身符合 TDS)MiKTEX 樹,但二進位檔案可以直接進入子資料夾c:\localtexmf\bin
。現在,使用 GUI:
在「開始」功能表中,前往 MiKTeX 條目並開啟設定 - 如果您分別充當管理員,當然是「設定(管理員)」。 “MiKTeX 選項”視窗將會開啟。
轉到“根”選項卡。點擊“新增”並選擇
c:\localtexmf\
。如果本地目錄有多個,可以透過「向上」、「向下」按鈕選擇搜尋順序。現在是最重要的部分:轉到“常規”選項卡,然後單擊“刷新 FNDB”(FNDB = 檔案名稱資料庫)。在某些情況下,特別是如果安裝了新字體,也必須按下「更新格式」按鈕。
如果您忘記了這一步,那麼之前的所有步驟都將毫無意義。
否則,使用命令列(因為管理員總是會添加開關
--admin
):執行
initexmf --register-root=c:\localtexmf
,然後執行initexmf --update-fndb
(較短:initexmf -u
)。(在每個步驟中,您都可以添加開關
--verbose
以獲取有關發生情況的更多資訊。)評論:出於相容性原因,還有較舊的開關
--user-roots=<local-texmf-dir>
,根據initexmf --help
註冊用戶根目錄,我假設也在管理模式下,但在http://docs.miktex.org/manual/initexmf.html不再提及,所以我必須猜測。在這種情況下,
bin
創建了二進位檔案的子資料夾,應將其註冊在環境變數中%PATH%
前MiKTeX 自己安裝的二進位子樹,請參閱例如如何在 Windows XP 中管理環境變數或第三方工具,例如環境人或者快速EE。然後需要重新啟動系統才能生效。一個無法解決的問題:由管理員設定的系統範圍的環境變數總是在使用者特定的環境變數之前讀取。然後,作為一個簡單的用戶,您只能編寫和使用包含自己的批次檔%PATH%
。
所有使用者建立的本機 texmf 樹都可以透過從 MiKTeX 根中暫時刪除來停用(請參閱最後的附加註釋)。
也可以看看如何在 MiKTeX (Windows) 上手動安裝軟體包。
為了完整起見,這裡描述如何從 MiKTeX 中刪除本地 TeXMF 樹,例如c:\localtexmf\
:
GUI:
再次前往設定中的「根」標籤(「MiKTeX 選項」對話方塊),選擇目錄c:\localtexmf\
,然後按一下視窗下方的「刪除」。之後,您必須再次刷新 FNDB,或許還需要更新格式檔案。命令列(也在這裡:以管理員身份新增開關
--admin
):
執行initexmf --unregister-root=c:\localtexmf
,然後執行initexmf --update-fndb
.如果您已經卸載了字體,請另外執行initexmf --mkmaps
.--verbose
也可以添加開關。如果不再需要該子資料夾,則必須清理
bin
環境變數。%PATH%
c:\localtexmf\
然後可以安全地刪除資料夾樹。
附加說明
首先提示:在命令提示字元中,您可以輸入echo %Variable%
例如。這樣您就可以看到變數在您的系統上擴展到哪個值。%Variable%
%Userprofile%
正是這句話“在 MiKTeX 中,預設情況下沒有安裝本地 texmf 樹” 問題中的內容不正確。 MiKTeX 在管理模式下%UserProfile%
和管理模式下也將自己添加了幾棵樹%AllUsersProfile%
(在下文中,MiKTeX 面額排在第一位):
- “用戶配置”:
%AppData%\MiKTeX\<version>\
- 「UserData」:(
%LocalAppData%\MiKTeX\<version>\
自 Windows Vista 起)或%UserProfile%\<Local Settings>\<Application Data>\MiKTeX\<version>\
(直到 Windows XP,字串<Local Settings>
和<Application Data>
取決於語言) - 僅在管理模式下使用「CommonConfig」和「CommonData」:(
%AllUsersProfile%\MiKTeX\<version>\
自 Windows Vista 起)或%AllUsersProfile%\<Application Data>\MiKTeX\<version>\
(直到 Windows XP,該字串<Application Data>
取決於語言)
您可以使用「Roots」標籤下的「MiKTeX Options」視窗中的 GUI 或透過執行 命令列介面來查看實際路徑initexmf --report
。
所有這些本地樹的缺點:它們只能在安裝時更改,請參閱。更改 MiKTeX 中自動安裝包的位置,並且無法停用它們(透過從 MiKTeX 根中暫時刪除)。
有關更多信息,請參閱MiKTeX 管理模式和使用者模式的區別。
答案2
這是較新版本的 MikTeX 中的指令。引用的部分不變另一個答案。
- 在電腦上的某個位置建立一個資料夾 - 使用重要的例外。它一定不是 MiKTeX 安裝的子資料夾(在舊的 MiKTeX 版本中以這種方式工作,但出於安全原因進行了更改)。路徑中盡可能避免空間,這是潛在的故障風險。當然,為了與 MiKTeX 便攜式一起使用,該資料夾必須與 MiKTeX 安裝位於同一磁碟機上,它將保存為相對路徑。這裡我將使用
c:\localtexmf
.
哪個是保存 .sty 檔案的最佳目錄? 包含一些有關放置資料夾的位置的建議。
此資料夾必須符合 TDS(請參閱TeX 檔案的目錄結構);如果沒有,MiKTeX 會抱怨。您需要什麼,取決於您要安裝到此目錄中的內容,至少一個
tex\latex
子樹就足夠了。如果你模仿了結構,你就會安全(本身符合 TDS)MiKTEX 樹,但二進位檔案可以直接進入子資料夾c:\localtexmf\bin
。
- 現在,使用 GUI:
- 前往開始 → MiKTeX → MiKTeX 控制台。
- 按一下「設定」(在左側窗格中)→「目錄」標籤→「+」按鈕→選擇路徑。
- 「任務」(選單項目)→「刷新檔案名稱資料庫」。
否則,使用命令列(因為管理員總是會添加開關
--admin
):執行
initexmf --register-root=c:\localtexmf
,然後執行initexmf --update-fndb
(較短:initexmf -u
)。
注意initexmf --register-root=<path>
,<path>
必須是絕對路徑。所以它必須從c:\
什麼開始。
(在每個步驟中,您都可以添加開關
--verbose
以獲取有關發生情況的更多資訊。)