Как я могу получить доступ к командам LaTeX из терминала?

Я только что установил MacTeX на Yosemite, и он установил все вusr/local/texlive

Однако, если я нахожусь в терминале и пытаюсь скомпилировать файл LaTeX с помощью pdflatex foo.tex, он не может найти инструменты LaTeX. Дальнейшее whereis pdflatexне возвращает никаких результатов.

Если я укажу весь путь pdflatex(например, /usr/local/texlive/2014/.../bin/pdflatex), все будет работать хорошо.

Как я могу заставить инструменты LaTeX работать с терминала, не указывая весь путь?

Ответы (2)

Чтобы двоичные файлы были доступны из командной строки, их расположение должно быть частью PATHпеременной среды. Если вы сделаете следующее

PATH=$PATH:/usr/local/texlive/2014/.../bin

(указав правильный путь), вы сможете вызывать pdflatexнапрямую (а также любую другую программу в том же каталоге. Чтобы сделать изменение постоянным, exportкоманда в файле, полученном из оболочки, например .bash_loginили .profile(при условии, что вы используете bash). Либо используйте редактор, либо запустите

echo "export PATH=$PATH:/usr/local/texlive/2014/.../bin" >> ~/.bash_login

Что добавит вывод команды echoв файл и создаст его, если он не существует.

Оболочка ищет каталоги в том PATHпорядке, в котором они перечислены, поэтому обычно рекомендуется всегда добавлять к , PATHесли вы точно не знаете, что находится в добавленном каталоге. Он может содержать другие исполняемые файлы с тем же именем, что и у других программ, которые уже находятся в PATH. Их затенение иногда может привести к сюрпризам.

Чтобы инструменты LaTeX запускались из командной строки, вам нужно добавить путь к вашему pdflatexисполняемому пути поиска. Для этого вам нужно отредактировать .bash_profileфайл в вашем домашнем каталоге. Откройте файл в обычном текстовом редакторе (например, vi, emacs, bbedit) и добавьте эту строку внизу:

PATH=/usr/local/texlive/2014/.../bin:$PATH

где /usr/local/texlive/2014/.../binпуть, который вы ввели в своем примере, чтобы запустить pdflatex.


В стороне

whereisвозвращает результаты только из установленных в системе исполняемых файлов. whichсмотрит на весь путь. например на моей машине:

~ 503 🎵  whereis ruby
/usr/bin/ruby
~ 504 🎵  which ruby
/Users/steve/.rvm/rubies/ruby-2.1.2/bin/ruby