Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

When editing documents it is convenient to have all the lines on a page numbered (on the left margin) so that the reviewer can refer to them in his report. How can I achieve this with LaTeX?

share|improve this question
2  
This questions seems to be a duplicate of How to number all lines in a draft?, which didn't got answered. However, it links to How to add paragraph line number in right margin which seems to doing it. Basically use the lineno package. However, it might skip some lines. Edit: See also Lineno - numbering abstract's lines. –  Martin Scharrer Apr 17 '11 at 16:42
    
@Martin Scharrer I saw the article, but I am interested in numbering all the lines, i.e. not just the paragraph. –  Yiannis Lazarides Apr 17 '11 at 16:50

2 Answers 2

up vote 7 down vote accepted

A slightly different approach to that of the faq pointed out by Lockstep.

Firsty, we need to build a box 3em wide to hold the numbers of all the lines. This box will be later positioned at the left margin and unboxed.

 \newsavebox{\@linebox}
 \savebox{\@linebox}[3em][t]{\parbox[t]{3em}{%
   \@tempcnta\@ne\relax
   \loop{\underline{\scriptsize\the\@tempcnta}}\\
     \advance\@tempcnta by \@ne\ifnum\@tempcnta<48\repeat}}

We use Knuth's loop to generate the line numbers. We can position the box and typeset the line numbers by using thr \put command from the LaTeX's picture environment (although TikZ afficionados can use TikZ). As we need this box on every page, we use the fancyhdr package to achieve this, rather than messing with the output routines. Other possibilities is the background package etc.

\fancyhead[LO]{%
\begin{picture}(0,0)%
  \put(-18,-25){\usebox{\@linebox}}%
 \end{picture}}

You should place the whole code within a conditional to switch between draft and final mode, depending on your class. The full minimal is shown below.

\documentclass[10pt]{article}
\usepackage{fancyhdr,lipsum}
\makeatletter

 \newsavebox{\@linebox}
 \savebox{\@linebox}[3em][t]{\parbox[t]{3em}{%
   \@tempcnta\@ne\relax
   \loop{\underline{\scriptsize\the\@tempcnta}}\\
     \advance\@tempcnta by \@ne\ifnum\@tempcnta<48\repeat}}

 \pagestyle{fancy}
 \fancyhead{}
 \fancyfoot{}
 \fancyhead[CO]{\scriptsize How to Count Lines}
 \fancyhead[RO,LE]{\footnotesize\thepage}
%% insert this block within a conditional
 \fancyhead[LE]{\footnotesize\thepage\begin{picture}(0,0)%
      \put(-26,-25){\usebox{\@linebox}}%
      \end{picture}}

 \fancyhead[LO]{%
    \begin{picture}(0,0)%
      \put(-18,-25){\usebox{\@linebox}}%
     \end{picture}}
\fancyfoot[C]{\scriptsize Draft copy}
%% end conditional
\makeatother
\begin{document}
\section*{Lorem Ipsum}
\lipsum
\end{document}
share|improve this answer

As Martin Scharrer has pointed out -- and to answer the general question once and for all --: Use the lineno package. (The package allows to number every line, as shown in its documentation.) See this entry of the UK TeX FAQ for possible pitfalls and alternatives.

share|improve this answer
    
+1 for the TeX FAQ link. –  Martin Scharrer Apr 17 '11 at 16:57
    
@Martin: I was hesitant to answer at all, but the existing questions tagged with {line-numbering} weren't general. So I decided that the FAQ link would add some value to my answer. –  lockstep Apr 17 '11 at 16:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.