Difference between revisions of "Installing ConTeXt LMTX on MacOS"

From Wiki
Jump to navigation Jump to search
m (Decided to add the Standalone category after all.)
Line 87: Line 87:
{{Installation navbox}}
{{Installation navbox}}

Revision as of 22:43, 6 February 2020

Since a few users have encountered difficulties in installing, and updating to, beta releases of ConTeXt LMTX on macOS, below we describe an installation procedure for macOS. For other platforms the procedures are more or less analogous.

Installing LMTX on macOS up to 10.14

As of December 2019, the following instructions work for macOS up to version 10.14 but do not work for macOS 10.15 Catalina, due to the Apple's System Integrity Protection (SIP).

First download context-osx-64.zip. Put the unzipped folder context-osx-64/ wherever you wish—for instance, in your home directory. Thus the path to your future LMTX directory will be ~/context-osx-64/ (from now on, this is what we assume).

Open a Terminal window (Terminal.app is found in /Applications/Utilities/). In the Terminal window type

cd ~/context-osx-64/

Then you should be able to execute the command

sh install.sh

It may happen that macOS will not allow you to execute the above shell command, or the mtxrun script which is called by install.sh. In that case, you should open System Preferences (from the Apple menu) and choose Security & Privacy, then go to the General pane. There you should be able to authorize the shell script, which has been blocked, to be executed. When you issue the command again, macOS will ask you whether you really want to execute it.

After that, if everything goes smoothly, a complete functioning tree of LMTX, complete with dozens of manuals, will be installed in ~/context-osx-64/. Whenever you want to update your installation of LMTX, it is enough to go to that directory in Terminal & run the installation script again:

sh install.sh

Installing LMTX on macOS 10.15 Catalina

First obtain a complete tree of context-osx-64/ that works on macOS 10.14 or previous, from someone you know. You can always contact the ConTeXt mailing list & ask for this from someone (one day there might be a direct distribution of this zip file). If you yourself have access to macOS 10.14 or previous, you can follow the instructions above & create a context-osx-64/ tree, then copy that tree on a USB memory stick & transfer it to your macOS 10.15. In this case, you should wipe the tex/texmf-cache/ folder in the copy intended for macOS 10.15.

Disable the SIP (System Integrity Protection), following the instructions given here, for example. Later, you can restore the SIP, once the installation of LMTX is over.

In a Terminal window, reinstate the Anywhere option in Gatekeeper (visible in Apple menu -> Preferences -> Security & Privacy) by typing:

sudo spctl --master-disable

Later, you can put back the Gatekeeper default by saying

sudo spctl --master-enable

once the installation of LMTX is over.

Restart your Mac and put the folder context-osx-64/ wherever you wish—for instance, in your home directory. Thus the path to your future LMTX directory will be ~/context-osx-64/.

At this point, you may enable SIP and Gatekeeper again.

In order to update to the latest version of LMTX, in a Terminal run:

cd ~/context-osx-64/
sh install.sh

The update should go ahead without any interference from Gatekeeper or SIP, even if you have reverted them to their default settings.

Running LMTX from the Terminal

If you want to run LMTX from the Terminal interface in any directory, you should add the path of your installation to $PATH by adding this to your .bashrc (or another configuration file, depending on your flavor of shell interface):

export PATH=$PATH:~/context-osx-64/bin:~/context-osx-64/tex/texmf-osx-64/bin

Reminder: if you have installed context-osx-64/ elsewhere, please replace the segment ~/context-osx-64/ in the above code with the path to that directory.

In principle, once your PATH has been modified, typing in a Terminal window

which context


context --version

you should get the path to the ConTeXt binary and its version. If this is the case, then you can typeset a file named myfile.tex from the Terminal by typing:

context myfile.tex

It may happen that for some reason not everything goes smoothly & you cannot typeset any document. In that case, try typing in a Terminal window:

which luametatex

in order to see whether ~/context-osx-64/tex/texmf-osx-64/bin/luametatex is present or not. If not, the download is incomplete.

If luametatex is present, in the Terminal type:

luametatex --version

and see whether it says, among other things:

Functionality : level 20191206

(here 20191206 is the date stamp of luametatex; this will change over time, of course). If not, there might be an issue with the files you have downloaded.

If there is no issue, in ~/context-osx-64/tex/, remove the directory texmf-cache/, then in the Terminal run:

mtxrun --generate

After that, in principle, the directory texmf-cache/ should be present again.

If this is the case, in the Terminal window type:

context --make --all

If everything goes nicely, you should be able to see LMTX functioning.

Running LMTX from TeXShop

Alternatively, you could use a TeX editor such as TeXShop. Once TeXShop is installed, go to ~/Library/TeXShop/Engine/, create a new file named ConTeXt LMTX.engine, open it in your preferred text editor, and add the following lines:

export PATH=$PATH:~/context-osx-64/bin:~/context-osx-64/tex/texmf-osx-64/bin
~/context-osx-64/tex/texmf-osx-64/bin/mtxrun --autogenerate --script context --directives="system.showerror" --autopdf "$1" --purgeall

Reminder: if you have installed context-osx-64/ elsewhere, please replace the segment ~/context-osx-64/ in the above code with the path to that directory.)

Save & close the file.

If you want to use LMTX as your default TeX typesetter in TeXShop, go to TeXShop -> Preferences, then under the tab Typesetting, in the Default Command section, choose the radio button "Command listed below", then type ConTeXt LMTX below that.