Textadept

From Wiki
Revision as of 14:00, 8 March 2017 by Koenich (talk | contribs)
Jump to navigation Jump to search

< Text Editors

Introduction

Textadept is a programmable text editor for Linux, Mac OSX and Windows. It is fully extensible using Lua.


How to ConTeXt with Textadept (MS Windows)

(updated 2017/03)

Step 1: Install / Update ConTeXt

Installation and update of ConTeXt works the same. If you only want to update ConTeXt you can start directly from point 3.

1. Download ConTeXt.

2. Extract the archive to a location of your choice.

  • You might want to change the name of the extracted directory to a shorter one as it will be the final location for ConTeXt.


3. Install / Update ConTeXt


3. Method 1: Write a batch file

Since at this point the installation and update of ConTeXt work the same, the most effective solution is to create a batch file. To do so

  • use Windows Explorer to navigate to your ConTeXt directory. In there should be a file called first-setup.bat.
  • Use Windows Notepad or Right-click -> New -> Textfile to create such.
  • If you only want ConTeXt mkiv (highly recommended), add the following line to the new and empty textfile:
 first-setup -engine=luatex -modules=all
  • Save the file as a batch-file and name it something like update.bat.
    • Note that the document ending has to be .bat not .txt or anything else. You might have to rename the file ending by hand.
  • Execute the batch file you just created by double-clicking on it. A command prompt window should pop up.
    • If it appears for only a few seconds, chances are high that the download server is down. In that case you might want to re-try the procedure at some other time.
  • Wait for the download / update to finish. After it is done, the command window should disappear by itself.
    • ConTeXt's folder's size should be around 380 - 400 MB when everything worked fine.


3. Method 2: Type the command by hand

  • Use Windows Explorer to navigate to your ConTeXt directory.
    • Click into the upper white field where the current location is displayed.
    • Enter cmd and press Enter-key.
    • Now Windows command prompt should pop up with the correct location.
  • Otherwise you can start your Windows command prompt like this:
    • by using the key shortcut Windows-key + R, entering cmd and pressing Enter-key.
    • Alternatively you can use Start -> Programs -> Accessories -> Command Pompt.
  • Some DOS commands you might need:
    • dir list the content of the current directory
    • cd DIRECTORY change to directory with name DIRECTORY
    • cd.. change to superior directory
    • cd\ change to root drive
    • X: change to drive X:
    • also possible: cd directory\subdirectory\subsubdir...
  • In the end your command prompt should look like this:
 X:\ConTeXt>_
  • If you only want ConTeXt mkiv (highly recommended), enter the following line and press Enter-key:
 first-setup -engine=luatex -modules=all
  • Wait until the download / update is complete. Afterwards you can close the command prompt by entering exit and pressing Enter-key or by simply closing the window.

Step 2: Add ConTeXt's executables folder to Windows search Path

Note: you will need admin rights for this. On public machines for example you most probably won't be able to add ConTeXt to that machine's path. In that case skip this step and go to Step 3 respectively Step 4.1 directly.

1. Open Windows' System dialog

  • either by Right-clicking on This PC / My Computer on your Desktop and then clicking on Properties
  • or by clicking Start -> Settings -> About -> System Info
  • or on older Windows Machines by going to Control Panel -> System.

2. Click on Advanced System Settings ("System Properties").

3. Click on Advanced-Tab.

4. Click on Environment Variables....

5. Choose where to add ConTeXt's executables folder to:

  • Either to User variables for USER for the current user only
  • or to System variables for all users.

6. Double-click on the respective variable called Path.

7. Add your ConTeXt executables to Windows path.

  • Note that the position, to where you add the location is sorted by importancy. The most important directories will be searched first. This might be taken into account when using ConTeXt together with MiKTeX for example. It's safest to place ConTeXt's path at the very beginning.
  • In User Path variable you might need to add the location and seperate it from the existing ones by using a semikolon (;).
  • In System Path variable you probably only have to add a new line.

The location should look like this:

  • Win x86 / 32 bit:
 D:\CTX\tex\texmf-mswin\bin
  • Win x64 / 64 bit:
 D:\CTX\tex\texmf-win64\bin

8. Save your changes. Usually no restart or re-login is needed after this operation, but to make sure, that the folder was added, you should restart your machine.

Optional: You can test whether it worked by starting your Command prompt and entering the following line, while being in a directory other than the one you just added.

 context -version
  • A message with ConTeXt's version number should apear.
  • If a message like 'context' is not recognized as an internal or external command... appears, you should restart your machine, make sure that you added the correct location or re-try the operation by starting from Step 2.1.

Step 3: Install Textadept

1. Download and extract Textadept to a folder of your choice.

2. Use textadept.exe from the extracted folder to start Textadept.

Step 4: Tweak Textadept's settings

Step 4.1: Bind a PDF build command into Textadept

1. Use your freshly installed Textadept to open Textadept's main configuration file called init.lua.

  • After extraction of the downloaded Textadept archive there is a file called init.lua in the main program folder. It is not recommended to edit this file as your changes will be lost when you update Textadept. Instead:
  • When you start Textadept for the first time a new folder SYSDRIVE:\users\USERNAME\.textadept gets created. It also contains the file called init.lua. It's the file and location where you should save all your Textadept settings. This way you can make a copy and use it on several computers. When you open it for the first time it should be empty.

2. Add an execute command for ConTeXt to Textadept's menu:

  • If your ConTeXt executables folder is already in the Windows search PATH:
 textadept.run.compile_commands.tex = 'mtxrun --autogenerate --script context --autopdf --purge --synctex=-1 "%f"'
  • If for some reason you can't add the folder to PATH, for example on public machines, you have to add the full path to your ConTeXt executables. For example:
 textadept.run.compile_commands.tex = 'C:/ctx/tex/texmf-mswin/bin/mtxrun --autogenerate --script context --autopdf --purge --synctex=-1 "%f"'
  • Note that you have to use slash / instead of backslash \ in the file path, since Lua (same as ConTeXt) interprets a \ as the beginning of a command, while for Windows it doesn't make any difference.

3. Restart Textadept to reload the modified init.lua.

4. Open or create a ConTeXt test document:

 \starttext
   hello world!
 \stoptext

5. Use Textadept's Tools -> Compile to build a PDF with the options added to init.lua. A message buffer with compilation status will open in a seperate tab.

6. When you have a popular PDF reader installed already, it should pop up at the end of the process and show the created PDF output. Sumatra PDF is highly recommended for this.

Step 4.2: Lexing (command highlighting & code folding)

A lexer is a file that defines command highlighting and code folding keywords. Since Textadept comes with an own ConTeXt lexer, it is a good idea to bind *.tex files to Textadept's ConTeXt lexer, as otherwise you won't benefit from the mentioned features when writing ConTeXt documents. So

1. add the following line to your USER/.textadept/init.lua and save it afterwards:

 textadept.file_types.extensions.tex = 'context'
  • If you plan to use LaTeX and ConTeXt, you should use different file extensions. For example *.tex for LaTeX and *.cxd for ConTeXt documents. In that case you only have to bind your new ConTeXt extension to Textadept's ConTeXt lexer, since .tex files are automatically recognized as LaTeX documents:
 textadept.file_types.extensions.cxd = 'context'

2. Restart Textadept to reload init.lua.

3. Open a ConTeXt document and check Textadept's status bar in the lower right corner. It should say context. If it says latex make sure it really is a ConTeXt file or repeat the procedure.

Optional: Additional Textadept tweaks

Themes & editor font changes

You can change the theme, font and font size of Textadept with the following line

 ui.set_theme('dark', {font = 'Monospace', fontsize = 10})

in which the expression dark is the filename of the theme located either in Textadept\themes or you can download and add new themes to USER\.textadept\themes (create the folder if it's not there yet).

  • There are more settings which you can look up in Textadept's manual.

Snippets

Snippets are predefined code or text blocks. Using snippets can save a lot of time as you won't have to retype often used commands and text passages. You add snippets to your USER/.textadept/init.lua. In Textadept they look like this:

 -- The first line is mandatory:
 snippets['context'] = snippets['context'] or {}
 -- Snippets start here:
 snippets.context['emph']        = '{\\em %0}'
 snippets.context['bold']        = '{\\bf %0}'
 snippets.context['start']       = '\\start%1\n%0\n\\stop%1'
 snippets.context['itemize']     = '\\startitemize\n\t%0\n\\stopitemize'
 snippets.context['item'] 	 = '\\startitem\n\t%0\n\\stopitem'
 snippets.context['enumerate']   = '\\startenumerate\n\t%0\n\\stopenumerate'
 snippets.context['chapter']     = '\\startchapter[title={%1},marking{%1}]\n%0\n\\stopchapter'
 snippets.context['section']     = '\\startsection[title={%1},marking{%1}]\n%0\n\\stopsection'
 snippets.context['ssection']    = '\\startsubsection[title={%1},marking{%1}]\n%0\n\\stopsubsection'
 snippets.context['title']       = '\\starttitle[title={%1},marking{%1}]\n%0\n\\stoptitle'
 snippets.context['subject']     = '\\startsubject[title={%1},marking{%1}]\n%0\n\\stopsubject'
 snippets.context['ssubject']    = '\\startsubsubject[title={%1},marking{%1}]\n%0\n\\stopsubsubject'
  • Note that a backslash \ is created by typing a double backslash \\.
  • The most important formatting commands are the following:
    • %0 creates a primary input caret (the cursor will jump here first)
    • %1 creates one or multiple secondary input carets
    • %n creates a new line
    • %t creates a tab
  • After adding snippets, you have to restart Textadept first.
  • You can paste snippets into ConTeXt documents
    • either by typing the keyword that you defined within snippets.context['KEYWORD'] and pressing Tab-key afterwards
    • or by using Ctrl + K (by default on Windows machines) to choose from the list of snippets. No matter in which order you add them to your init.lua, they will show up sorted alphabetically.
  • Note that since you added snippets.context, i.e. to Textadept's ConTeXt lexer, Textadept's status bar in the lower right corner has to say context, otherwise use a ConTeXt document or see Step 4.2.
  • Read more about snippets in Textadept's manual.


3rd party projects

A ConTeXt module for textadept is being developed at ta-context-latex.

Note though, that if you plan to use Textadept without LaTeX with ConTeXt mkiv only (recommended), then you might not need the package mentioned above as it comes with literally only a hand full of ConTeXt snippets. It's almost more comfortable to create own ConTeXt snippets with the ease of Textadept (see above).