Difference between revisions of "Textadept"

From Wiki
Jump to navigation Jump to search
m
Line 11: Line 11:
 
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 only literally a hand full of ConTeXt snippets. It's almost more comfortable to create own ConTeXt snippets with the ease of Textadept (see below).
 
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 only literally a hand full of ConTeXt snippets. It's almost more comfortable to create own ConTeXt snippets with the ease of Textadept (see below).
  
=Installation and setup for ConTeXt=
+
= How to ConTeXt with Textadept (updated 2017/03) =
  
See [[User_talk:Koenich]] for a work in progress. The only things you need for it are
+
== Step 1: Install '''ConTeXt''' ==
* ConTeXt minimals
+
 
* Textadept
+
work in progress
 +
 
 +
== Step 2: Add ConTeXt's executables folder to Windows search PATH ==
 +
 
 +
work in progress
 +
 
 +
== Step 3: Install '''Textadept''' ==
 +
 
 +
# [https://foicica.com/textadept/download/textadept_LATEST.win32.zip Download] and extract [https://foicica.com/textadept/ '''Textadept'''] to a folder of your choice.
 +
# Use <code>textadept.exe</code> from the extracted folder to start '''Textadept'''.
 +
 
 +
== Step 4: Tweak '''Textadept''''s settings ==
 +
 
 +
1. Use your freshly installed Textadept to open Textadept's main configuration file called <code>init.lua</code>.
 +
* After extraction of the downloaded Textadept archive there is a file called <code>init.lua</code> 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  <code>SYSDRIVE:\users\USERNAME\.textadept</code> gets created. It also contains the file called <code>init.lua</code>. 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 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 <code>/</code> instead of backslash <code>\</code> in the file path, since Lua (same as ConTeXt) interprets a <code>\</code> as the beginning of a command, while for Windows is doesn't make a difference.
 +
3. Restart Textadept to reload the modified <code>init.lua</code>.
 +
 
 +
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 <code>init.lua</code>. 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. [https://www.sumatrapdfreader.org/free-pdf-reader.html '''Sumatra PDF'''] is highly recommended for this.
 +
 
 +
== Optional: Additional '''Textadept''' tweaks ==
 +
 
 +
=== Lexing ===
 +
 
 +
Textadept comes with an own ConTeXt lexer. A lexer is a file that defines command highlighting. So it's a good idea to bind <code>*.tex</code> and/or <code>*.ctx</code> files to Textadept's ConTeXt lexer. To do so:
 +
 
 +
1. Add the following lines to your <code>USER/.textadept/init.lua</code>:
 +
  textadept.file_types.extensions.tex = 'context'
 +
* If you plan to use LaTeX and ConTeXt, you should use different file extensions. For example <code>*.tex</code> for LaTeX and <code>*.ctx</code> for ConTeXt documents. In that case you only have to bind your new ConTeXt extension to Textadept's ConTeXt lexer, since <code>.tex</code> files are automatically recognized as LaTeX documents:
 +
  textadept.file_types.extensions.ctx = 'context'
 +
2. Restart Textadept to reload <code>init.lua</code>
 +
 
 +
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.
 +
 
 +
=== 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 <code>Textadept\themes</code> or you can download and add new themes to <code>USER\.textadept\themes</code>
 +
(create the folder if it's not there yet).
 +
There are more settings which you can look up in Textadept's [https://foicica.com/textadept/manual.html#Themes online manual].
 +
 
 +
=== Snippets ===
 +
Snippets are predefined code blocks. You add them, again, to your <code>USER/.textadept/init.lua</code>. Snippets in Textadept look like this:
 +
 
 +
  snippets['context'] = snippets['context'] or {}
 +
  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 as you would type it in ConTeXt: typing a double backslash <code>\\</code> prints a single backslash <code>\</code>.
 +
 
 +
* The most important formatting commands are the following:
 +
**<code>%0</code> creates a primary or a single input caret
 +
**<code>%1</code> creates a secondary input caret
 +
**<code>%n</code> creates a new line
 +
**<code>%t</code> creates a tab
 +
 
 +
* After you added snippets, you have to restart Textadept first.
 +
* Then you can use <code>Alt + K</code> (by default on Windows machines) to choose from the list of snippets, when a ConTeXt documents is open.

Revision as of 22:08, 2 March 2017

< Text Editors

Introduction

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

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 only literally a hand full of ConTeXt snippets. It's almost more comfortable to create own ConTeXt snippets with the ease of Textadept (see below).

How to ConTeXt with Textadept (updated 2017/03)

Step 1: Install ConTeXt

work in progress

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

work in progress

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

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 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 is doesn't make a 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.

Optional: Additional Textadept tweaks

Lexing

Textadept comes with an own ConTeXt lexer. A lexer is a file that defines command highlighting. So it's a good idea to bind *.tex and/or *.ctx files to Textadept's ConTeXt lexer. To do so:

1. Add the following lines to your USER/.textadept/init.lua:

 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 *.ctx 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.ctx = '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.

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 online manual.

Snippets

Snippets are predefined code blocks. You add them, again, to your USER/.textadept/init.lua. Snippets in Textadept look like this:

 snippets['context'] = snippets['context'] or {}
 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 as you would type it in ConTeXt: typing a double backslash \\ prints a single backslash \.
  • The most important formatting commands are the following:
    • %0 creates a primary or a single input caret
    • %1 creates a secondary input caret
    • %n creates a new line
    • %t creates a tab
  • After you added snippets, you have to restart Textadept first.
  • Then you can use Alt + K (by default on Windows machines) to choose from the list of snippets, when a ConTeXt documents is open.