Is there a simple way to add todo notes to LaTeX documents ?
I would like to have these notes in red in the generated pdf and a simple syntax to write them.
Is there a simple way to add todo notes to LaTeX documents ?
I would like to have these notes in red in the generated pdf and a simple syntax to write them.
There is a todonotes
package that makes adding notes easy enough. They appear in the margins by default.
A simpler version, if you just want red text in the body of the text as notes is just to define a command \myworries
that makes its argument red.
\documentclass{article}
\usepackage{xcolor}
\newcommand\myworries[1]{\textcolor{red}{#1}}
\begin{document}
Here is some text.
\myworries{But I'm worried about the text}
\end{document}
And then if you want to hide the comments, just add the line \renewcommand\myworries[1]{}
below the \newcommand
. This will hide all your notes.
A third option is to use LaTeX's own \marginpar
command to put a paragraph in the margin. It's not great, but for little notes to yourself it's adequate.
Alan Munn, in the comments, has made me aware of another package todo
that seems to be simpler than todonotes
but a little more powerful than \marginpar
. Though I've not used it so I don't know for sure.
\marginpar[I'm on one side]{I'm on the other!}
So if you want just notes on the left side: \marginpar[note goes here]{}
Note the empty braces.
The todonotes
package mentioned above can be customized to show various types of notes. It is also possible to create a summary of all notes, for example at the end of the document. Here is an example:
\documentclass{article}
\usepackage{lipsum} % Dummytext
\usepackage{xargs} % Use more than one optional parameter in a new commands
\usepackage[pdftex,dvipsnames]{xcolor} % Coloured text etc.
%
\usepackage[colorinlistoftodos,prependcaption,textsize=tiny]{todonotes}
\newcommandx{\unsure}[2][1=]{\todo[linecolor=red,backgroundcolor=red!25,bordercolor=red,#1]{#2}}
\newcommandx{\change}[2][1=]{\todo[linecolor=blue,backgroundcolor=blue!25,bordercolor=blue,#1]{#2}}
\newcommandx{\info}[2][1=]{\todo[linecolor=OliveGreen,backgroundcolor=OliveGreen!25,bordercolor=OliveGreen,#1]{#2}}
\newcommandx{\improvement}[2][1=]{\todo[linecolor=Plum,backgroundcolor=Plum!25,bordercolor=Plum,#1]{#2}}
\newcommandx{\thiswillnotshow}[2][1=]{\todo[disable,#1]{#2}}
%
\begin{document}
\pagestyle{empty}
\todo[inline]{The original todo note withouth changed colours.\newline Here's another line.}
\lipsum[11]\unsure{Is this correct?}\unsure{I'm unsure about also!}
\lipsum[11]\change{Change this!}
\lipsum[11]\info{This can help me in chapter seven!}
\lipsum[11]\improvement{This really needs to be improved!\newline\newline What was I thinking?!}
\lipsum[11]
\thiswillnotshow{This is hidden since option `disable' is chosen!}
\improvement[inline]{The following section needs to be rewritten!}
\lipsum[11]
\newpage
\listoftodos[Notes]
\end{document}
This outputs the following text with notes:
And here is the summary page:
Notice the \thiswillnotshow
note which is disabled using the disable
option in the header. This can be used to turn off each type of note globally. Todonotes can also be used in the caption of tables and figures, though only provided that the inline
option is used with these notes.
\newcounter{todocounter} \newcommandx{\todocount}[2][1=]{\stepcounter{todocounter}\todo[linecolor=YellowGreen,backgroundcolor=YellowGreen!25,bordercolor=YellowGreen,#1]{\thetodocounter: #2}}
! Undefined control sequence. \set@color ->\pdfcolorstack \@pdfcolorstack push{\current@color }\aftergroup... l.1457 \color{black}
Also if fixed it looks like that: latex.informatik.uni-halle.de/latex-online/temp/…
Commented
Oct 14, 2019 at 9:46
see package cooltooltips
. When the cursor is over "This text" the blue window pops up.
The source code for this example:
\documentclass{article}
\usepackage{cooltooltips}
\usepackage{graphicx}
\usepackage{color}
\usepackage{hyperref}
\def\cool{\texttt{cool}}
\begin{document}
The \cool\ package enables a document to contain hyperlinks that pop
up a brief tooltip when the mouse moves over them and also open a
small window containing additional text. \cool\ works only with
pdf\LaTeX\@. Furthermore, the tooltips that \cool\ produces are much
less cool when viewed under older versions of Acrobat~($<7.0$) or the
current version of xpdf~(3.00) because they don't pop up the extra,
small window.
\cooltooltip[0 0 1]{Example}{This is an example of a cool tooltip.
Pretty cool, eh?}{http://www.ctan.org/}{Visit CTAN on the Web}{This text\strut}
%
is an example of a cool tooltip (assuming
you're viewing this document with a sufficiently capable \textsc{pdf}
reader). Move your mouse pointer over it and watch what happens.
Then, click on the link. If your \textsc{pdf} reader is properly
configured it should launch a Web browser and send it to the
\textsc{ctan} home page.
\end{document}
Another possibility is the fixme
package. It supports several ways of outputting the notes. You can have them directly inside the text, in the page margin, or as a list at the end of the document. You can even combine the methods.
It comes with support for different authors and different levels of severity. "Notes" and "comments" will simply be ignored if you compile the document with final
option, while "errors" will produce compilation errors. In draft
mode they will all be printed with different markup. Every author gets his/her own prefix, that is added to the note.
To avoid the risk to submit the paper with the todo notes, I throw a warning, so that each todo appears as a warning when I compile. The command is
\newcommand{\todo}[1]{\textcolor{red}{TODO: #1}\PackageWarning{TODO:}{#1!}}
\textcolor
requires \usepackage{color}
(or xcolor
)
Commented
Oct 31, 2017 at 20:50
\textcolor{red}{TODO: #1}
with {\color{red}TODO: #1}
Commented
Jan 18, 2018 at 13:49
\newenvironment{TODO}{\begingroup\color{red}}{\endgroup}
and warping the TODO block with \begin{TODO}
\end{TODO}
The todonotes
package suggested by MLC has colour built in.
The \todo
command can take several options, including color
. This voids the need for making own commands if you just want to quickly colour your notes.
The list of options can be found here: PDF
Examples:
\documentclass{article}
\usepackage{todonotes}
\begin{document}
\todo{default to-do}This is text that needs some attention.\\
\todo[inline]{Default inline to-do}
\todo[inline, color=green]{Green inline to-do}
\todo[inline, color=green!40]{Light green inline to-do}
\todo[inline, color=red]{Red inline to-do}
\todo[inline, color=red!40]{Light red inline to-do}
\end{document}
Output:
If you want the notes directly in PDF you may want to use PDF annotations with the pdfcomment package.
Take a look at the screenshots
https://github.com/kkew3/todo-tex
A Python3 solution that parses TODO notes in LaTeX source comments and outputs them on the terminal.
Sample from the GitHub page:
% myfile.tex
\documentclass{article}
\begin{document}
Superchiasmatic neucleus is the primary clock % continue later: forgot what to write now
\end{document}
$ todo-tex -lm
prints
./myfile.tex
[TODO] line 3: forgot what to write now
Supported TODO tags are todo, TODO, question, problem, continue here, continue later, continue ....
That list can easily be extended by editing the python script.
Check out easy-todo on http://www.ctan.org/tex-archive/macros/latex/contrib/easy-todo
This adds the todo message into the PDF and also shows up as a warning during compilation. It can be used without arguments or with an optional message.
\usepackage{xparse}
\makeatletter
\DeclareDocumentCommand\todo{g}{%
\def\@message{\IfNoValueTF{#1}{TODO}{TODO: #1}}
\textbf{\textcolor[HTML]{FF8811}{\@message}}
\@latex@warning{\@message}{}{}}
\makeatother
\begin{document}
Foo: \todo
Bar: \todo{message}
\end{document}