Generando uuid aleatorio en xelatex

Generando uuid aleatorio en xelatex

¿Existe una forma sencilla de generar un identificador único como uuids aleatorios en XeLaTeX con un paquete o un script LaTeX simple que no necesita ningún comando externo para ejecutarse?

Respuesta1

Dado que XeTeX actualmente no tiene soporte nativo para números aleatorios, necesitamos random.tex; también binhex.texayuda.

\documentclass{article}

\input{random}
\input{binhex}

\makeatletter
\newcount\temp@uuid
\newcommand{\makeUUID}[1]{%
  \@ifdefinable{#1}{\make@UUID{#1}}%
}
\newcommand{\make@UUID}[1]{%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{\nhex{4}{\temp@uuid}}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}-}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}-}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}-}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}-}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}}%
  \setrannum{\temp@uuid}{0}{"10000}%
  \edef#1{#1\nhex{4}{\temp@uuid}}%
  % remove the following three lines if you're happy with uppercase hex digits
  \lowercase\expandafter{%
    \expandafter\def\expandafter#1\expandafter{#1}%
  }%
}
\makeatother

\makeUUID\foo
\makeUUID\baz

\begin{document}

\ttfamily

\foo

\baz

\end{document}

ingrese la descripción de la imagen aquí

información relacionada