# Beamer Presentation+Laser cursor option

A desperate Math educator here. With covid19 the teach from home is turning into a sour experience for me. Usually, I prepare all of my documents and presentations on latex. I am on Windows 10 (64-bit), I use TeXstudio (2.12.22) and have the MiKTeX (2.9) package.

My issue is that when doing PowerPoint presentation through beamer, the pdf file I obtain does not provide for a laser cursor when I am in presentation mode like for instance, Microsoft PowerPoint would. I have tried to change my cursor via the windows system to emulate a laser pointer instead of the arrow. It was successful until I went in presentation mode(i.e. in fullscreen) on my pdf file. I always end up with that hand with an arrow in the middle which is not ideal because I am recording my presentation and sending it to my students. I have looked at an alternative pdf reader in Sumatra pdf but not much luck there too.

Right now I am either forced to convert my beautiful presentations to pictures then feed it to PowerPoint (this is quite some work) or use online websites that convert pdf to ppt files (that's easier, but not ideal the quality is just horrible). After a couple of weeks at this pace, I am starting to burnout. Any suggestion or unknown feature that exists in latex that could allow me to get the laser pointer when doing a presentation with my pdf files.

The stupid hand symbol in FullScreen mode of Acrobat Reader is a nuisance.

I filed a feature request to Adobe several years ago in the hope to get something more suitable. Even an ordinary arrow would fit better than the hand. Alas, it was ignored. In older AR versions it was possible to replace the compiled-in hand icon with an arrow icon using a resource editor. But this doesn't seem to be possible anymore.

Update: cursor hidden after 3 s timeout; brighter laser dot.

As a workaround I'd suggest to compile the LaTeX source to SVG instead of PDF and use a web browser for display, such as Chromium, Chrome or Firefox. They all provide a FullScreen mode that can be accessed with F11. Moreover, these browsers are available on many platforms and for all major OS. As a bonus, they allow for embedded multimedia playback everywhere, which is not a widely spread capability among PDF viewers. And, most importantly, they all have the usual arrow in presentation mode.

With SVG, as Martin puts it in his comment, an arbitrary image file can be used as a cursor, such as this one , which was made with TikZ.

pdflatex laserdot
convert -geometry 20 -density 150 laserdot.pdf laserdot.png


laserdot.tex:

\documentclass[tikz,border=1pt]{standalone}

\begin{document}
\tikz {
}
\end{document}


In SVG, laserdot.png is set as cursor icon by means of the CSS attribute cursor:

svg { cursor: url('laserdot.png') , auto ; }


Complete example:

latex beamer-example
latex beamer-example
dvisvgm --bbox=papersize --font-format=woff2 --zoom=-1 --page=-  beamer-example


beamer-example.tex:

\documentclass[dvisvgm,hypertex,aspectratio=169]{beamer}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric,calc}

\usefonttheme{serif}
\usepackage[T1]{fontenc}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PageDown, PageUp key event handling; navigation symbols <--, -->
% setting laserdot.png as cursor icon
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[totpages]{zref}
\usepackage{atbegshi}
\usepackage{tikz}
\usepgflibrary{arrows.meta}
\def\navBtnSize{9pt}
\def\navBtnLnWd{1.6pt}
\AtBeginShipout{%
\special{dvisvgm:raw
<style> svg {cursor: none} </style>
<defs>%
<script type="text/javascript">%
<![CDATA[%
var svgRoot=document.getElementsByTagName('svg')[0];
var cursorTimer;
svgRoot.style.cursor='url("laserdot.png"), auto';
try{clearTimeout(cursorTimer);}catch(err){};
cursorTimer=setTimeout(function(){svgRoot.style.cursor='none';},3000);
});
if(e.key=='PageDown'||e.key=='ArrowDown'||e.key=='ArrowRight'){%
\ifnum\thepage<\ztotpages
document.location.replace('\jobname-\the\numexpr\thepage+1\relax.svg');%
\fi%
}else if(e.key=='PageUp'||e.key=='ArrowUp'||e.key=='ArrowLeft'){%
\ifnum\thepage>1
document.location.replace('\jobname-\the\numexpr\thepage-1\relax.svg');%
\fi%
}%
});%
]]>%
</script>%
</defs>%
}%
}%
\AtBeginShipoutUpperLeftForeground{%
\raisebox{-\dimexpr\height+0.5ex\relax}[0pt][0pt]{\makebox[\paperwidth][r]{%
\color{structure!40!}%
\ifnum\thepage>1%
\href{\jobname-\the\numexpr\thepage-1\relax.svg}{%
\tikz{
\filldraw[black!0!] (-1pt,-\dimexpr\navBtnSize/2+1pt\relax)
rectangle (\dimexpr\navBtnSize+1pt\relax,\dimexpr\navBtnSize/2+1pt\relax);
\draw[{Straight Barb[round]}-,line width=\navBtnLnWd] (-1pt,0)--(\navBtnSize,0);}}%
\else%
\textcolor{lightgray}{\tikz{
\filldraw[black!0!] (-1pt,-\dimexpr\navBtnSize/2+1pt\relax)
rectangle (\dimexpr\navBtnSize+1pt\relax,\dimexpr\navBtnSize/2+1pt\relax);
\draw[{Straight Barb[round]}-,line width=\navBtnLnWd] (-1pt,0)--(\navBtnSize,0);}}%
\fi\hspace{0.5ex}%
\ifnum\thepage<\ztotpages%
\href{\jobname-\the\numexpr\thepage+1\relax.svg}{%
\tikz{
\filldraw[black!0!] (-1pt,-\dimexpr\navBtnSize/2+1pt\relax)
rectangle (\dimexpr\navBtnSize+1pt\relax,\dimexpr\navBtnSize/2+1pt\relax);
\draw[-{Straight Barb[round]},line width=\navBtnLnWd] (-1pt,0)--(\navBtnSize,0);}}%
\else%
\textcolor{lightgray}{\tikz{
\filldraw[black!0!] (-1pt,-\dimexpr\navBtnSize/2+1pt\relax)
rectangle (\dimexpr\navBtnSize+1pt\relax,\dimexpr\navBtnSize/2+1pt\relax);
\draw[-{Straight Barb[round]},line width=\navBtnLnWd] (-1pt,0)--(\navBtnSize,0);}}%
\fi%
\hspace{0.5ex}%
}}%
}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{frame}{Some geometric shapes}

\begin{tikzpicture}[x=2cm,y=2cm]
\foreach \a in {3,...,8}{
\node[regular polygon, regular polygon sides=\a, fill=red,
inner sep=0.3535cm] at (\a,2) {};
}
\foreach \a in {9,...,14}{
\node[regular polygon, regular polygon sides=\a, fill=blue,
inner sep=0.3535cm] at ($(\a,0)-(6,0)$) {};
}
\end{tikzpicture}

\end{frame}

\end{document}


More examples for beamer-class presentations in SVG:

Using the animate package without Adobe

• With CSS attribute cursor and a proper image file you could even change the cursor to a laser pointer dot. Just add svg {cursor: url("/path/to/image/file"), auto} to the style sections of the svg files. Apr 17, 2020 at 16:54
• @Martin : Thank you! I added an example that makes use of your suggestion. Apr 19, 2020 at 17:20
• Great, looks nice! Apr 20, 2020 at 18:11

I understand your situation. I am a linux user but I would encourage you to try using Xournal++ (in its Annotate PDF mode) to display your presentation, and OBS Studio to record it. Both of these appear to be cross-platform.

I like Xournal++ because I can use the mouse (or a tablet, if you have one) to draw lines and shapes while recording, and I can type additional text on the slide. You can create a blank slide on the fly and draw on it if you like.

OBS allows you to combine video and audio sources, so you can show a small webcam image of yourself in the corner of your slides while presenting or easily switch to show a document camera or the screen output of some other application.

This is not about beamer, but you could use the Firefox built in PDF Reader. It also has a fullscreen/presentation mode. With this bookmarklet, you can add a red laser cursor (encoded as a data URI in the code):

javascript:void%20function(){document.head.innerHTML+=%22%3Cstyle%3E%20*%20%20{%20cursor:%20url(data:image/png;base64,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),%20auto%20!important;%20}%20%3C/style%3E%22}();


To use it, create a new bookmark and paste this as its URL.

Thanks for the valuable inputs. I have done some more research over the weekend and I came up with Ghaaiho pdf reader. And it has the inbuilt laser pointer option instead of the stupid hand thing. I am using the free version. You can pay for the premium perks. But, for me, the free version is enough. Thanks again.

• According to @Martin, an arbitrary cursor can be set in SVG. I added an example. Apr 19, 2020 at 17:22