\usepackage[% indexonlyfirst% Show only the first use page on the list of acronyms ]{glossaries} \usepackage{xspace} % To avoid problems with missing spaces after custom commands % Set the list of acronyms style \newglossarystyle{dots}{% From https://tex.stackexchange.com/a/327513 \setglossarystyle{list}% Base style % \renewcommand*{\glossentry}[2]{% \item[% \upshape\bfseries% Upright and bold \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}% The acronym ]% \glossentrydesc{##1}% The description \unskip\leaders\hbox to 2.9mm{\hss.}\hfill##2}% The pages % \renewcommand*{\glsgroupskip}{}% No gap between groups } \setglossarystyle{dots} \makenoidxglossaries % Prepare the list of acronyms % Define the acronyms \newcommand{\acronym}[2]{% #1 = acronym, #2 = full name \newacronym{#1}{#1}{#2}% \expandafter\newcommand\csname #1\endcsname{% Create a command named after the acronym (call \#1) \gls{#1}\xspace% }% \expandafter\providecommand\csname #1s\endcsname{% Create a plural command (call \#1s) if not already defined \glspl{#1}\xspace% }% } \let\AE\undefined \let\v\undefined \acronym{AE}{augmented environment} \acronym{AR}{augmented reality} \acronym{h}{haptic} \acronym{HMD}{head-mounted display} \acronym{MR}{mixed reality} \acronym{OST}{optical see-through} \acronym{RE}{real environment} \acronym{RV}{reality-virtuality} \acronym{v}{visual} \acronym{VCA}{voice-coil actuator} \acronym{VE}{virtual environment} \acronym{vh}{visuo-haptic} \acronym{VO}{virtual object} \acronym{VR}{virtual reality} \acronym{VST}{visual see-through}