hohei’s diary

備忘録?

*.styをクラウドサービスで共有する(macOS)

はじめに

tex文書作成で野良 *.styを読み込みたいときは,コンパイルしたい *.texと同じディレクトリに *.styを置くのが手っ取り早い方法です。 しかし,これでは*.styの場所がバラバラになってしまうので纏めておきたいです。 さらに,まとめた *.styをDropboxなどのクラウドサービスで,複数のPC・macで共有できると便利です。

数年前に一度設定をしたのですが,思い出せなくて手間取ったので,今度は忘れないように文字に残しておきます。

けっきょくは,GUIのアプリケーションに環境変数を渡すということをやるらしいのですが, OS X 10.9(Mavericks)以前と以後では,設定方法が違うので注意してください。

自分の環境

Mac mini (M1, 2020),macOS 12.2.1 (Monterey),emacs 26.3

emacsIDEのようにして使っていますが,TeXShopなどでも同じだと思います。 デフォルトシェルをbashにしているので,違う人は同じようにできないかもしれません。 intel Macでも同じように設定ができています。

やること

/Users/myname/.bash_profile の適当な場所に,*.styの場所を書いた一文を追加します。 Dropboxなどで共有すると,すべてのPC・macで使えて便利です。

# *.sty の場所
export TEXINPUTS=/Users/myname/Dropbox/tex/sty//:


/Users/myname/.osx-env-sync.sh を作成します。名前は適当でいいです。

grep export $HOME/.bash_profile | while IFS=' =' read ignoreexport envvar ignorevalue; do
  launchctl setenv ${envvar} ${!envvar}
done


/Users/myname/Library/LaunchAgents/osx-env-sync.plist を作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <!-- ↓ここ↓ -->
  <string>osx-env-sync</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-l</string>
    <string>-c</string>
    <!-- ↓ここ↓ -->
    <string>
      $HOME/.osx-env-sync.sh
    </string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

最後に

OSの再起動か再ログインをすれば *.styを読み込んでくれるはずです。 うまくいかない人は,ファイルの実行権限などを確認してみてください。

参考文献

参考というか,丸パクリですね。 racooma.com