Difference between revisions of "User talk:Koenich"

From Wiki
Jump to navigation Jump to search
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
= UPDATES =
 
 
2018/07/13:
 
 
-> added a *preamble*
 
 
-> changed structure a little, for more fluid reading and navigation
 
 
-> minor updates to the main text
 
 
-> some TeX and LaTeX trivia and/or comparisons will be added in the future
 
 
 
= Preamble =
 
= Preamble =
  
Here is the place to get everything that is important to get started with ''ConTeXt'' (''mkiv'') and ''Textadept'' on ''MS Windows'' systems.
+
Here is the place to get everything that is important to get started with ''ConTeXt'' on ''MS Windows'' operating system.
  
Note that this page is a ''User talk'', which might differ from usual wiki-entries. This means that there is no absolute truth to be found within this page. Experience might differ heavily from the expected results. Here I, ''Koenich'', will try to add as much info as I could gather on my way of learning, what I like to abbreviate ''CTX'', ConTeXt.
+
Thanks to especially ''Donald Knuth'', ''Hans Hagen'', ''Taco Hoekwater'' and too many other coders and users to mention here!
 
 
(Thanks to especially *''Donald Knuth''*, *''Hans Hagen''* and too many other coders and users to mention right here!)
 
 
 
Hopefully the readers (of which there seem to be a lot; from 0 to over 9000 views within 1.5 years [minus a dozen of my own previews :D]) will get a better understanding of what ConTeXt is, what its advantages and disadvantages are, also compared to other popular software, and how Textadept can be used to get the most out of ConTeXt.
 
 
 
Note though, that in the end this page is meant to be of personal purpose.
 
  
 
= Introduction =
 
= Introduction =
  
[http://wiki.contextgarden.net ConTeXt] is a [http://en.wikipedia.org/wiki/TeX TeX] macro package created and maintained by [http://www.pragma-ade.com Pragma ADE]. The recent version ''mkiv'' is widely extensible using [https://www.lua.org/ Lua].
+
[http://wiki.contextgarden.net ConTeXt] (pronounced '''ConTehht''' as derived from Dutch) is a [http://en.wikipedia.org/wiki/TeX TeX] macro package created and maintained by [http://www.pragma-ade.com Pragma ADE].
 
 
[https://foicica.com/textadept/ Textadept] is a programmable text editor for Linux, Mac OSX and Windows, created and maintained by [https://foicica.com/mitchell/ Mitchell]. It is fully extensible using [https://www.lua.org/ Lua].
 
 
 
= I: Quick setup =
 
  
== I.C: Quick setup ConTeXt ==
+
= Setup ConTeXt =
  
=== I.C Step 1: Install / Update ConTeXt ===
+
== Download & Install ConTeXt ==
  
 
Installation and update of ConTeXt work the same way. If you only want to update ConTeXt, you can go to point 3.
 
Installation and update of ConTeXt work the same way. If you only want to update ConTeXt, you can go to point 3.
  
 
1. Download [http://standalone.contextgarden.net/setup/ ConTeXt].
 
1. Download [http://standalone.contextgarden.net/setup/ ConTeXt].
* Windows x86 / 32 bit users: [http://standalone.contextgarden.net/setup/context-setup-mswin.zip context-setup-mswin.zip]
+
* [https://distribution.contextgarden.net/setup/context-setup-mswin.zip context-setup-mswin.zip]
* Windows x64 / 64 bit users: [http://standalone.contextgarden.net/setup/context-setup-win64.zip context-setup-win64.zip]
 
** Download the x64 / 64 bit version only when you are really sure, that you '''need''' it.
 
  
 
2. Extract the archive to a location of your choice.
 
2. Extract the archive to a location of your choice.
Line 47: Line 23:
 
3. Install / Update ConTeXt
 
3. Install / Update ConTeXt
  
3. Method 1: Write a batch file
+
* Use Windows Explorer to navigate to your ConTeXt directory. In there should be a file called <code>install.bat</code>.
 
+
* Execute by double-clicking on it. A command prompt window should pop up.
Since at this point the installation and update of ConTeXt work the same way, 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 <code>first-setup.bat</code>.
 
* Use Windows Notepad or <code>Right-click</code> -> '''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 <code>update.bat</code>.
 
** '''Note''' that the document ending has to be <code>.bat</code> not <code>.txt</code> 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.
 
** 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.
 
* 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.
 
  
From here you can go to I.C Step 2 directly.
+
Alternatively, from the command prompt:
 
 
3. Method 2: Type the command by hand
 
  
 
* Use Windows Explorer to navigate to your ConTeXt directory.
 
* Use Windows Explorer to navigate to your ConTeXt directory.
Line 70: Line 34:
 
** Enter <code>cmd</code> and press <code>Enter</code>-key.
 
** Enter <code>cmd</code> and press <code>Enter</code>-key.
 
** Now Windows command prompt should pop up with the correct location.
 
** Now Windows command prompt should pop up with the correct location.
* Otherwise you can start your Windows command prompt
+
* Otherwise, you can start your Windows command prompt
 
** by using the key shortcut <code>Windows-key + R</code>, entering <code>cmd</code> and pressing <code>Enter</code>-key.
 
** by using the key shortcut <code>Windows-key + R</code>, entering <code>cmd</code> and pressing <code>Enter</code>-key.
** Alternatively you can use <code>Start</code> -> <code>Programs</code> -> <code>Accessories</code> -> <code>Command Pompt</code>.
+
** Alternatively, you can use <code>Start</code> -> <code>Programs</code> -> <code>Accessories</code> -> <code>Command Pompt</code>.
 
* Some important ''MS DOS'' commands:
 
* Some important ''MS DOS'' commands:
 
** <code>dir</code> list the content of the current directory
 
** <code>dir</code> list the content of the current directory
Line 82: Line 46:
 
* In the end your command prompt should look like this:
 
* In the end your command prompt should look like this:
 
   X:\ConTeXt>_
 
   X:\ConTeXt>_
* If you only want ConTeXt mkiv (highly '''recommended'''), enter the following line and press <code>Enter</code>-key:
 
  first-setup -engine=luatex -modules=all -fonts=all
 
* Wait until the download / update is complete. Afterwards you can close the command prompt by entering <code>exit</code> and pressing <code>Enter</code>-key or by simply closing the window.
 
  
=== I.C Step 2: Add ConTeXt's executables folder to Windows search Path ===
+
== 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.
 
'''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.
Line 126: Line 87:
  
 
* A message with ConTeXt's version number should apear.
 
* 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 make sure that you added the correct location of ConTeXt's executables (context.exe) path to Windows' search path or re-try the operation by starting from Step 2.1.
+
* If a message like '''context' is not recognized as an internal or external command...'' appears, you should make sure that you added the correct location of ConTeXt's executables (context.exe) path to Windows' search path.
 
 
== I.T: Quick setup Textadept ==
 
 
 
=== I.T Step 1: Install Textadept ===
 
 
 
1. [https://foicica.com/textadept/download/textadept_LATEST.win32.zip Download] and extract [https://foicica.com/textadept/ '''Textadept'''] to a folder of your choice.
 
 
 
2. Use <code>textadept.exe</code> from the extracted folder to start Textadept.
 
 
 
=== I.T Step 2: Tweak Textadept's settings ===
 
 
 
'''Note''' that almost all changes to Textadept are saved in the file <code>init.lua</code>. There is two of them, of which you should edit only one:
 
 
 
* One of them is in the extracted Textadept main 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 a file called <code>init.lua</code>. This is 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.
 
 
 
Usually you have to restart Textadept after changing its configuration files. Robert Gieseke created a code though, which you can add to your <code>init.lua</code> to circumvent having to restart Textadept whenever a change is made:
 
 
 
  -- Save and reset Lua state: `F9`
 
  keys['f9'] = function()    -- Mac OSX users might prefer:    keys[OSX and 'mf9' or 'f9']
 
    io.save_file()
 
    reset()
 
  end
 
 
 
Save <code>init.lua</code> and restart Textadept once. After doing so you can add changes to Textadept's configuration files and press <code>F9</code>-key afterwards to save and load the changes without having to restart Textadept.
 
 
 
=== I.T Step 2.1: Bind a PDF build command into Textadept ===
 
 
 
2.1.1. Use Textadept to open your <code>init.lua</code> stored in <code>SYSDRIVE:\users\USER\.textadept\</code>.
 
 
 
2.1.2. Add an execute command for ConTeXt to Textadept's menu:
 
  textadept.run.compile_commands.tex = 'mtxrun --autogenerate --script context --autopdf --purge --synctex=-1 "%f"'
 
* '''Note''' that your ConTeXt executables folder has to be in the Windows search path!
 
 
 
2.1.3. Restart Textadept to reload the modified <code>init.lua</code>.
 
 
 
2.1.4. Open or create a ConTeXt test document:
 
  \starttext
 
    hello world!
 
  \stoptext
 
* You will have to save the file with an appropriate ending first, after that it will be recognized as ConTeXt format file automatically.
 
 
 
2.1.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.
 
 
 
2.1.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.
 
 
 
=== I.T Step 2.2: Lexing (command highlighting & code folding) ===
 
 
 
A lexer is a file that defines command highlighting and code folding keywords. Textadept comes with a ConTeXt lexer. In order to be able to use command highlighting and code folding when writing ConTeXt documents, you have to bind those documents to the lexer. To do so
 
 
 
2.2.1. add the following line to your <code>USER/.textadept/init.lua</code> and save it afterwards:
 
  textadept.file_types.extensions.tex = 'context'
 
* If you plan to use LaTeX and ConTeXt, you might want to use different file extensions for each format. For example <code>*.tex</code> for LaTeX and <code>*.cxd</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.cxd = 'context'
 
* When linking files within ConTeXt documents without adding an extension though, ConTeXt will expect those files to have the ending <code>*.tex</code>, i.e. you will have to work with filenames and extensions when using a format other than <code>*.tex</code>, which on the other hand should not be seen as a disadvantage.
 
 
 
2.2.2. Restart Textadept to reload <code>init.lua</code>.
 
 
 
2.2.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 in either <code>Textadept\themes</code> or <code>USER\.textadept\themes</code>
 
(after you created or downloaded and added them; create the folder as it usually won't be there yet).
 
 
 
* Many ''base16'' themes for Textadept can be found at [https://github.com/rgieseke/textadept-themes Robert Gieseke's GitHub]. You can preview them [https://termux.com/add-on-styling-color-preview.html here] (partially).
 
 
 
* There are more settings which you can look up in Textadept's [https://foicica.com/textadept/manual.html#Themes 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 <code>USER/.textadept/init.lua</code>. Alternatively you can create a new file, e.g. <code>USER/.textadept/mysnippets.lua</code>, add all snippets to that file and load it from within your <code>init.lua</code> with the following line:
 
  require('mysnippets')
 
In Textadept snippets look like this:
 
  snippets.context['TRIGGERKEYWORD'] = 'PASTEDTEXT'
 
 
 
To get an idea how writing snippets (for ConTeXt) works, you can copy and paste the following list to your <code>init.lua</code>:
 
 
 
  -- The first line is mandatory:
 
  snippets['context'] = snippets['context'] or {}
 
  -- Snippets start here:
 
  snippets.context['emph']        = '{\\em %<selected_text>%0}' -- emphasized text/math
 
  snippets.context['ital']        = '{\\it %<selected_text>%0}' -- italic text/math
 
  snippets.context['bold']        = '{\\bf %<selected_text>%0}' -- bold text/math
 
  snippets.context['boldit']      = '{\\bi %<selected_text>%0}' -- bold italic text/math
 
  snippets.context['start']      = '\\start%1\n\t%0\n\\stop%1'
 
  snippets.context['itemize']    = '\\startitemize[packed]\n\t\\startitem\n\t\t%<selected_text>%0\n\t\\stopitem\n\\stopitemize' -- start itemization
 
  snippets.context['item'] = '\\startitem\n\t%<selected_text>%0\n\\stopitem'
 
  snippets.context['enumerate']  = '\\startenumerate\n\t%0\n\\stopenumerate'
 
  snippets.context['chapter']    = '\\startchapter[title={%1},marking{%2}]\n\t%0\n\\stopchapter'
 
  snippets.context['section']    = '\\startsection[title={%1},marking{%2}]\n\t%0\n\\stopsection'
 
  snippets.context['ssection']    = '\\startsubsection[title={%1},marking{%2}]\n\t%0\n\\stopsubsection'
 
  snippets.context['title']      = '\\starttitle[title={%1},marking{%2}]\n\t%0\n\\stoptitle'
 
  snippets.context['subject']    = '\\startsubject[title={%1},marking{%2}]\n\t%0\n\\stopsubject'
 
  snippets.context['ssubject']    = '\\startsubsubject[title={%1},marking{%2}]\n\t%0\n\\stopsubsubject'
 
 
 
* '''Note''' that a backslash <code>\</code> is set by typing a double backslash <code>\\</code>.
 
 
 
* The most important formatting commands are the following:
 
**<code>\n</code> set a line break (new line)
 
**<code>\t</code> set a tabulated
 
**<code>%0</code> set the ''closing'' caret (placeholder) (the cursor will jump here '''last''')
 
**<code>%1</code> set one or multiple input carets (<code>%1</code>, <code>%2</code>, <code>%3</code> and so on; you can also use the same integer multiple times: e.g. <code>\\start%1 ... \\stop%1</code>)
 
**<code>%<selected_text></code> this is where highlighted text will be pasted when enclosing it with a snippet (e.g. <code>{\\bi %<selected_text>%0}</code>)
 
 
 
* After adding snippets, you have to restart Textadept or reset Lua state as described in Step 2.
 
 
 
* You can paste snippets into ConTeXt documents
 
** either by typing the keyword that you defined within <code>snippets.context['KEYWORD']</code> and pressing <code>Tab</code>-key afterwards
 
** or by using <code>Ctrl + K</code> (by default on Windows machines) to choose from the list of snippets. No matter in which order you add them to your <code>init.lua</code>, they will show up sorted alphabetically.
 
* '''Note''' that since this way you bound snippets 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 2.2.
 
 
 
* Read more about snippets in Textadept's [https://foicica.com/textadept/api.html#textadept.snippets manual].
 
 
 
=3rd party projects=
 
 
 
A ConTeXt module for Textadept is being developed at [https://github.com/stephengaito/ta-context-latex 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 also needs additional software to be installed (Textredux, ctags), so that it's almost more comfortable to create own ConTeXt snippets with the ease of Textadept (see above).
+
= Text Editors =
 +
== ''CudaText'' ==
 +
See my article here [[CudaText]].

Latest revision as of 06:52, 10 September 2023

Preamble

Here is the place to get everything that is important to get started with ConTeXt on MS Windows operating system.

Thanks to especially Donald Knuth, Hans Hagen, Taco Hoekwater and too many other coders and users to mention here!

Introduction

ConTeXt (pronounced ConTehht as derived from Dutch) is a TeX macro package created and maintained by Pragma ADE.

Setup ConTeXt

Download & Install ConTeXt

Installation and update of ConTeXt work the same way. If you only want to update ConTeXt, you can go to 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

  • Use Windows Explorer to navigate to your ConTeXt directory. In there should be a file called install.bat.
  • Execute 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.

Alternatively, from the command prompt:

  • 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
    • by using the key shortcut Windows-key + R, entering cmd and pressing Enter-key.
    • Alternatively, you can use Start -> Programs -> Accessories -> Command Pompt.
  • Some important MS DOS commands:
    • dir list the content of the current directory
    • cd DIRECTORY change to directory with name DIRECTORY
    • cd.. change to superior directory
    • cd\ change to drive root
    • X: change to drive X:
    • also possible: cd directory\subdirectory\subsubdir...
  • In the end your command prompt should look like this:
 X:\ConTeXt>_

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.

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:
 X:\ConTeXt\tex\texmf-mswin\bin
  • Win x64 / 64 bit:
 X:\ConTeXt\tex\texmf-win64\bin

8. Save your changes. Usually no restart or re-login is needed after this operation.

Opt 1. 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 make sure that you added the correct location of ConTeXt's executables (context.exe) path to Windows' search path.

Text Editors

CudaText

See my article here CudaText.