---
name: "twill"
section: "1"
platform: "linux"
package: "texlive-doc"
version: "2026.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/twill"
---

# twill(1)

translate a literate programming WEB to TeX with mini-indexes

## NAME

twill, twill-refsort - translate a literate programming WEB to TeX with mini-indexes

## SYNOPSIS

**twill** \[**-x**\] *webfile*\[**.web**\] \[{*changefile*\[**.ch**\]\|**-**} \[*outfile*\[**.tex**\]\]\]

**twill-refsort** \< *reffile***.ref** \> *sreffile***.sref**

## DESCRIPTION

The **twill** program is used to create a TeX file for viewing a literate program written in WEB.  The output TeX file name is formed by adding *.tex* to the root of the  file name.

**twill** is like [**weave**(1)](/weave/1.md), but also supplies cross-reference information in the form of \`mini-indexes' for each spread of pages, for identifiers used on that spread, and a \`master index' at the end that it gathers automatically.

You need to run **twill** twice, once to prime the pump and once to get decent answers. Moreover, you must run the output twice through TeX.

For a program *foo.web*, after a first *tex foo* you will have output that looks like final pages except that the entries of mini-indexes will not be alphabetized. The first run produces an auxiliary file named *foo.ref*.\
 Run *twill-refsort \<foo.ref \>foo.sref* and then another *tex foo* will produce alphabetized output.

## OPTIONS

See [**tex**(1)](/tex/1.md) for details of command-line parsing, and [**weave**(1)](/weave/1.md) for options accepted.

## ENVIRONMENT

The environment variable WEBINPUTS is used to search for the input files, If it is not set, it uses the system default. See the Kpathsea manual at https://tug.org/kpathsea for the details of the searching.

## BUGS

The table of contents file, *CONTENTS.tex*, is generated but ignored (unless macros in *twimac-web.tex* are redefined).

## FILES

- *$TEXMFMAIN/tex/plain/cweb/cwebbin/twimac-web.tex*

  TeX macros used by **twill** output.

## SEE ALSO

[**tangle**(1)](/tangle/1.md) for references, authors, and other information about WEB in general.

Donald E. Knuth, Mini-indexes for literate programs, Software-Concepts and Tools, 15(1):2-11, 1994.\
 https://arxiv.org/abs/cs/9401102

CTWILL program source, section 287:\
 https://mirror.ctan.org/info/knuth-pdf/cweb/ctwill.pdf\
 (Not all features described there are available in the older **twill** system, but you will get the gist.)

Public discussion list and bug reports: https://lists.tug.org/tex-k
