CTAN Comprehensive TeX Archive Network

Directory graphics/bookshelf


(bookshelf class)


This is the README.md file for the bookshelf class v0.5 (2020-05-24) generated by ClassPack v.1.19 (2020-05-19) on 23 May 2020 at 23:33:08


The bookshelf package uses biblatex and biber to turn a BiB bibliography file into a randomly-coloured, randomly-sized shelf of books, with the title and author in a randomly-chosen typeface. The image (converted to JPEG from PDF) can then be used as a background in Zoom, Teams, WhatsApp etc video calls. It requires a little preliminary work with the supplied script to set up a list of all your fonts, a list of colors, and a list of the BiB entry names in your .bib file, but otherwise should work on any modern distribution.Image created from the author's own files

Automated installation

If this class is distributed from CTAN, it should be in a zip file which allows it to be installed automatically by the Live Manager (tlmgr) and similar automated installers.

If you are using automated package installation, no further action is required: the package will be installed the first time you use it in a document.

If you are using the Live Manager (tlmgr) program manually, you can install this package with the command:

TDS installation

This class is also available as a Directory System (TDS) zip file (.tds.zip). This is the standard directory layout for a modern installation which enables the class to be unzipped directly into your Personal Directory without the need to use tlmgr. If you haven’t yet created a Personal Directory, see below for details of what one is, and how to create it.

  • You can install this class on any TDS-compliant personal system (laptop,
desktop, workstation, table, smartphone, PDA, etc) by unzipping it straight into your Personal Directory. This will put all the files into the right places, so you can start using them immediately.
  • On a shared (multiuser) system like a server, the administrator can
unzip it into the $TEXMFLOCAL directory instead (see below), and run your directory-indexing program (eg texhash, mktexlsr, etc) so that everyone can use it.
  • If you are using an old non-TDS-compliant system, see below under Manual

Your Personal Directory

This is a directory (folder) where you should put all local manual modifications (updates, additions such as new or updated classes, packages, and fonts) that are not handled automatically by tlmgr. The name and location are fixed (for all practical purposes):

  • Apple Mac OS X
  • Unix and GNU/Linux
  • MS-Windows 95/XP/NT
  • MS-Windows 2007 and above

Create that folder now if it does not already exist. Put (or unzip) all additions to your system that are not handled by tlmgr into this directory, following exactly the subdirectory structure that is used in your main distribution (unzipping a TDS file does this for you). This is what enables to find stuff automatically.

If you are a Windows user running MiK

When you create the folder for your Personal Directory, you MUST add it to MiK ’s list of supported folders. Run the MiK Maintenance/Settings program, select the Roots tab, and add the folder. You only have to do this once.
Each time you add or remove software in your Personal Directory, you MUST then click on the Update FNDB button in the General tab of the MiK Maintenance/Settings program, otherwise MiK will not find them and nothing will work!

Unix (Mac and GNU/Linux) users do not need to (indeed, should not) run their filename database indexer program (mktexlsr or texhash) for files put into a personal directory.

Installation on shared systems

On multi-user systems (Unix-based), identify the shared local directory tree with the command

kpsewhich -expand-var '$TEXMFLOCAL'

This will give you the location of the shared texmf directory into which you must unzip these files.

Do not forget to run your local filename database indexer program (texhash or mktexlsr) after installation, otherwise the files will not be found by and nothing will work!

Manual installation (non-TDS systems)

To install this software manually, download and unzip the non-TDS zip file into a temporary directory and move the class and/or package files and other files to the proper locations where will find them on your system. This is referred to in some documentation as “the TEXINPUTS directory”, although it may be called something else on your system.

It is your responsibility to know where this location is. See the question in the FAQ at https://texfaq.org/FAQ-inst-wlcf.html for more information. If you do not know, or cannot find it, or do not have access to it, your system may be out of date and may need replacing.

Online systems and “last resort” systems

Some online systems use CTAN, so a package from there should be available on demand. For other online systems where you do not have access to the file system, unzip the non-TDS zip file into a temporary directory and upload the files to the online system. Follow their instructions for where to put them.

In an emergency, or as a last resort on unmanageable systems, it is possible simply to put the class and/or package files into your current working directory (the same folder as your .tex files).

While this may work, it is not supported, and may lead to other resources (packages, fonts, images etc) not being found.


Include the line shown below in the Preamble of your document; a \documentclass line should be at the top; a \usepackage command normally goes anywhere in the Preamble:


(similarly for other classes or packages if more than one is supplied with this package). Read the documentation for the options available, if any. The documentation is distributed as a PDF document in the zip file. You can also regenerate it by typesetting the bookshelf.dtx file with xelatex (and biber and makeindex) in the normal way.

Bugs and TODO

No outstanding reported bugs at the time of this version.

For TODO items, see the PDF documentation.


The following statement is included in the source code:

 Transformed from bookshelf.xml by ClassPack db2dtx.xsl
 version 1.19 (2020-05-19) on Saturday 23 May 2020 at 23:33:08

 bookshelf.cls is copyright © 2020 by Peter Flynn <peter@silmaril.ie>

 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either
 version 1.3 of this license or (at your option) any later
 version. The latest version of this license is in:


 and version 1.3 or later is part of all distributions of
 LaTeX version 2005/12/01 or later.

 This work has the LPPL maintenance status ‘maintained’.
 The current maintainer of this work is Peter Flynn <peter@silmaril.ie>

 This work consists of the files bookshelf.dtx and bookshelf.ins,
 the derived file , 
 and any other ancillary files listed in the MANIFEST.

Download the contents of this package in one zip archive (1.7M).

bookshelf – Create a nice image from a file

This package turns a bibliography file into a randomly-coloured, randomly-sized shelf of books, with the title and author in a randomly-chosen typeface.

Version0.5 2020-05-24
LicensesThe Project Public License 1.3
Copyright2020 Peter Flynn
MaintainerPeter Flynn
Contained inTeX Live as bookshelf
MiKTeX as bookshelf
Graphics use
Guest Book Sitemap Contact Contact Author