\ hyperrefパッケージで\ todayを使用する

Oct 03 2020

初めて質問を投稿するので、何か見落としがあった場合はお知らせください。

私はLaTeXドキュメントで作業していますが、hyperrefパッケージを使用して達成したいことは次のとおりです。

私のウェブサイトにリンクされ、紹介追跡のために今日の日付が埋め込まれているURLを持っています。たとえば、URLは次のようになります。

https://example.com?ref=text-2ndOct2020

基本的に、「ref = text-date」を追加すると、リンクがクリックされた場所を追跡して、自分のWebサイトにアクセスできます。これをコンテンツの手動A / Bテストに使用したいのですが、紹介の日付は、より良いバージョンを判断するのに役立ちます。

これがMWEです。

\documentclass[letter,oneside,10pt]{article}
\usepackage{hyperref}
\usepackage[ddmmyyyy]{datetime}

\begin{document}

\href{https://example.com?ref=text-date}{example.com}

\end{document}

これは機能しますが、私が理想的にやりたいことは次のとおりです。

\href{https://example.com?ref=text-\today}{example.com}

その特定の日にコンパイルしたときに日付が自動更新されるように、キーは\today今日の日付をリンクに自動的に追加するために使用されます。

私は使用を行うと\todayして\href、この特定の溶液中で、私は次のエラーを取得します:

Undefined control sequence. }
line 107: Undefined control sequence. }
line 107: Undefined control sequence. }
.
.
.
line 107: Undefined control sequence. }

私は2019TeX-LiveディストリビューションでTeXStudioを使用しており、XeLaTeXを使用してドキュメントを説得力があります。

私はどんな解決策にもオープンですが、使用する\todayことが私の頭に浮かんだことです。これを行うためのより良い方法があると確信しています(\hyperrefパッケージがそれをサポートしている場合)。ありがとう!

回答

1 DonHosek Oct 02 2020 at 22:35

これが私が試したことです:

\documentclass[letter,oneside,10pt]{article}
\usepackage{hyperref}
\usepackage[ddmmyyyy]{datetime}

\begin{document}

\href{https://example.com?ref=text-\today}{example.com}

\end{document}

これを実行すると(新しいインストールがあります)、発生するエラーは発生しませんが、URLは次のように表示されます。

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

これは明らかに私たちが望んでいることではありません。

ここでの問題は、datetimeパッケージがあらゆる種類の一般化された処理を実行し、トークンシーケンスではなくテキストを生成することを期待していることです。

代わりに、専門的でありながら簡略化されたバージョンを探しましょうdatetime。を削除し\usepackage、代わりに実行します。

\renewcommand{\today}{\ifnum\day<10 0\fi\the\day \ifnum\month<10 0\fi\the\month\the\year}

これにより、目的のURLが得られます。