SKB-LaTeX
Create and maintain a repository for long-living documents
Latest version: v0.53 2016/02/12
Introduction
This package provides macros that help to build a document repository for long living documents. It focuses on structure and re-use of text, code, figures etc. The basic concept is to first separate structure from content (i.e. text about a topic from the structure it is presented by) and then separating the content from the actual published document, thus enabling easy re-use of text blocks in different publications (i.e. text about a protocol in a short article about this protocol as well as in a book about many protocols); all without constantly copying or changing text. As a side effect, using the document classes provided, it hides a lot of LaTeX from someone who just wants to write articles and books.
The following classes are supported
-
skbarticle: an article class using the memoir package
-
skbbook: a book class using the memoir package
-
skbbeamer: a class for presentations using the beamer package
-
skblncsbeamer: a class for annotated slides using the beamer package
-
skblncsppt: a class for annotated Powerpoint slides
-
skbmoderncv: a class integrating the moderncv package
The documentation (current/doc) provides for a user guide, the documentation of the LaTeX package and classes and a few documents showing the capabilities of the skb package for documents and presentations. All documentation of the SKB is done using the SKB itself, so you can have a look into the LaTeX code as well to see how it works.
Status: Alpha, Experimental
This package, while being used by me and some early adaptors, is still in alpha status, thus experimental. We are using it to maintain a large amount of documents (articles, lecture notes, some books, project documentation, open source documentation) and various different platforms (Windows with MikTeX, several Linux systems and OSX). Since we eat our own dog food, we are fairly confident that the package does it’s job well. However, this is not written by a LaTeX expert, I am still learning, and the package might or might not be usefull for you and might or might not work on your machine. We are very interested in comments, critic, advice, recommendations, complaints; as long as you try to keep them contructive ;)
Contents
The repository contains this readme file, a makefile for generating all
required files from the source, the package source including licence
information (/source
) and the generated package documentation and user
guide (/doc
).
v +-- makefile +-- README +-- [doc] | +-- [user-guide] : lots of TeX and other files for documentation | +-- skb.pdf : package documentation generated from skb.dtx | +-- user-guide.pdf : SKB user guide | `-- [source] +-- HISTORY.TXT : history of the package documenting changes +-- LICENSE.TXT : licence for the package +-- MANIFEST.TXT : fiels to which the licence applies +-- skb.dtx : latex source `-- skb.ins : latex installer script
Installation
Your LaTeX distribution might have the SKB package already installed or autmatically install it from CTAN or other sources when you use it the first time. If you need to install it manually, then the first step is to get the archive and extract it a temporary folder of your choice. You should see the directory structure and content as described in the previous section.
To build all parts of the package, you have two options: you can run 'make' (or 'gmake') using the provided makefile. This will create everything needed. Or you can create everything manually following the instructions in the following section. In both cases, the final installation is simply copying all files to their locations in your LaTeX distribution.
-
copy [archive root]/source to $TEXMF/source/latex/skb
-
copy [archive root]/doc to $TEXMF/doc/latex/skb
-
copy [archive root]/run to $TEXMF/tex/latex/skb
Generating Class and Style files from source
You can use the provided makefile to generate the class and style files of the SKB package. If you want to do it manually, simply use the following commands (assuming that you create them in a filder called 'run'):
[archive root]# [archive root]# mkdir run [archive root]# cd run;latex ../source/skb.ins
This will create the following files in the run folder:
| `-- run +-- skb.cfg : texmf/tex/latex/skb +-- skb.sty : texmf/tex/latex/skb +-- skbarticle.cls : texmf/tex/latex/skb +-- skbbeamer.cls : texmf/tex/latex/skb +-- skbbook.cls : texmf/tex/latex/skb +-- skblncsbeamer.cls : texmf/tex/latex/skb +-- skblncsppt.cls : texmf/tex/latex/skb `-- skbmoderncv.cls : texmf/tex/latex/skb
Now copy all files into your local LaTeX distribution ($TEXMF is the path to your distribution root):
[archive root]# mkdir $TEXMF/tex/latex/skb [archive root]# cp run/* $TEXMF/tex/latex/skb
Generating the documentation from source
The package already contains the documentation of the SKB source (doc/skb.pdf) and the user guide (doc/user-guide.pdf). The documentation also provides examples for slides (animated and not animated) and annotated slides, which re-use parts of the user guide. To generate all documentation you can either use the provided makefile or run latex manually. Start doing it manually by going into the 'doc' folder of the package: [archive root]# cd doc Then run the following command three times to generate the package documentation (skb.pdf): [archive root]/doc# pdflatex ../skb.dtx Similar with the user guide, except that we also need to run BibTeX for including all references [archive root]/doc# pdflatex user-guide/user-guide [archive root]/doc# bibtex user-guide [archive root]/doc# pdflatex user-guide/user-guide [archive root]/doc# pdflatex user-guide/user-guide Now generate the PDF files for the slides in the following order: not animated, animated, annotated. The order is important, since the annotation uses the PDF file of the not animated slides: [archive root]/doc# pdflatex doc/ug-slides-noanim [archive root]/doc# bibtex ug-slides-noanim [archive root]/doc# pdflatex doc/ug-slides-noanim [archive root]/doc# pdflatex doc/ug-slides-noanim [archive root]/doc# pdflatex doc/ug-slides-anim [archive root]/doc# bibtex ug-slides-anim [archive root]/doc# pdflatex doc/ug-slides-anim [archive root]/doc# pdflatex doc/ug-slides-anim [archive root]/doc# pdflatex doc/ug-slides-notes [archive root]/doc# bibtex ug-slides-notes [archive root]/doc# pdflatex doc/ug-slides-notes [archive root]/doc# pdflatex doc/ug-slides-notes Configuration ------------- The SKB comes with a default configuration in the package (`skb.sty`) and an external configuration file (`skb.cfg`). There are multiple options to configure the SKB (changing the coniguration file, using a local configuration file called `skblocal.cfg` or using the provided macro `\skbconfig`). Please refer to the user guide for details. Where do I get it? ------------------ - GitHub: https://github.com/vdmeer/skb-latex - CTAN: http://www.ctan.org/tex-archive/macros/latex/contrib/skb/ License ------- Copyright (c) 2010-2016 Sven van der Meer <vdmeer.sven@mykolab.com> 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 <http://www.latex-project.org/lppl.txt> 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 `author-maintained'. The Current Maintainer of this work is Sven van der Meer <vdmeer.sven@mykolab.com> This software is provided 'as is', without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. This work consists of all files in source/MANIFEST.TXT.