Use Rulers for Measurement in LaTeX Document

Jan. 10, 2025

The scrlayer package

We can use scrlayer package1 to place rulers around the page for measurement. It is realized through specifications by \DeclareNewLayer (mainly the option contents=\layercontentsmeasure of it) and \DeclareNewPageStyleByLayers command in the preamble and \pagestyle command in the document body. Here are six examples2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}
\usepackage{showframe}
  
\usepackage{scrlayer}

% Test basic settings
\DeclareNewLayer[
	foreground,
	contents=\layercontentsmeasure,
]{measurelayer1}
\DeclareNewPageStyleByLayers{measurestyle1}{measurelayer1}

% Test option of *innermargin*
\DeclareNewLayer[
	foreground,
	innermargin,
	contents=\layercontentsmeasure,
]{measurelayer2}
\DeclareNewPageStyleByLayers{measurestyle2}{measurelayer2}

% Test option of *width*
\DeclareNewLayer[
	foreground,
	innermargin,
	width=3cm,
	contents=\layercontentsmeasure,
]{measurelayer3}
\DeclareNewPageStyleByLayers{measurestyle3}{measurelayer3}

% Test option of *height*
\DeclareNewLayer[
	foreground,
	innermargin,
	width=3cm,
	height=10cm,
	contents=\layercontentsmeasure,
]{measurelayer4}
\DeclareNewPageStyleByLayers{measurestyle4}{measurelayer4}

% Test option of *hoffset* and *voffset*
\DeclareNewLayer[
	foreground,
	innermargin,
	width=3cm,
	height=10cm,
	hoffset=2cm,
	voffset=2cm,
	contents=\layercontentsmeasure,
]{measurelayer5}
\DeclareNewPageStyleByLayers{measurestyle5}{measurelayer5}	

% Test option of *topmargin*
\DeclareNewLayer[
	foreground,
	topmargin,
	height=5cm,
	contents=\layercontentsmeasure,
]{measurelayer6}
\DeclareNewPageStyleByLayers{measurestyle6}{measurelayer6}	

\usepackage{lipsum}
\newcommand{\mylipsum}{\lipsum[1-7]}

\begin{document}
\pagestyle{measurestyle1}
\clearpage
\section{Test basic settings}
\mylipsum

\newpage
\pagestyle{measurestyle2}
\clearpage
\section{Test option of \textit{innermargin}}
\mylipsum

\newpage
\pagestyle{measurestyle3}
\clearpage
\section{Test option of \textit{width}}
\mylipsum

\newpage
\pagestyle{measurestyle4}
\clearpage
\section{Test option of \textit{height}}
\mylipsum

\newpage
\pagestyle{measurestyle5}
\clearpage
\section{Test option of \textit{hoffset} and \textit{voffset}}
\mylipsum

\newpage
\pagestyle{measurestyle6}
\clearpage
\section{Test option of \textit{topmargin}}
\mylipsum

\end{document}

img-1

img-2

img-3

img-4

img-5

img-6

We also can use them together with eso-pic package34 to better measure some certain distances among the text.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}

\usepackage[grid,
	gridcolor=black!20,
	subgridcolor=black!20,
	gridunit=cm]{eso-pic}
\usepackage{scrlayer}

\usepackage{lipsum}
\newcommand{\mylipsum}{\lipsum[1-17]}

\DeclareNewLayer[
	foreground,
	contents=\layercontentsmeasure,
]{measurelayer}
\DeclareNewPageStyleByLayers{measurestyle}{measurelayer}

\begin{document}
\pagestyle{measurestyle}
\clearpage
\mylipsum
\end{document}

img-1

img-2


The fgruler package

Another way of placing rulers is by importing fgruler package56 with certain option like \usepackage[type=upperleft]{fgruler}, which way is more convenient and professional.

1
2
3
4
5
6
7
8
9
10
11
12
13
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}
\usepackage[type=upperleft]{fgruler}
\usepackage{showframe}

\usepackage{lipsum}
\newcommand{\mylipsum}{\lipsum[1-17]}

\begin{document}
\mylipsum
\end{document}

img-1

img-2

The fgruler package documentation5 also provides some examples to show how to use various rulers in the main text:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}
\usepackage[type=none]{fgruler}

\setlength\parindent{0pt}

\begin{document}
\thispagestyle{empty}

\rulerparams{}{}{red}{}{3pt}
\ruler{rightdown}{3cm}
\hfill
\ruler{rightup}{3cm}
\hfill
\ruler{leftup}{3cm}
\hfill
\ruler{leftdown}{3cm}

\vfill

\rulerparams{}{}{green}{}{}
{\rulernorotatenum\ruler{upright}{3cm}}
\hfill
\ruler{downright}{3cm}
\hfill
\ruler{upleft}{3cm}
\hfill
\ruler{downleft}{3cm}

\vfill

\rulerparams{}{}{blue!50!black}{}{}
{\rulernorotatenum\fgrulercaptioncm{}\squareruler{upperleft}{2cm}{3cm}}
\hfill
\squareruler{lowerright}{2cm}{3cm}
\hfill
\squareruler{lowerleft}{2cm}{3cm}
\hfill
\squareruler{upperright}{2cm}{3cm}
\hfill
{\rulerparams{}{\footnotesize\bfseries\color{red}}{}{5mm}{}
\squareruler[in]{lowerleft}{2in}{3cm}}

\vfill

{\fgrulerdefnum{\rotatebox{45}{\arabic{fgrulernum}\,cm}}
\fgrulercaptioncm{}
\rulerparams{}{\tiny\color{red}}{blue}{8mm}{}
\fgrulercolorcm{}{}{black}
\rotatebox{-45}{\ruler{rightup}{10cm}}
\ruler{rightup}{5cm}}
\end{document}

img-1

and that of a coordinate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}
\usepackage[type=none]{fgruler}

\setlength\parindent{0pt}

\begin{document}
\thispagestyle{empty}

\rulernorotatenum
\fgrulercaptioncm{}
\fgrulercolorcm{}{}{red}
\rulerparams{}{\scriptsize\color{red}}{}{}{}
{\fgrulerdefnum{$-\arabic{fgrulernum}$}\squareruler*{upperright}{3cm}{3cm}}%
\squareruler{lowerleft}{13cm}{6cm}
\end{document}

img-1

We can use these rulers and coordinate to measure distances more flexibly, for example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage[x11names]{xcolor}
\pagecolor{AntiqueWhite1}
\usepackage[type=none]{fgruler}
\usepackage{lipsum}

\begin{document}
\thispagestyle{empty}

\lipsum[1-8]

\vspace{-60em}\hspace{5em}
\rulerparams{}{}{red}{}{3pt}
\ruler{rightdown}{7cm}

\vspace{2em}\hspace{5em}
\rulernorotatenum
\fgrulercaptioncm{}
\fgrulercolorcm{}{}{blue}
\rulerparams{}{\scriptsize\color{blue}}{blue}{}{}
{\fgrulerdefnum{$-\arabic{fgrulernum}$}\squareruler*{upperright}{3cm}{3cm}}%
\squareruler{lowerleft}{7cm}{7cm}
\end{document}

img-1


References