In July the first version of the todonotes package were uploaded to the CTAN network [1]. After that I have received several requests for improvements, some have already been addressed and others are waiting to get time for implementing. To secure the source of the package I have started to use the github.com service, which allow open source projects to get free source code version control using the git software. The repository can be found at [2].
Best
Henrik
[1] http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/todonotes.html
[2] http://github.com/henrikmidtiby/todonotes/tree/master
Showing posts with label latex. Show all posts
Showing posts with label latex. Show all posts
Thursday, February 5, 2009
Monday, July 28, 2008
Todonotes version 2008-07-28
The todonotes package has now hit CTAN (the Comprehensive TeX Archive Network) and can be found at http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/todonotes.html.

Recently I have received some ideas for improvements (thanks a lot!!!) of my todonotes package for latex. This has lead to a new version of the todonotes package with an improved handling of options (now for both the package and the individual todo command.)
The todonotes package lets you insert small notes in your latex document by the \todo{} command.
Options to the package:
Options to the todo command:
Known issues:
Source code and examples
todonotes.sty : http://pastebin.com/f749c073f (updated file) http://pastebin.com/f6a477b17 (original posted file)
exampledocument.tex : http://pastebin.com/f56db437a

Recently I have received some ideas for improvements (thanks a lot!!!) of my todonotes package for latex. This has lead to a new version of the todonotes package with an improved handling of options (now for both the package and the individual todo command.)
The todonotes package lets you insert small notes in your latex document by the \todo{} command.
Options to the package:
- disable Make it possible to disable the functionality of the package. If this option is given, the
- colorinlistoftodos Show small boxes in the list of todos with the color of the inserted todonotes.
- dvistyle The default style behaves bad when compiled with latex (some text placement problems). The dvistyle option, changes the visual behavior to avoid this text placement problem.
- color Sets the default background color of the todonotes
- bordercolor Sets the border color of the todonotes
- textwidth Sets the width of the todonotes
commands \todo{} and \listoftodos are defined as commands with no effect. (But you can still
compile you document with these commands).
Options to the todo command:
- color Sets the background color of the todonote
- size Changes the relative size of the todonote
- list / nolist (default: list) Toggles whether the todo item is shown in the list of todos
- inline / noinline (default: noinline) Toggles inline view of the todonote
- line / noline (default: line) Toggles a line that connects the insertion point of the todonote with the note in the margin
Known issues:
- Rendering differences between pdflatex and latex for items in the list of todos (latex do not break long lines, pdflatex does)
Source code and examples
todonotes.sty : http://pastebin.com/f749c073f (updated file) http://pastebin.com/f6a477b17 (original posted file)
exampledocument.tex : http://pastebin.com/f56db437a
Thursday, May 15, 2008
Updated todonotes package
The package has been updated, find the new version at http://midtiby.blogspot.com/2008/07/todonotes-version-2008-07-28.html.
In response to a request for making an option for the text width of the todonote, I have updated the todonotes package, including defining some additional options.
The package makes the following commands available
I hope you'll find this useful. If you notice some rough edges / bugs let me hear, I might be able to get rid of them then.
Best
Henrik
The source code of the package is given below, and below of that the code for the sample document (the image at the top) is given.
And the code for the sample document
In response to a request for making an option for the text width of the todonote, I have updated the todonotes package, including defining some additional options.The package makes the following commands available
- \todo{}
- \listoftodos
- disable, if given the available commands have no effect
- dvistyle, another layout of the todonotes which properly places the todo notes text when the document is compiled with latex and not pdflatex
- color=value, sets the background color of the notes to value. Value is a color defined using the xcolor package
- bordercolor=value, sets the border color of the notes to value
- textwidth=value, sets the total width of the todonote to value. Value is a length.
I hope you'll find this useful. If you notice some rough edges / bugs let me hear, I might be able to get rid of them then.
Best
Henrik
The source code of the package is given below, and below of that the code for the sample document (the image at the top) is given.
% todonotes.sty
% ====================
% Part: Identification
% ====================
\ProvidesPackage{todonotes}[2008/05/15]
% ==============================
% Part: The package loading part
% ==============================
% Loads the packages that todonotes depends on.
\RequirePackage{ifthen}
\RequirePackage{xkeyval}
\RequirePackage{hyperref}
\RequirePackage{tikz}
\RequirePackage{calc}
% ==================
% Part: Initial code
% ==================
% Here the default values are set
\newcommand{\@backgroundcolor}{orange}
\newcommand{\@bordercolor}{black}
\newcommand{\@textwidth}{3cm}
% ================================
% Part: The declaration of options
% ================================
% In this part the various options for
% the package are defined.
% Make it possible to disable the functionality
% of the package. If this option is given, the
% commands \todo{} and \listoftodos are defined
% as commands with no effect. (But you can still
% compile you document with these commands).
\newif{\ifdisabled}
\DeclareOptionX{disable}{\disabledtrue}
% The default style behaves bad when compiled
% with latex (some text placement problems).
% The dvistyle option, changes the visual behavior
% to avoid this text placement problem.
\newif{\ifdviStyle}
\DeclareOptionX{dvistyle}{\dviStyletrue}
% Make the background color of the notes as
% an option.
\define@key{todonotes.sty}%
{color}{\renewcommand{\@backgroundcolor}{#1}}
% Make the color of the notes box color as
% an option.
\define@key{todonotes.sty}%
{bordercolor}{\renewcommand{\@bordercolor}{#1}}
% Make the text width as an option.
\define@key{todonotes.sty}%
{textwidth}{\renewcommand{\@textwidth}{#1}}
% Finally process the given options.
\ProcessOptionsX
% ========================
% Part: The main code part
% ========================
\ifdisabled
% If the option "disable" was passed to the package
% define two empty commands.
\newcommand{\listoftodos}{}
\newcommand{\todo}{}
\else
% Define the list of todos command
\newcommand{\listoftodos}
{\section*{Todo list} \@starttoc{tdo}}
\newcommand{\l@todo}
{\@dottedtocline{1}{0em}{2.3em}}
% Define styles used by the todo command
\tikzstyle{notestyle} = [
draw=\@bordercolor,
line width=0.5pt,
fill=\@backgroundcolor,
text width = \@textwidth - 1.6 ex - 1pt,
inner sep = 0.8 ex]
\tikzstyle{notestyleleft} = [notestyle]
\tikzstyle{connectstyle} = [
draw = \@backgroundcolor,
thick]
% Define the todo command
\newcommand{\todo}[1]{%
% Add to todo list
\addcontentsline{tdo}{todo}{\protect{#1}}%
%
% Remember where we are
\begin{tikzpicture}[remember picture, baseline=-0.75ex]%
\node [coordinate] (inText) {};%
\end{tikzpicture}%
%
% Make the margin par
\marginpar {% Draw note in right margin
\ifdviStyle%
% Using dviStyle
\tikz[remember picture] \draw node[notestyle] {}; \\ %
\begin{minipage}{\@textwidth}%
#1%
\end{minipage} \\%
\tikz[remember picture] \draw node[notestyle] (inNote) {};%
\begin{tikzpicture}[remember picture, overlay]%
\draw[connectstyle]%
([yshift=-0.2cm] inText)%
-| ([xshift=-0.2cm] inNote.west)%
-| (inNote.west);%
\end{tikzpicture}%
\else%
% Using normal style (non dviStyle)
\tikz[remember picture] \draw node[notestyle] (inNote) {#1};%
\begin{tikzpicture}[remember picture, overlay]%
\draw[connectstyle]%
([yshift=-0.2cm] inText)%
-| ([xshift=-0.2cm] inNote.west)%
-| (inNote.west);%
\end{tikzpicture}%
\fi % Ending \ifdviStyle
}%
}%
\fi % Ending \ifdisabled
And the code for the sample document
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{todonotes}
\begin{document}
\listoftodos
\section{The text}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam quam
quam, sodales vel, iaculis at, varius fringilla, urna. Cras urna.
\todo{A simple ting to do.}%
Morbi lorem eros, ullam\-corper id, egestas ac, interdum eu, nunc. Nam
enim eros, sodales at, dapibus eget, semper nec, augue. Morbi orci
\todo{Something much more difficult to explain. So it takes several
lines in the todo note and in the list of to do's.}%
orci, tincidunt ac, pellentesque vel, facilisis et, dolor. Nunc nec
mauris eu felis fringilla dictum.
Donec ornare, mauris in posuere
faucibus, lacus enim luctus nibh, vitae vestibulum sapien purus id
nisl. Morbi non dolor non odio ornare faucibus. Proin in purus.
\todo{There is still something to update in this document.}%
Vivamus nulla sem, eleifend ac, lacinia suscipit, facilisis a, est.
Mauris vitae purus. Donec ullamcorper, magna vitae sodales semper,
elit diam adipiscing neque, quis mattis ante orci a orci. Mauris eu
mauris non arcu pharetra euismod. Duis non elit. Etiam faucibus,
mauris quis mollis lobortis, mauris sem feugiat dolor, sit amet
porta libero lectus non erat. Donec cursus pede in tellus. Fusce
egestas. Aenean ut nisl.
Fusce eu arcu. Aliquam ultrices, turpis in facilisis lobortis, enim
massa bibendum ante, id blandit purus sapien non eros. Aenean
sodales ante eu magna. Proin vestibulum dolor auctor erat. Maecenas
at neque. Fusce ante odio, sollicitudin eget, cursus condimentum,
egestas in, urna.
Suspendisse rutrum eros. Phasellus suscipit velit
non nunc. Donec sollicitudin erat non dui. Aenean nec turpis. Aenean
pellentesque porta ipsum. Mauris eget nulla eu nunc pellentesque
sollicitudin. Pellentesque lacus. Fusce vehicula orci quis libero.
Vivamus consequat. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Cras hendrerit elit. In
hac habitasse platea dictumst. Phasellus rhoncus massa non ipsum.
\end{document}
Thursday, April 24, 2008
Introduktionkursus til LaTeX
Den 30. april skal jeg afholde et introduktions kursus i latex for IDA på Ingeniør Højskolen i København. Her på denne side vil jeg samle henvisninger til de materialer der skal benyttes under kurset.
Forskellige ressourcer
Latex skabeloner
Forskellige mindre latex opgaver
Windows
Installing latex on windows
This requires that latex (eg. MikTeX) has been installed.
Linux
Installing latex on linux (ubuntu)
Forskellige ressourcer
Latex skabeloner
- Min nuværende latex skabelon, hent den her.
- En ældre skabelon, hent den her.
- En ældre skabelon til MAC, hent den her.
- The not so short introduction to latex, link.
- Short math guide for latex, link.
- The comprehensive latex symbol list, link.
Forskellige mindre latex opgaver
- Skrivning af matematik, hent det her.
- Overskrifter og indholdsfortegnelse, hent det her.
- Referencer og litteraturliste, hent det her.
- Lister i latex, hent det her.
- Spalter og figurer inde i teksten, hent det her.
Windows
Installing latex on windows
- Download MikTeX from here.
- Run the installer.
- Start -> All programs -> MikTeX ->
This requires that latex (eg. MikTeX) has been installed.
- Download TexnicCenter from: here
- Run the installer.
- Set path to your MikTeX installation (something like "C:\Programmer\MiKTeX 2.6\miktex\bin\")
- Select output profile: "LaTeX => PDF"
- Extract my template document and open the file doc\project.tex in TexnicCenter and try to compile it with pdflatex.
- During the compilation miktex will ask for permission to install some required packages (fancyhdr, listings, caption, subfig, pgf, xcolor, xkeyval)
- In case of trouble install the missing packages via: Start -> All program -> MikTeX 2.6 -> Browse packages
- Your document should now have been compiled, examine the generated .pdf file.
Linux
Installing latex on linux (ubuntu)
- Install the packages: texlive
- Install kile
Sunday, October 7, 2007
Introduction to LaTeX
Thursday october the 11th, I will be teaching at an introductory course in latex. The course will be held at University of Southern Denmark at the campus in Odense. This blogpost will be used to gather information which is relevant for this course.
Windows
Installing latex on windows
This requires that latex (eg. MikTeX) has been installed.
Installing latex on linux (ubuntu)
Latex templates
Latex references
Windows
Installing latex on windows
- Download MikTeX from here.
- Run the installer.
- Start -> All programs -> MikTeX ->
This requires that latex (eg. MikTeX) has been installed.
- Download TexnicCenter from: here (wrong link given during the course here).
- Run the installer.
- Set path to your MikTeX installation (something like "C:\Programmer\MiKTeX 2.6\miktex\bin\")
- Select output profile: "LaTeX => PDF"
- Extract my template document and open the file doc\project.tex in Texmaker and try to compile it with pdflatex.
- During the compilation miktex will ask for permission to install some required packages (fancyhdr, listings, caption, subfig, pgf, xcolor, xkeyval)
- In case of trouble install the missing packages via: Start -> All program -> MikTeX 2.6 -> Browse packages
- Your document should now have been compiled, examine the generated .pdf file.
Installing latex on linux (ubuntu)
- Install the packages: texlive
- Install kile
Latex templates
Latex references
- The not so short introduction to latex, link.
- The comprehensive latex symbol list, link.
- Short math guide for latex, link.
Friday, September 14, 2007
Todo notes in Latex
An updated version of the code below can be found at http://midtiby.blogspot.com/2008/05/updated-todonotes-package.html.This is a description of how to place todo notes in your latex document, and how to collect the content of these in a structure like a table of contents (eg. a list of things todo)
A year and a half ago, when I wrote my bachelor report, I had a need to mark needed changes in the margin of a latex document. I wanted to place a note in the margin with a command like
\todo{Something that has to be done}
The solution was to use the marginpar command, in the definition below
\newcommand{\todo}[1]{\marginpar{#1}}
Later this approach was improved by generating a list of these todo items. The behavior of \todo was now to print something in the margin and add an item in the todolist.
\newcommand{\todo}[1]{
\addcontentsline{tdo}{todo}{\protect{#1}}
\marginpar{#1}
}
Additionally I defined a command to generate the list of todos.
\makeatletter \newcommand \listoftodos{\section*{Todo list} \@starttoc{tdo}}
\newcommand\l@todo[2]
{\par\noindent \textit{#2}, \parbox{10cm}{#1}\par} \makeatother
Now the list of todo's could be inserted by using the command
\listoftodos
For some time ago, I began reading about the portable graphics format (PGF) and wanted to tinker a bit with it. PGF is a great tool for generating graphics for latex documents (you can find a lot of examples at www.fauskes.net/pgftikzexamples/.) Especially the possibility of overlaying your existing text with graphics were interesting.
One of the results is this improved todo note code for latex.
\newcommand{\todo}[1]{
% Add to todo list
\addcontentsline{tdo}{todo}{\protect{#1}}
%
\begin{tikzpicture}[remember picture, baseline=-0.75ex]
\node [coordinate] (inText) {};
\end{tikzpicture}
%
% Make the margin par
\marginpar{
\begin{tikzpicture}[remember picture]
\definecolor{orange}{rgb}{1,0.5,0}
\draw node[draw=black, fill=orange, text width = 3cm] (inNote)
{#1};
\end{tikzpicture}
}
%
\begin{tikzpicture}[remember picture, overlay]
\draw[draw = orange, thick]
([yshift=-0.2cm] inText)
-| ([xshift=-0.2cm] inNote.west)
-| (inNote.west);
\end{tikzpicture}
%
}
Currently there are a minor glitch of the code, at the location of the \todo command latex inserts a large amount of space, which I would like to avoid.
I use this piece of code myself, but if any of you would like to use it you should be welcome. Comments or ideas for improving the code are of cause welcome
Henrik
Subscribe to:
Posts (Atom)