Difference between revisions of "Installing ConTeXt LMTX on MacOS"

From Wiki
Jump to navigation Jump to search
(→‎Installing LMTX on macOS 10.15 Catalina: delete complicated workaround for apple quarantine)
m (remove unnecessary 10.15 stuff)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Since a few users have encountered difficulties in installing, and updating to, beta releases of [[Installation|ConTeXt LMTX]] on macOS, below we describe an installation procedure for macOS. For other platforms the procedures are more or less analogous.
 
Since a few users have encountered difficulties in installing, and updating to, beta releases of [[Installation|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 ==
+
== Installing LMTX on MacOS ==
 
 
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 [http://lmtx.pragma-ade.nl/install-lmtx/context-osx-64.zip context-osx-64.zip]. Put the unzipped folder {{code|context-osx-64/}} wherever you wish—for instance, in your home directory. Thus the path to your future LMTX directory will be {{code|'''~/context-osx-64/'''}} (from now on, this is what we assume).
 
First download [http://lmtx.pragma-ade.nl/install-lmtx/context-osx-64.zip context-osx-64.zip]. Put the unzipped folder {{code|context-osx-64/}} wherever you wish—for instance, in your home directory. Thus the path to your future LMTX directory will be {{code|'''~/context-osx-64/'''}} (from now on, this is what we assume).
Line 11: Line 9:
 
Then you should be able to execute the command
 
Then you should be able to execute the command
 
  sh install.sh
 
  sh install.sh
 
It may happen that macOS will not allow you to execute the above shell command, or the {{code|mtxrun}} script which is called by {{code|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 {{code|'''~/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:
 
After that, if everything goes smoothly, a complete functioning tree of LMTX, complete with dozens of manuals, will be installed in {{code|'''~/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
 
  sh install.sh
 
== Installing LMTX on macOS 10.15 Catalina ==
 
 
Recent versions of MacOS prevent <code>mtxrun</code> from running because it is not a signed executable. You have at least two options to bypass such restrictions:
 
 
* execute <code>xattr -d com.apple.quarantine context-osx-64/bin/mtxrun</code>, or
 
* (not recommended) go to System Preferences > Security & Privacy > Privacy tab > Developer Tools, and allow Terminal to run software that does not meet the system's security policy.
 
  
 
== Running LMTX from the Terminal ==
 
== 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 {{code|.bashrc}} (or another configuration file, depending on your flavor of shell interface):
+
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 {{code|.bashrc}} (10.14 and earlier) or {{code|.zshenv}} (10.15) (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
+
  export PATH=$PATH:'''~/context-osx-64/'''tex/texmf-osx-64/bin
  
 
''Reminder: if you have installed {{code|context-osx-64/}} elsewhere, please replace the segment {{code|'''~/context-osx-64/'''}} in the above code with the path to that directory.''
 
''Reminder: if you have installed {{code|context-osx-64/}} elsewhere, please replace the segment {{code|'''~/context-osx-64/'''}} in the above code with the path to that directory.''
Line 62: Line 51:
 
Alternatively, you could use a TeX editor such as [https://pages.uoregon.edu/koch/texshop/obtaining.html TeXShop]. Once TeXShop is installed, go to {{code|~/Library/TeXShop/Engine/}}, create a new file named {{code|ConTeXt LMTX.engine}}, open it in your preferred text editor, and add the following lines:
 
Alternatively, you could use a TeX editor such as [https://pages.uoregon.edu/koch/texshop/obtaining.html TeXShop]. Once TeXShop is installed, go to {{code|~/Library/TeXShop/Engine/}}, create a new file named {{code|ConTeXt LMTX.engine}}, open it in your preferred text editor, and add the following lines:
 
  #!/bin/bash
 
  #!/bin/bash
  export PATH=$PATH:'''~/context-osx-64/'''bin:'''~/context-osx-64/'''tex/texmf-osx-64/bin
+
  export PATH=$PATH:'''~/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
 
  '''~/context-osx-64/'''tex/texmf-osx-64/bin/mtxrun --autogenerate --script context --directives="system.showerror" --autopdf "$1" --purgeall
  

Latest revision as of 09:51, 7 July 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

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

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

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 (10.14 and earlier) or .zshenv (10.15) (or another configuration file, depending on your flavor of shell interface):

export PATH=$PATH:~/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

or

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:

#!/bin/bash
export PATH=$PATH:~/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.