Changes

Jump to navigation Jump to search
957 bytes removed ,  13:24, 9 August 2020
m
Text replacement - "<cmd>" to "{{cmd|"
&nbsp== Introducing Mark IV == Mark IV is the name of the [[LuaTeX]]-aware part of ConTeXt;that is, when you use ConTeXt over the LuaTeX engine instead of PDFTeX or XeTeX. You run it with  context filename There are fundamental differences between Mark IV and Mark II that you should be aware of. Many parts of ConTeXt have been redesigned from scratch making extensive use of the Lua programming language. And that is besides the heavy use of LuaTeX-only features in MkIV. As a result, there are a few intentional incompatibilities between the two ConTeXt versions. See [[MkIV Differences]] for these details. The first public beta has been released on the 6th of August, 2007. Currently the easiest way to try it out is to install [[ConTeXt Standalone]]. It takes advantage of the amazing capabilities of LuaTeX and opens up a whole new world of possibilities, in particular with fonts.
<center><font color=In the distribution the MkIV files have suffix '#663366mkiv' size=. There are also files with suffix '+3mkvi'><strong> Happy birthday Mand more will follow. The most significant difference is that these files use a different (and still somewhat experimental) syntax.! </strong></font></center>&nbsp;
<div class='floatright'>[http://live.contextgarden.net/.hahaha/MKIV.avi <context>\starttext\externalfigure[/opt/local/texmf/tex/context/sample/.hahaha/MKIV.png]\stoptext</context>]<font size='+1'><strong>''Accelerate to = Mark IV!''</strong></font></div>Today is the birth date of Mark IV, the coming of which we have been longing for since many years.VI ===
Life! Health! Prosperity!Mark VI is ''identical to Mark IV'' in every respect, except that when you define a new macro you can give parameters names instead of numbers. This make programming a great deal more pleasant. For example, instead of
<texcode>\def\colortext[#1]#2% {\color[#1]{#2}}</texcode> you can write <texcode>\def\colortext[#color]#text% {\color[#color]{#text}}</texcode> To use Mark VI, add the comment {{code|1=% macros= Introducing mkvi}} as the first line of your file, or save the file with a {{code|.mkvi}} extension. == Installation and maintenance == The Mark IV code needs to be configured before it is usable. [[Running Mark IV|This page]] explains how to do that.  == Troubleshooting == The environment variable TEXINPUTS has to be empty or unset. If not, you can get errors about "file/module/whatever not found".
Mark IV TEXINPUTS can *always* be a problem and really should not be used at all any more. It is a historical environment variable from the name of the [[LuaTeX]]-aware part of ConTeXt; that isnineties, when you use ConTeXt over the LuaTeX engine instead of PDFTeX or XeTeX. You run and it with <code>texexec --lua</code>overrules just about every path in a modern texmf tree.
The first public beta has been released on the 6th of AugustIf you need something special, 2007 and is readily available on [http://live.contextgarden.net/ ConTeXt Live]. It takes advantage of the amazing capabilities of LuaTeX and opens up a whole new world of possibilities, in particular with fontsuse TEXMFLOCAL or TEXMFPROJECT instead.
== Sample code ==
Here are some examples of cool stuff you can do with Mark IV ([http://live.contextgarden.net/ test it!]). 
=== Lua core ===
</texcode>
Note that the above works with any flavour of LuaTeX; nothing is actually ConTeXt-specific (except for <{{cmd>|ctxlua</cmd> }} and <{{cmd>|startlua</cmd>}}/<{{cmd>|stoplua</cmd>}}).
=== Fonts and typescripts ===
==== Good ol' typescripts ==== Of course, Mark IV allows you typescripts as you've always done; for example: <texcode>\usetypescriptThis is detailed in [palatino][texnansiFonts in LuaTeX]\setupbodyfont[palatino,12pt]effe fietsen 2: \input tufte $\sqrt{2}$ \eogonek \sc effe fietsen 2: \input tufte $\sqrt{2}$ \eogonek</texcode> That's as simple as using a traditional ConTeXt typescript!.
But ... how is it any different, then? Well, the difference is that in Mark IV, we can use an Opentype font directly, so that what is done here: when we want to use Palatino, the [[TeX Gyre]] equivalent (“Pagella”) is called and we can use its Opentype “features”; read on.=== More sample code ===
==== Opentype features ==== A “feature”, in the Opentype jargon, is a set of rules describing changes in the appearance of the text. Hmm, that's not very precise. Let's show some Other examples. First of all, you have to know that features Lua(TeX) code are referred to with 4-letteres tagbe found on [[User:Luigi. One of them is ‘smcp‘, for “small caps“. Letscarso#Luatex_examples|Luigi's consider the following Mark IV-only code: <texcode>\definefontfeature[smallcapsuser page]]as well as [language=DFLT,script=latn,smcp=yes]\font\palasmallcaps=texgyrepagella-regular*smallcaps\palasmallcaps This is a text in small capitals.<http://texcode> Here you basically define a (Mark IV) feature with the name ”smallcaps”, and associate it with the (Opentype) feature “smcp”luatex. You have to specify with script you want to use it; scripts in Opentype are also tagged with four letters, and “latn” is of course LatinbluwikiThen you define a TeX font with that feature. You can see what features are defined in a particular font with the following bit of code <texcode>\ctxlua{ fontname = 'texgyrepagella-regular.otf'  tfmdata = fonts.tfm.read_and_define("filecom/ http:" .. fontname, 655360) font = tfmdata.shared.otfdata if font then gsubfeatures = fonts.otf.analyze_features(font.gsub) gposfeatures = fonts.otf.analyze_features(font//luatex.gpos) end  if gsubfeatures then tablebluwiki.sort(gsubfeatures) tex.sprint("\\rm GSUB features: \\tt ") for _, feat in ipairs(gsubfeatures) do tex.sprint(feat) tex.sprint(' ') end else tex.sprint("\\rm No GSUB features") end tex.sprint("\\par")  if gposfeatures then tex.sprint("\\rm GPOS features: \\tt ") table.sort(gposfeatures) for _, feat in ipairs(gposfeatures) do tex.sprint(feat) tex.sprint(' ') end else tex.sprint("\\rm No GPOS features") end}<com/texcode>]
It prints the list on the page.[[Category:Tools]][[Category:Programming and Databases]]

Navigation menu