Usando o pacote \ today in \ hyperref
Postando uma pergunta pela primeira vez, por favor me avise se eu esqueci alguma coisa.
Estou trabalhando em um documento LaTeX e aqui está o que quero alcançar usando o pacote hyper ref:
Tenho um URL que está vinculado ao meu site e tem a data de hoje incorporada para rastreamento de referência. Por exemplo, o URL deve ser semelhante a:
https://example.com?ref=text-2ndOct2020
Basicamente, adicionar "ref = text-date" me permite rastrear de onde o link foi clicado para chegar ao meu site. Desejo usar isso para o teste A / B manual do conteúdo, a data na referência me ajuda a determinar a versão que se saiu melhor.
Aqui está um MWE:
\documentclass[letter,oneside,10pt]{article}
\usepackage{hyperref}
\usepackage[ddmmyyyy]{datetime}
\begin{document}
\href{https://example.com?ref=text-date}{example.com}
\end{document}
Isso funciona, mas o que eu idealmente gostaria de fazer é:
\href{https://example.com?ref=text-\today}{example.com}
para que a data possa ser atualizada automaticamente quando eu compilá-la para aquele dia específico, sendo a chave usada \todaypara adicionar a data de hoje automaticamente ao link.
Quando eu faço uso \todayem \hrefnesta solução particular, eu recebo o seguinte erro:
Undefined control sequence. }
line 107: Undefined control sequence. }
line 107: Undefined control sequence. }
.
.
.
line 107: Undefined control sequence. }
Estou usando o TeXStudio com uma distribuição do TeX-Live 2019 e construindo meu documento usando o XeLaTeX.
Estou aberto a qualquer solução, mas \todayé o que me vem à mente usar , tenho certeza de que existem maneiras melhores de fazer isso (se o \hyperrefpacote permitir ). Obrigado!
Respostas
Aqui está o que eu tentei:
\documentclass[letter,oneside,10pt]{article}
\usepackage{hyperref}
\usepackage[ddmmyyyy]{datetime}
\begin{document}
\href{https://example.com?ref=text-\today}{example.com}
\end{document}
Executando isso (tenho uma instalação mais recente), não recebo os erros que você está obtendo, mas o URL sai como:
https://example.com/?ref=text-%5Cprotect%20%5C@day%20=%5Cday%20%5Crelax%20%5C@month%20=%5Cmonth%20%5Crelax%20%5C@year%20=%5Cyear%20%5Crelax%2000/00/0
o que obviamente não é o que queremos.
O problema aqui é que o datetimepacote está fazendo todos os tipos de coisas generalizadas e esperando produzir texto e não uma sequência de token.
Então, em vez disso, vamos para uma versão especializada, mas simplificada do que datetimefaz. Largue o \usepackagee, em vez disso, faça:
\renewcommand{\today}{\ifnum\day<10 0\fi\the\day \ifnum\month<10 0\fi\the\month\the\year}
que fornece o URL desejado.