如何在 MacOS 中更改我自己的 .sty 文件的目录?

如何在 MacOS 中更改我自己的 .sty 文件的目录?

现在,我将自己的包保存在显示的“标准”目录中。

在此处输入图片描述

我可以使用一个简单的\usepackage{}命令在 MacTeX 中使用这个包。

我想在 iCloud 中备份我的样式,而不必一直复制。所以我尝试创建一个别名,但不起作用。有没有办法更改此目录?

答案1

MacOS 别名与符号链接不太一样,因此如果您希望将本地texmf文件夹放在其他位置,则需要使用符号链接进行链接。因此,首先将现有texmf文件夹移动到 iCloud 同步的某个文件夹,例如您的主Documents文件夹。

然后在终端中创建一个符号链接:

ln -s ~/Documents/texmf ~/Library/texmf

(假设 iCloud 同步您的Documents文件夹。)

现在您只需使用 iCloudtexmf文件夹,它将始终被看到。

答案2

我在终端(bashshell)中做了以下测试

cd
ln -s ~/Library/Mobile\ Documents/com~apple~CloudDocs iCloudFolder
TEXMFHOME=~/iCloudFolder/texmf pdflatex test

(这暂时覆盖了内部变量TEXMFHOME)并得到

This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2018-04-01> patch level 5
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo))
(/Users/enrico2013/iCloudFolder/texmf/tex/latex/test.sty
FOUND
) (./test.aux) [1{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdf
tex.map}] (./test.aux) )</usr/local/texlive/2018/texmf-dist/fonts/type1/public/
amsfonts/cm/cmr10.pfb>
Output written on test.pdf (1 page, 8685 bytes).
Transcript written on test.log.

在我的控制台上。

该文件test.tex包含

\documentclass{article}
\usepackage{test}
\begin{document}
x
\end{document}

texmf/tex/latexiCloud Drive 中的文件夹test.sty只包含

\typeout{FOUND}

如您所见,输出符合预期。

现在只需将顶层texmf.cnf文件/usr/local/texlive/2018

% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, not a copy of the whole thing!
%
TEXMFHOME = ~/Library/texmf
TEXMFVAR = ~/Library/texlive/2018/texmf-var
TEXMFCONFIG = ~/Library/texlive/2018/texmf-config

具有

TEXMFHOME = ~/iCloudFolder/texmf

然后复制texmf~/LibraryiCloud 云盘。

请注意,这对您与 iCloud 同步的内容没有任何假设。

答案3

您可以\makeatletter\def\input@path{{path/to/styfiles/}}\makeatother在 usepackage 之前执行此操作,但在之后执行!请注意路径以 结尾的\documentclass双重和!{{}}/

例如如果你有一个名为stydir/包含的目录mypack.sty,你可以执行以下操作:

\documentclass{article}
\makeatletter\def\input@path{{stydir/}}\makeatother
\usepackage{mypack}
\begin{document}
Hello
\end{document}

相关内容