ghci4luatex: A GHCi session in LaTeX

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on GitHub at https://github.com/AliceRixte/pandia/blob/main/ghci4luatex#readme


[Skip to Readme]

Properties

Versions 0.0, 0.0
Change log CHANGELOG.md
Dependencies aeson (>=2.2 && <2.3), base (>=4.18 && <5), bytestring (>=0.12 && <0.13), cmdargs (>=0.10 && <0.11), containers (>=0.6 && <0.7), ghci4luatex, network-simple (>=0.4 && <0.5), process (>=1.6.25 && <1.7), stm (>=2.5 && <2.6), text (>=2.1 && <2.2) [details]
License BSD-3-Clause
Copyright Alice Rixte 2024
Author Alice Rixte
Maintainer alice.rixte@u-bordeaux.fr
Category Latex, Program
Home page https://github.com/AliceRixte/ghci4luatex#readme
Bug tracker https://github.com/AliceRixte/ghci4luatex/issues
Source repo head: git clone https://github.com/AliceRixte/ghci4luatex
Uploaded by AliceRixte at 2025-07-04T17:06:55Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for ghci4luatex-0.0

[back to package description]

ghci4luatex : a GHCi session in LuaTeX

Run a GHCi session within a latex document :

\begin{ghci}
x :: Int
x = 4

y :: Int
y = 5
\end{ghci}
The sum of $x$ and $y$ when $x = \hask{x}$ and $y = \hask{y}$ is $\hask{x + y}$.

\begin{ghci}
:set -XOverloadedStrings
\end{ghci}

\begin{ghci}
import Text.LaTeX

printTex = putStrLn . prettyLateX
\end{ghci}

\hask{printTex (section "A section using HaTeX")}

Quick start

  1. Install haskell and cabal or stack

  2. Install ghci4luatexby running either

cabal install ghci4luatex

or

stack install ghci4luatex
  1. Copy ghci.sty and dkjson.lua in the folder containing a main.tex file with the following content :
\documentclass{article}

\usepackage{ghci}

\begin{document}

\begin{ghci}
x :: Int
x = 5

y :: Int
y = 6
\end{ghci}

The sum of $x$ and $y$ when $x = \hask{x}$ and $y = \hask{y}$ is $\hask{x + y}$.

\end{document}
  1. Within that folder, run the ghci4luatex server :
ghci4luatex
  1. Open another shell and compile with luatex :
latexmk -shell-escape -lualatex main.tex

Workflow with lhs2tex in Visual Studio Code with LaTeX workshop

In this repository, you will find an example that contains a Makefile.

You can take inspiration from this to use make in a LateX Workshop receipe :

  1. Install the LaTeX Workshop extension.
  2. In settings.json , add the following
"latex-workshop.latex.recipes": [
        {
            "name": "ghci4luatex",
            "tools": [
                "mklatex"
            ]
        }
    ],
"latex-workshop.latex.outDir": "./build/",
"latex-workshop.latex.tools": [
        {
            "name": "mklatex",
            "command": "make",
            "args": [
                "latex",
                "main=%DOCFILE%"
            ],
            "env": {}
        }
    ],