J'ai besoin d'afficher la date dans le champ « pdftitle » d'un pdf.

L'extension hyperref me donne accès à ce champ. La documentation de cette extension, que j'ai consultée grâce à la commande $ texdoc hyperref sur ma TeXlive installée sur Debian GNU/Linux, ne mentionne rien au sujet de l'insertion d'une commande dans ce champ. Donc j'essaie :

Ouvrir dans l'éditeur
\documentclass[10pt, BCOR=0mm, DIV=15, a4paper, oneside, latin]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[veryoldstyle,largesmallcaps]{kpfonts}
\usepackage[pdfpagelayout=SinglePage, pdftitle=Rapport\ d'activité du \today, linkbordercolor=white]{hyperref}
\usepackage{lipsum}
\usepackage{babel}
\begin{document}%
\lipsum[7-11]
\end{document}

Ça ne compile pas. J'obtiens les erreurs suivantes :

Ouvrir dans l'éditeur
[...]

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\endgroup' on input line 4319.

! Package keyval Error: 2015 undefined.

See the keyval package documentation for explanation.
Type  H <return>  for immediate help.
...

l.4319 \ProcessKeyvalOptions{Hyp}

Je comprends bien que l'insertion d'une commande est interdite dans ce champ.

Y a-t-il néanmoins un moyen d'obtenir ce que je désire ?

Où trouver le ligne 4319 mentionnée dans le retour de compilation ?

Posée 05 Oct '15, 17:06

Pathe's gravatar image

Pathe ♦♦
7.5k42203251
Taux d'acceptation : 55%

Modifiée 05 Oct '15, 17:07


il m'a fallu quelques modifications pour que ça fonctionne ! Chez moi (TeXlive 2015 à jour), babel ne connait pas latin c'est pourquoi je le remplace par français. Il faut par ailleurs charger xcolor pour que la couleur white soit définie et utilisable dans les options de hyperref. Enfin je déplace la définition du titre dans la commande \hypersetup et ça fonctionne. Le code « corrigé » :

Ouvrir dans l'éditeur
\documentclass[10pt, BCOR=0mm, DIV=15, a4paper, oneside, french]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[veryoldstyle,largesmallcaps]{kpfonts}
\usepackage{xcolor}
\usepackage[main=french]{babel}
\usepackage[pdfpagelayout=SinglePage, linkbordercolor=white]{hyperref}
\usepackage{lipsum}
\begin{document}%
\hypersetup{%
  pdftitle=Rapport\ d'activité du \today 
}
\lipsum[7-11]
\end{document}

Je pense que l'appel à hyperref doit être un des derniers. Enfin, la langue active au moment de la composition du titre n'est pas indifférente, c'est elle qui sera utilisée par la commande \today.

Lien permanent

Publiée 05 Oct '15, 21:57

Le%20TeXnicien%20de%20surface's gravatar image

Le TeXnicien de surface
2.0k814
Taux d'acceptation : 27%

Modifiée 06 Oct '15, 19:56

denis's gravatar image

denis ♦♦
7.3k1510

Ça fonctionne, mais étrangement, alors que je n'ai déclaré que french comme langue, la date reste en anglais dans le titre.

Par ailleurs le titre est différent selon les visualiseurs : chez adobe il s'affiche un bref instant, avant d'être remplacé par le titre du fichier.

(05 Oct '15, 23:04) Pathe ♦♦ Pathe's gravatar image

Anéfé, là où today est placé, french n'a pas eu le temps de prendre les choses en main. Il suffit de placer la commande hypersetup après le begin{document} et ça ira mieux --- sot je suis :(

Dans evince, le titre apparait dans les propriétés du pdf.

(05 Oct '15, 23:20) Le TeXnicien de surface Le%20TeXnicien%20de%20surface's gravatar image

Ça fonctionne.

Adoncques ai-je dans votre code remonté le \begin{document} avant la commande \hypersetup, avant que d'accepter votre réponse.

(06 Oct '15, 00:11) Pathe ♦♦ Pathe's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.