LaTeX sources of my personal Curriculum Vitae (CV)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

-- mode: markdown; mode: visual-line; fill-column: 80 --

By Falkor github Issues

   Time-stamp: <Tue 2018-08-21 12:38 svarrette>

     ______    _ _             _        _______      __
    |  ____|  | | |           ( )      / ____\ \    / /
    | |__ __ _| | | _____  _ __/ ___  | |     \ \  / /
    |  __/ _` | | |/ / _ \| '__|/ __| | |      \ \/ /
    | | | (_| | |   < (_) | |   \__ \ | |____   \  /
    |_|  \__,_|_|_|\_\___/|_|   |___/  \_____|   \/

   Copyright (c) 2011-2016 Sebastien Varrette <>


This is the repository containing the LaTeX sources of my personal CV.

This LaTeX document can (should) be compiled using the GNU Make utility. Documentation on the Make utility may be found here

Installation / Repository Setup

This repository is hosted on Github.

  • To clone this repository, proceed as follows (adapt accordingly):

      $> mkdir -p ~/git/
      $> cd ~/git/
      $> git clone

/!\ IMPORTANT: Once cloned, initiate your local copy of the repository by running:

$> cd cv
$> make setup

This will initiate the git flow layout for this repository.

LaTeX and Ruby gems

The compilation of the files contained in this directory requires the following binaries :

  • latex, pdflatex and make (for compilation)
  • bibtex (for bibliography/references)
  • ruby, rvm (the script that split the bibliography is based on Ruby)
    • run bundle install to initialize the repository with the appropriate gems.
  • (optional) latex2html (html generation from LaTeX)
  • (optional) latex2rtf (rtf generation from LaTeX)

Compilation of the LaTeX sources

As mentioned above, the compilation of this document relies on GNU Make, and you should have a complete working LaTeX environment (including the pdflatex compiler).

Several versions of my CV can be compiled:

Compilation Command Output file Size Description
make cv-varrette-en.pdf 8 pages Full complete version, holding all my publications
make short cv-varrette-en_short.pdf 3 pages Short version (3p), holding selected publications
make tiny cv-varrette-en_tiny.pdf 1 page Tiny version

When you type make [type], the following process is operated:

  1. First pass of pdflatex and generation of additional files (*.aux *.bbl)
  2. Treatment of the BibTeX bibliography which include
    • splitting the main bib file into several file __sub_biblio_*.bib
    • run bibtex on the auxiliary files
  3. Second and third pass of pdflatex to correct the references

Publication records

A special script scripts/manage_bibtex is taking care of parsing the main BibTeX file biblio-varrette.bib exploding it into subfiles by type and named __sub_<mainfilename>_<type>.bib, while creating two special LaTeX file safe to include in the main LaTeX file (cf also _publis.tex):

  • __sub_<mainbib>_summary.tex: a table providing global statistics of the publications
  • __sub_<mainbib>_main.tex: the main file you can include.

It is also a good practice to offer external reports of your publication records. Google Scholar is of course a good pointer. If you are a researcher in IT, the DBLP database is also a well known source of information. A Windows program called Publish or Perish is also a nice tool. Finally, the University of Luxembourg is offering the Orbilu portal to refer to all publications produced by UL researchers.

Issues / Feature request

You can submit bug / issues / feature request using the Falkor/cv Project Tracker

Advanced Topics


The Git branching model for this repository follows the guidelines of gitflow. In particular, the central repository holds two main branches with an infinite lifetime:

  • production: the production-ready branch
  • master: the main branch where the latest developments interviene. This is the default branch you get when you clone the repository.

Thus you are more than encouraged to install the git-flow extensions following the installation procedures to take full advantage of the proposed operations. The associated bash completion might interest you also.

Releasing mechanism

The operation consisting of releasing a new version of this repository is automated by a set of tasks within the root Makefile.

In this context, a version number have the following format:



  • < major > corresponds to the major version number
  • < minor > corresponds to the minor version number
  • < patch > corresponds to the patching version number
  • (eventually) < build > states the build number i.e. the total number of commits within the master branch.

Example: `1.0.0-b28`

The current version number is stored in the root file VERSION. /!\ NEVER MAKE ANY MANUAL CHANGES TO THIS FILE

For more information on the version, run:

 $> make versioninfo

If a new version number such be bumped, you simply have to run:

  $> make start_bump_{major,minor,patch}

This will start the release process for you using git-flow. Once you have finished to commit your last changes, make the release effective by running:

  $> make release

It will finish the release using git-flow, create the appropriate tag in the production branch and merge all things the way they should be. Also, you will have the generated PDF for the freshly released version as a file under release/cv-varrette-en[_<type>].pdf.

Directory Layout

├── Images/         # pics / images folder
├── Makefile        # GNU make configutaration, coupled with .Makefile.{before,after}
├──       # This file
├── _*.tex               # Sub LaTeX files (conditionally included)
├── *.sty                # LaTeX style configuration
├── biblio-varrette.bib  # Main BibTeX file
├── cv.cls               # Personal adaptation of an old cv class
├── cv-varrette-en.tex   # Main LaTeX file
├── mini_bio.txt         # Mini bio, in text formal
├── releases/            # Hold LATEST PDF release of mu CVs
│   ├──
│   ├── cv-varrette-en.pdf         # Full version
│   ├── cv-varrette-en_short.pdf   # short version (3p)
│   ├── cv-varrette-en_small.pdf   # small version (2p)
│   └── cv-varrette-en_tiny.pdf    # tiny version (1p)
├── scripts/        # Various scripts, including the one splitting the bibliography
└── selected_biblio-varrette.bib   # Selected bibliographic entries

[New] Bibliography management

I maintain a single BibTeX file biblio-varrette.bib to collect the entries of my publications. A script script/manage_bibtex help me to split that biblio in multiple part.

[Old] Bibliography management

As many others, I maintain a single BibTeX file biblio-varrette.bib to collect the entries of my publications. For a CV, it make more sense to me to present my bibliographic entries by type, and to automate the collection of statistics on them (number of entries per type etc.), I made a perl script (scripts/ for this purpose. For details about its usage, run

scripts/ --help

The parsing in itself is made using the Text::BibTeX module so it should be installed on your system. Some additional modules are required (Tie::IxHash for instance). Once this script behave normally on your system, you should not take care of it as it will do the job transparently.

In details, a few CPAN modules used in the perl script are Data::Dumper, Getopt::Long, Pod::Usage, Term::ANSIColor, Text::BibTeX and Tie::IxHash.

/!\ IMPORTANT: Please check that your system is correctly configured by running

make check.

  • If you run a Mac OS X, the seq command is absent from your system. To install it, simply copy the provided script scripts/seq into a directory searched by your system (i.e. part of your PATH variable), for instance /usr/local/bin or $HOME/bin.
  • If a perl module Module::Name is missing on your system, install it via CPAN.
    • if you are under Mac OS, install Homebrew and the cpanminus package. Then install the missing modules as follows:

      cpanm Text::BibTeX Tie::IxHash
    • otherwise, use CPAN as follows:

        $> sudo cpan
          cpan shell -- CPAN exploration and modules installation (v1.9402)
          Enter 'h' for help.
          cpan[1]> install Module::Name
          Module::Name installed successfully
          cpan[2]> quit

For those interested, here is an extract of the help message for this script:

    **, a nice script in perl that split a single
    BibTeX file into several sub-file, each containing entries of the same

          ./ [options] file.bib

    ** takes a BibTeX file as input and filter it
    per entry type (article, book, inproceedings etc.) to generate several
    output files that contains the entries of a given type.

    It has been designed to work in collaboration with the "bibtopic" LaTeX
    package (see
    <>) that
    permits to use multiple bibliography file in a single document.

    For instance, invoked on the BibTeX file "file.bib",
    ** will generate the following files:

                These files contains BibTeX entries of a given type (for
                instance, "__sub_file_article.bib" contains all entries of
                type @Article{...} in "file.bib").

                This is the main LaTeX you probably want to include in your
                document as it contains the code (with the )to include the
                relevant sub-files.

                You may want to include this LaTeX file as it will generate
                a table summarizing the number of publications per type.

    The best way to integrate transparently the files generated by this
    script in your LaTeX document is to add the following lines in your
    LaTeX file:

        \def\bibfile{file}  % basename of your BibTeX main file - here 'file.bib'

        % Summary of the publications

        % Detailed list

    It appeared difficult to distinguish BibTeX entries related to
    international conferences, national conferences with or without
    reviews/proceedings: you probably refer to them using a BibTeX entry as

            author =    {xx},
            title =     {xx},
            booktitle = {xx},
            pages =     {xx -- xx},
            year =      {20xx},

    To distinguish these "InProceedings" entries, **
    detect the eventual presence of a specific directive "type = {xx}" where
    "xx" can have one of the following values: "national", "noreview" and
    "noproceedings". The absence of this directive (as in the above BibTeX
    entry) is equivalent to specifying the value "default".

    Then the splitting of the bibliography will lead to the creation of the
    files "__sub_file_inproceedings_default.bib",

    Of course, if you don't use this technics, all your "InProceedings"
    entries will be grouped in the file

    If you don't like the way each publication category is labelled, feel
    free to adapt the values (not the keys!) of the %titles hash table in

    Changing the order of the pairs <"key", "value" > in this hash will
    change the order of the corresponding sections in the summary table and
    the detailed list.


This project is released under the terms of the CC by-nc-sa licence.


Based on a work hosted on GitHub.


That's quite simple:

  1. Fork it
  2. Create your own feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request