Interfacing LuaTeX with Julia

27 December, 2017 (4 minute read). Category: FFI. Tags: julia.

One cool feature of LuaTeX is ability to interface with external libraries using Lua’s Foreign Function Interface (FFI). An extreme example of this is Luigi Scarso’s LuaTeX lunatic, which provides a two way bridge between Python and LuaTeX. Not being a Python fan, I never looked into the implementation details, in spite of Luigi’s impressive examples.

Recently, Henri Menke posted an interesting example that shows how to use a function from GNU Scientific Library (GSL) to inteface with pgfplots. This got me interested in looking into Lua’s FFI in detail. After a bit of trial and error, I finally figured out how to interface LuaTeX with my current favorite programming language: Julia.

Read more >

Using Font Awesome

26 November, 2017 (2 minute read). Category: Fonts, Macros. Tags: font awesome, symbols.

Font Awesome is a font that provides pictographic icons and is commonly used to display icons for email, editing tasks, popular social media website, etc. It is easy to use Font Awesome in ConTeXt: the font ships with ConTeXt Standalone and ConTeXt includes a symbolset to easily access the icons using names rather than icon numbers.

To use FontAwesome icons in ConTeXt, simply load the symbolset fontawesome using

\usesymbols[fontawesome]

and then any icon is accessible using

\symbol[fontawesome][...]

where ... is the name of the icon is listed in the Font Awesome icon list.

Read more >

Comibined characters in Math

15 October, 2017 (3 minute read). Category: Mathematics. Tags: asciimath.

There is a new feature in ConTeXt that replaces some ascii math (I am using this term informally. The symbols do not match the asciimath symbol list). It is enabled using1

\setupmathematics[collapsing=3]

and replaces a combination of characters by a glyph. For example,

\setupmathematics[collapsing=3]
A function $f$ is an increasing function
  \startformula
    x <= y  ===> f(x) <= f(y)
  \stopformula

gives

Example of combined characters

Read more >

Typesetting differential equations

18 September, 2017 (4 minute read). Category: Macros. Tags: luatex, programming, separating content and presentation.

This semester I am teaching a course involving linear differential equations, so I have typeset many differential equations that look like this:

Simple example

Believe me, writing such equations by hand gets tedious very quickly. So, I wanted a macro \LDE (for Linear Differential Equation), so that I could just type

\LDE{1, -3, 2}{2, 1}

and get the above result. This post describes how to write such a macro using LuaTeX + ConTeXt.

Read more >

Frame with solid left line

18 August, 2017 (1 minute read). Category: Visualization. Tags: backgrounds, framed.

Adding a solid line on the left side of a frame, block quote, etc. creates a simple, clean, and attractive visual effect that I like.

Simple example

I don’t know when I first came across this style, but it is used commonly on the Internet to show blockquotes. So, how do we get this style with ConTeXt?

Read more >

Drop shadows with lifted corners

6 August, 2017 (2 minute read). Category: Visualization. Tags: metapost, backgrounds, shadows.

There is an old question on TeX.SE asking how to draw drop shadows with a lifted corner. For fun, I decided to translate the code to Metapost and release it as a module: t-backgrounds. I hope to add a few other backgrounds to the module in the near future.

The module provides two overlays liftedshadow:big and liftedshadow:medium. These may be used like any other overlay. Let’s see an example:

Simple example

Read more >

Correct math escape in t-vim

22 July, 2017 (3 minute read). Category: T-Vim. Tags: math, horizontal spacing, code formatting.

There is a feature in t-vim module that allows the use of TeX code in comments, which is useful when typeset math in comments. For example:

\definevimtyping[C][syntax=c, escape=on]

\startC
/* The following function computes the roots of \m{ax^2+bx+c=0}
 * using the determinant \m{\Delta=\frac{-b\pm\sqrt{b^2-2ac}}{2a}}
 */

double root (double a, double b, double c) {....}
\stopC

Read more >

Rising from the ashes

10 June, 2017 (1 minute read). Category: Announcement. Tags: blog.

I used to blog on Wordpress, mainly about ConTeXt, but occasionally about other stuff as well. It has been almost three years since I last posted there. I got busy. Both in my personal and professional life. This is an attempt to restart that blog.

Read more >

Metapost and TeX labels

22 January, 2014 (3 minute read). Category: Metapost. Tags: label, metapost.

Default Metapost has the concept of two types of labels, postscript labels and TeX labels. Postscript labels are created using

label("text", location);

while TeX labels are created using

label(btex text etex, location);

In the latter case, Metapost collects everything between btex and etex in a separate file, processes that file through TeX, and includes the resulting postscript code at an appropriate location. Such a Rube Golberg-esque mechanism is needed to propertly typeset mathematics, get proper kerning, etc.; tasks that TeX can do but Postscript cannot.

Read more >
< Previous Page Next Page >