QuickGuide: Adding LNCS Springer Style to LaTeX install

2011/05/31

A while ago I posted about installing the LNCS LaTeX classes. Those instructions are wrong, here is a better way of doing it.

  1. In $HOME create the following directory structure: ‘texmf/tex/latex’.
  2. Add the lncs folder as a subfolder of ‘latex’.
  3. Run the command texhash Other latex packages not found in the latex package manager can be installed the same way, baposter for example.

On Linux $HOME is ~, and on Mac OS X it is ~/Library.

Also for those that want a version of LNCS that works with href, one can be found here.


Note on Org-Mode for Emacs

2010/10/11

1 Overview

Org-Mode is an Emacs mode tailored for keeping notes, TODO lists and
general planning in an easy to use plain-text environmnet. I have
just started to use it and it certainly gets my vote as it fufills my
needs for work. These needs are:

  • I need to write up rough drafts quickly of notes from
    class/studying/research;
  • Have a planner to prioritise my time;
  • Incorporate existing workflows ;
  • Terminal based and/or can beintegrated with version control systems
    such as git or bazaar or svn; and
  • Be easy to use with an option to export to some better format for
    typesetting or viewing.

I use org-mode either to outline documents and fatten them out with
text and use TODO items to help organise that writing, or to manage my
life with todo items. For more information concerning org-mode see the references at the end of the post.

For this post I am simply going to introduce org-mode and its common
syntax and basic abilities. In a future post I shall go more into
depth how I use it for planning and GTD, moreover I might write a
tutorial on how I used it for outlining documents.

2 Setup

First some setup code. I have the following code placed in my .emacs
file:

(setq org-log-done t)
(setq org-export-with-toc 4)
(setq org-export-headline-levels 4)
(setq org-startup-folded "showall")
(setq org-startup-align-all-tables "align")
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(add-to-list 'auto-mode-alist '("\\.todo$" . org-mode))
(add-to-list 'auto-mode-alist '("\\.note$" . org-mode))

The first line adds time stamps to completed TODO items. The second
and third lines limits the table of contents, on export, to a depth of
four and limits heading depths to four within a file. The fourth
ensures that code folding is disabled. The final setting ensures that
tables are aligned. The last three lines forces emacs to open all
*.org, *.todo, and *.note files in org-mode. This is just a handy way
for me to organise my files as I see fit.

3 Exporting

Org-mode files can be exported to several formats such as docbook,
html and LaTeX. To export and get a list of available formats enter:
C-c C-e. Direct exportation is as follows:

HTML C-c C-e h
LaTeX C-c C-e l
DocBook C-c C-e D

4 Planner Mode

The core use of org-mode is as an outliner/planner. Headings are
rather trivial:

 
* Level 1
** Level 2
*** Level 3

and so on. Headings can also be indented and single stars used with
org-indent-view, but I do not like that.

4.1 Todo -Items Basics

When used as a planner each header acts as a TODO item and each of its
children and childrens children, are counted as sub-tasks. After the
header level indicator a state tag can be added that indicates the
status of the TODO item. The standard states are: TODO and
DONE. To rotate between states enter C-c C-t.

4.2 Adding States

Additional custom states can be added at the start of the file as
follows:

#+TODO: TODO FEEDBACK | DONE CANCELED
#+TYP_TODO: FEEDBACK | DONE CANCELED
#+SEQ_TODO: FEEDBACK | DONE CANCELED

Where all the states to the left of the vertical bar indicate
unfinished states and to the right finished states. Also appending
(char) to each state i.e. FEEDBACK(f) can add a fast action key
combo accessed by C-c C-t char

Global workflows can be added in your .emacs file as follows:

(setq org-todo-keywords
      '((sequence "TODO" "|" "DONE") ;; Classic
        (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")
        (sequence "ALICE" "BOB" "|" "DONE")
))
Note
either of the above lines can be used.

4.3 Using States

The states of TODO items can be used in whatever way you
wish. There can even be support for different workflows The org-mode
manual provides two examples.

4.3.1 Types i.e. Task allocation

The states can be used to indicate who is to be allocated the
task. For example:

 
#+TYP_TODO: ALCE BOB CHARLIE MALLORY TIM | DONE

can be used to assign tasks to the people mentioned.

4.3.2 Bug Reports

Bug reports have different states which can be represented as:

 
#+SEQ_TODO: REPORT BUG KNOWNCAUSE | FIXED

4.4 Progress

After task declaration use [ % ] or [n/m] to indicate completion.
The value will be updated with the children

* Organize Party [33%]
** TODO Call people [1/2]
*** TODO Peter
*** DONE Sarah
** TODO Buy food
** DONE Talk to neighbor

4.5 Checkboxes

Plain lists can be turned into todo items by adding [] at start i.e.

* TODO Organise Party [/]
  - [-] Call People
   - [ ] Alice
   - [X] Bob
  - [ ] order food

4.6 Tags

Labels and Tags are used for context. Form is :tag: Add tags with
C-c C-q or after colon M-<tab>

Type Command
File Tag #+FILETAGS: :tag:tag1:
Labels #+TAGS: @tag1 tag1
Tag Sets #+TAGS: { @work @home }

The tag sets are mutually exclusive. The @ character is not
important. Appending (char) to end of tag definition to add short
cut i.e.: @work(w).

4.7 Timestamps

Type Command Result
Active C-c . < 2006-11-01 Wed 19:15 >
Inactive C-c ! [ 2006-11-01 Wed 19:15 ]
Repeated nvt < 2006-11-01 Wed 19:15 +1w>
Range nvt <timestamp>--<timestamp>

4.7.1 Deadlines and Schedules

Deadlines and schedules can be appended to headlines as follows:

Deadlines C-c C-d
Scheduled C-c C-s
Note
scheduled implies when it starts.

5 Note Taking

Before, I used to write-up notes either directly in LaTeX or Markdown
(or varient of) as an intermediate form before conversion to LaTeX for
refinement. I have been also tempted to use reStructuredText or
Sphinx, and also play with pandoc as a converter between
formats. Although the aforementioned tools did give me a nice work
flow for note taking, the planner aspect did not work. For my todo
lists, I used to have simple markdown file full of lists combined with
a iCal calendar to mark it up in a calendar. Org-mode combines the two
just nicely.

5.1 Taking Notes

Taking notes in org-mode is simple. The mark-up syntax is similar
and easy to learn like most markdown-esque languages. I shall only
list some of the core markup features that I use commonly. Headers are
same as seen when outlining/planning.

When using org-mode to take notes, I use to write out the bulk of the
text from the notes with placeholders, in the form of descriptive
lists to represent any figures, lemmas, et cetera. I then export the
notes to LaTeX and fill out the rest of the more latexy stuff
i.e. maths et all, in pure LaTeX. I am aware that one can enter LaTeX
in org-mode but I have yet to explore it.

5.2 Syntax

5.2.1 Metadata

 
#+TITLE: A Note on Org-Mode for emacs
#+AUTHOR: Jan de Muijnck-Hughes
#+DATE: [2010-10-11 Mon]
#+EMAIL: foobar@nowhere.com
#+DESCRIPTION: Overview on how to use org-mode for working.
#+KEYWORDS: ORG-MODE NOTES TUTORIAL

The above is the metadata that I include for most notes.

5.2.2 Markup

Markup Command Result/Note
Unordered List - + * avoid use of *
Ordered List 1. 1) nvt
Description List term :: description nvt
bold *bold* bold
italic /italic/ italic
code =code= code
verbatim use tildas
Horizontal Rule ----- i.e.\ 5+ dashes nvt

5.2.3 Footnotes

Type Command
Regular Declaration [fn:<label>]
Regular Definition [fn:<label>] <text>
Inline [fn:<name>:<definition>]
Anonymous [fn::<definition>]

5.2.4 Hyperlinks

Type Command
Standard [[link][description ]
Raw Link [ [link ]]
Document Target <<Target>>

5.2.5 Tables

| Header  | Header 1 | Header 2 |
|---------+----------+----------|
| Content | Content  | Content  |

5.3 Blocks

There are several types of blocks that you can define, the manual has
more, but the ones that I use most often are: Quotes, Examples and
Source code.

5.3.1 Quotes

 
#+BEGIN_QUOTE
People sometimes ask me if it is a sin in the Church of Emacs to use vi. 
Using a free version of vi is not a sin; it is a penance. So happy hacking.
   --- Richard Stallman
#+END_QUOTE

5.3.2 Examples

 
#+BEGIN_EXAMPLE
#+BEGIN_QUOTE
...
#+END_QUOTE
#+END_EXAMPLE

Alternativly, the format : that is a space colon space also works
and it’s much quicker.

5.3.3 Source Code

 
#+BEGIN_SRC <emacs mode>
...
#+END_SRC

This is a cool feature of org-mode. You can add code in a block, label
it with its mode and it will be highlighted as appropriate in the
buffer. A list of languages can be found here. Furthermore, if you
execute the commad: =C-c ‘= this will launch a separate buffer to
enter the code in.

6 Further Reading furtherReading

A lot of org-mode functionality has been left out. More information
can be found online. Some quick lines:

Author: Jan de Muijnck-Hughes

Date: [2010-10-11 Mon]

HTML generated by org-mode 6.36c in emacs 23


Bash-Completion Mac OS X

2010/05/04

Just a quick note on how to turn on Bash-Completion on Mac OS X. Bash-Completion is a set of scripts that is essentially auto-complete on steroids. The benefits of this is that when you go to auto-complete on a make file or ant build file auto-complete will search the build file for the  build targets and list them instead of/ aswell as the files within the cwd. For a while now this has been included by default in most bash setups but not for Mac OS X. To install:

  1. Assuming you have Mac Ports installed:

    $ sudo port install bash-completion

  2. Add the following to your ~/.profile file.

    if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
    fi

  3. Open a new terminal and then enjoy!

Introducing Tome

2010/03/22

I have finally decided upon a name for the aforementioned documentation viewer for Linux that I previewed yesterday:

Tome

The rationale being that an existing Linux distro is  Tome of knowledge concerning system documentation, programming documentation etc I have yet to commit the code as I have a very busy schedule, a friend of mine is playing in a bar tonight, in less than an hour in fact, with a 20 minute bike ride and food still to do… However, I am still needing to do a lot but I will upload the code tomorrow night, hopefully i can get my head around  launchpad and “proper development procedures” by then. Of note it would be nice  to get some second opinions/help —first proper app you see— for:

  • Artwork — i can barely draw a circle in Inkscape 😉
  • Internationalisation
  • Code tidying
  • Parsing the “theList.txt”
  • Removing redundant entries

If you want to help drop us a line. I have created a launchpad project and my details should be there and will update it tomorrow night after work!

Also thanks to those behind: Quickly and Acire, I wouldn’t have been able to do something so fast so quickly.

Oh and yeah, here is the obligatory screen shot:


DocView Preview

2010/03/21

In recent weeks Ubuntu (or rather Jono Bacon) has been championing the cause of the Opportunistic Developer. As part of that drive, and for a while before, the community has developed several tools to aide the Opportunistic Developer in their goals and aims.  For example:

However one thing that is missing is within this landscape of developer aides is easy to access Developer documentation. That is a single app that presents the opportunistic developer with locally sourced docs that can hopefully help them with their project. To this end I decided to hack together such an application. It is presently called DocView (this is a tentative name) but an offical and proper name will be decided upon once I push the code to launchpad. Currently DocView is a simple python app that uses webkit to view a preselected choice of documentation that exists within the /usr/share/ directories.

Some of you might say:

What about DevHelp!?

DevHelp has pretty much exactly the same goals as my project that is providing developers with access to documentation, however, DevHelp is primarily aimed for GTK and Gnome and works with gtk-doc.  As such it does not include everything that exists within /usr/share , for instance: Doxygen and Java manuals are not included, while Python is. Moreover DevHelp integrates with a few apps such as Anjuta… so there is a bit of overlap. However I wish to keep this project quite simple at the moment.

Currently DocView is less than 2 hours old and is currently looking like this:

There is still a lot of work that still needs to be done on DocView. I still need to iron out several bits and pieces like:

  • How I am going to locate this documentation, currently, it is hardcoded as a list. Something which I want to avoid
  • How to group the items within the tree menu i.e.\ language, doc type
  • How to store the list of docs, CouchDB looks like the way to go.
  • And any other features that may be plausible for such a project.

I am also undecided given the substantial overlap with DevHelp if I should continue with this project. But who knows…


    Some Indescribable music videos

    2010/02/27

    A collection of indescribable music videos that a friend pointed me towards. There are times when I am glad that my polygotism doesn’t cover the languages used!:

    And as a bonus here are two videos, that I do not know how to describe, but not in the same way as the above:


    Letter from Gordon Brown regarding Alan Turing

    2009/09/11

    For those who haven’t seen or read it yet, here is a letter from Gordon Brown the current prime minister of the United Kingdoms of England, Scotland, Wales and Northern Ireland to those who signed the petition requesting a formal apology from the british government regarding the harrowing subjugation of Alan Turing over his homosexuality in the 1950’s.

    2009 has been a year of deep reflection – a chance for
    Britain, as a nation, to commemorate the profound debts we owe to those who
    came before. A unique combination of anniversaries and events have stirred
    in us that sense of pride and gratitude which characterise the British
    experience. Earlier this year I stood with Presidents Sarkozy and Obama to
    honour the service and the sacrifice of the heroes who stormed the beaches
    of Normandy 65 years ago. And just last week, we marked the 70 years which
    have passed since the British government declared its willingness to take
    up arms against Fascism and declared the outbreak of World War Two. So I am
    both pleased and proud that, thanks to a coalition of computer scientists,
    historians and LGBT activists, we have this year a chance to mark and
    celebrate another contribution to Britain’s fight against the darkness of
    dictatorship; that of code-breaker Alan Turing.

    Turing was a quite brilliant mathematician, most famous for his work on
    breaking the German Enigma codes. It is no exaggeration to say that,
    without his outstanding contribution, the history of World War Two could
    well have been very different. He truly was one of those individuals we can
    point to whose unique contribution helped to turn the tide of war. The debt
    of gratitude he is owed makes it all the more horrifying, therefore, that
    he was treated so inhumanely. In 1952, he was convicted of ‘gross
    indecency’ – in effect, tried for being gay. His sentence – and he
    was faced with the miserable choice of this or prison – was chemical
    castration by a series of injections of female hormones. He took his own
    life just two years later.

    Thousands of people have come together to demand justice for Alan Turing
    and recognition of the appalling way he was treated. While Turing was dealt
    with under the law of the time and we can’t put the clock back, his
    treatment was of course utterly unfair and I am pleased to have the chance
    to say how deeply sorry I and we all are for what happened to him. Alan and
    the many thousands of other gay men who were convicted as he was convicted
    under homophobic laws were treated terribly. Over the years millions more
    lived in fear of conviction.

    I am proud that those days are gone and that in the last 12 years this
    government has done so much to make life fairer and more equal for our LGBT
    community. This recognition of Alan’s status as one of Britain’s most
    famous victims of homophobia is another step towards equality and long
    overdue.

    But even more than that, Alan deserves recognition for his contribution to
    humankind. For those of us born after 1945, into a Europe which is united,
    democratic and at peace, it is hard to imagine that our continent was once
    the theatre of mankind’s darkest hour. It is difficult to believe that in
    living memory, people could become so consumed by hate – by
    anti-Semitism, by homophobia, by xenophobia and other murderous prejudices
    – that the gas chambers and crematoria became a piece of the European
    landscape as surely as the galleries and universities and concert halls
    which had marked out the European civilisation for hundreds of years. It is
    thanks to men and women who were totally committed to fighting fascism,
    people like Alan Turing, that the horrors of the Holocaust and of total war
    are part of Europe’s history and not Europe’s present.

    So on behalf of the British government, and all those who live freely
    thanks to Alan’s work I am very proud to say: we’re sorry, you deserved
    so much better.

    Gordon Brown

    If you would like to help preserve Alan Turing’s memory for future
    generations, please donate here: http://www.bletchleypark.org.uk/

    Petition information – http://petitions.number10.gov.uk/turing/