Bonjour tous,
J’aurais besoin de gnrer un lien vers un fichier dont l’adresse
contient 2 # de suite, mais n’arrive pas “protger” le second,
quelqu’un a une ide ?
Vous trouverez ci-dessous un vrai ECM qui explique le souci.
Merci pour votre aide si vous avez une solution.
Bonne journe,
Lionel
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dise fonctionne bien ici
: \href{C:/Lien/Vers/Mon/#Fichier.pdf}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non
: \href{C:/Lien/Vers/Mon/##Fichier.pdf}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
% --------------------- FIN ECM ---------------------
Bonjour,
Le 31/01/2024 à 10:28, Lionel.Flandin@univ-smb.fr a écrit :
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{C:/Lien/Vers/Mon/#Fichier.pdf}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{C:/Lien/Vers/Mon/##Fichier.pdf}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
% --------------------- FIN ECM ---------------------
La doc de hyperref précise que les caractères # et ~ ne doivent pas être
échappés (sous entendu dans le champ URL). Mais ça ne change rien ! S’il
y a plus d’un # dans une url, ça coupe et pas seulement pour deux # à
suivre ! Un bug ? Autre surprise avec url
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\url{test##test}
\url{test###test}
\url{test#####test}
\end{document}
il faut doubler les # pour en afficher plus d’un, par contre les liens
sont fidèles !
Y’aurait-y pas un package magique à ajouter pour les URL ou liens à-la-con ?
Jean-Yves
Bonjour
Essayez ça, ça a l’air de marcher :
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{{{C:/Lien/Vers/Mon/#Fichier.pdf}}}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{{{C:/Lien/Vers/Mon/##Fichier.pdf}}}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
% --------------------- FIN ECM ---------------------
François
Le 31/01/2024 à 10:28, Lionel.Flandin@univ-smb.fr a écrit :
Bonjour à tous,
J’aurais besoin de générer un lien vers un fichier dont l’adresse
contient 2 # de suite, mais n’arrive pas à “protéger” le second,
quelqu’un a une idée ?
Vous trouverez ci-dessous un vrai ECM qui explique le souci.
Merci pour votre aide si vous avez une solution.
Bonne journée,
Lionel
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{C:/Lien/Vers/Mon/#Fichier.pdf}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{C:/Lien/Vers/Mon/##Fichier.pdf}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
% --------------------- FIN ECM ---------------------
Le 31/01/2024 à 12:28, Pétiard François a écrit :
Essayez ça, ça a l’air de marcher :
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{{{C:/Lien/Vers/Mon/#Fichier.pdf}}}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{{{C:/Lien/Vers/Mon/##Fichier.pdf}}}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
Une explication ? Pourquoi un double groupement ?
Jean-Yves-curieux
Le 01/02/2024 à 00:51, Paul Gaborit a écrit :
Le 31/01/2024 à 10:28, Lionel.Flandin@univ-smb.fr a écrit :
Bonjour à tous,
J’aurais besoin de générer un lien vers un fichier dont l’adresse
contient 2 # de suite, mais n’arrive pas à “protéger” le second,
quelqu’un a une idée ?
Vous trouverez ci-dessous un vrai ECM qui explique le souci.
Merci pour votre aide si vous avez une solution.
Bonne journée,
Lionel
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{C:/Lien/Vers/Mon/#Fichier.pdf}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{C:/Lien/Vers/Mon/##Fichier.pdf}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
% --------------------- FIN ECM ---------------------
Le premier argument de \href est un URL. Dans les URL, le caractère #
est un délimiteur (cf. RFC 3986) et ne peut apparaître qu’une seule
fois pour introduire le “fragment”.
Pour représenter le caractère # sans lui accorder son rôle spécifique,
il faut l’encoder via la séquence ‘%23’.
Ce qui donne:
\href{C:/Lien/Vers/Mon/%23Fichier.pdf}{C:/Lien/Vers/Mon/#Fichier.pdf}
\href{C:/Lien/Vers/Mon/%23%23Fichier.pdf}{C:/Lien/Vers/Mon/##Fichier.pdf}
Cordialement,
Heu, désolé, mais ça ne marche pas (Windows10, Adobe Reader).
François
Aucune idée pour une explication !
Simplement, en faisant un \tracingall, on se rend compte que le # (même
unique, d’ailleurs) pose problème dans le passage des arguments. D’où
l’idée d’encapsuler entre {} ; une fois ne suffit pas, mais deux oui !???
François-pragmatique…
Le 31/01/2024 à 12:54, Jean-Yves Baudais a écrit :
Le 31/01/2024 à 12:28, Pétiard François a écrit :
Essayez ça, ça a l’air de marcher :
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dièse fonctionne bien ici :
\href{{{C:/Lien/Vers/Mon/#Fichier.pdf}}}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{{{C:/Lien/Vers/Mon/##Fichier.pdf}}}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
Une explication ? Pourquoi un double groupement ?
Jean-Yves-curieux
P> Heu, désolé, mais ça ne marche pas (Windows10, Adobe Reader).
j’imagine qu’un chemin n’est pas une URL, justement. Est-ce qu’en ajoutant file: ça marcherait ?
Merci Franois / Jean-Yves et les autres qui m’ont propos des solutions.
Il est certainement plus important que contourner que de comprendre
dans le cas prsent, et a fonctionne comme attendu,
{Bonne fin de journe}
@ 13:00 31/01/2024, >>>Pétiard François<<< Wrote ------------------------:wq!
Content-Transfer-Encoding: 8bit
Aucune ide pour une explication !
Simplement, en faisant un \tracingall, on se rend compte que le #
(mme unique, d’ailleurs) pose problme dans le passage des
arguments. D’o l’ide d’encapsuler entre {} ; une fois ne suffit
pas, mais deux oui !???
Franois-pragmatique…
Le 31/01/2024 12:54, Jean-Yves Baudais a crit :
Le 31/01/2024 12:28, Ptiard Franois a crit :
Essayez a, a a l’air de marcher :
% --------------------- DEBUT ECM ---------------------
\documentclass[12pt,a4paper]{article}
\usepackage{hyperref}
\begin{document}
La protection du dise fonctionne bien ici :
\href{{{C:/Lien/Vers/Mon/#Fichier.pdf}}}{C:/Lien/Vers/Mon/#Fichier.pdf}
Mais s’il y en a 2 “#”, non :
\href{{{C:/Lien/Vers/Mon/##Fichier.pdf}}}{C:/Lien/Vers/Mon/##Fichier.pdf}
\end{document}
Une explication ? Pourquoi un double groupement ?
Jean-Yves-curieux
Le 01/02/2024 à 10:29, Thierry Bouche a écrit :
P> Heu, désolé, mais ça ne marche pas (Windows10, Adobe Reader).
j’imagine qu’un chemin n’est pas une URL, justement. Est-ce qu’en ajoutant file: ça marcherait ?
Non, pas mieux. Ni avec file:, ni avec file://
La seule chose qui semble marcher, c’est donc en mettant entre {{}}
François
Le 01/02/2024 à 17:32, Paul Gaborit a écrit :
Le 01/02/2024 à 10:56, Pétiard François a écrit :
Le 01/02/2024 à 10:29, Thierry Bouche a écrit :
P> Heu, désolé, mais ça ne marche pas (Windows10, Adobe Reader).
j’imagine qu’un chemin n’est pas une URL, justement. Est-ce qu’en
ajoutant file: ça marcherait ?
Non, pas mieux. Ni avec file:, ni avec file://
Si vous ajoutez le schéma ‘file’, il faut ajouter “file:///” ou
“file://localhost/”.
Cordialement,
En réalité, avec un fichier sans # dans son nom, la seule chose qui
marche (chez moi), c’est :
href{C:/dossier/sousdossier/fichier.pdf}{description du fichier}
Mais :
href{file://C:/dossier/sousdossier/fichier.pdf}{description du fichier}
href{file:///C:/dossier/sousdossier/fichier.pdf}{description du fichier}
href{file://localhost/C:/dossier/sousdossier/fichier.pdf}{description du
fichier}
ne marchent pas…
François
Le vendredi 02 février à 00:07, Paul Gaborit a écrit :
Ce qui est normal puisque, pour des raisons de sécurité, aucun lecteur PDF
ou navigateur Web correctement développé ne devrait accepter un chemin
absolu vers la machine locale.
Tiens et pourquoi donc ? Certains navigateurs (au moins ceux dont je me
sers) le font (cf. lynx, links).
–
Philippe
Le 02/02/2024 à 00:07, Paul Gaborit a écrit :
Le 01/02/2024 à 18:00, Pétiard François a écrit :
Le 01/02/2024 à 17:32, Paul Gaborit a écrit :
Le 01/02/2024 à 10:56, Pétiard François a écrit :
Le 01/02/2024 à 10:29, Thierry Bouche a écrit :
P> Heu, désolé, mais ça ne marche pas (Windows10, Adobe Reader).
j’imagine qu’un chemin n’est pas une URL, justement. Est-ce qu’en
ajoutant file: ça marcherait ?
Non, pas mieux. Ni avec file:, ni avec file://
Si vous ajoutez le schéma ‘file’, il faut ajouter “file:///” ou
“file://localhost/”.
Cordialement,
En réalité, avec un fichier sans # dans son nom, la seule chose qui
marche (chez moi), c’est :
href{C:/dossier/sousdossier/fichier.pdf}{description du fichier}
Mais :
href{file://C:/dossier/sousdossier/fichier.pdf}{description du fichier}
href{file:///C:/dossier/sousdossier/fichier.pdf}{description du fichier}
href{file://localhost/C:/dossier/sousdossier/fichier.pdf}{description
du fichier}
ne marchent pas…
Ce qui est normal puisque, pour des raisons de sécurité, aucun lecteur
PDF ou navigateur Web correctement développé ne devrait accepter un
chemin absolu vers la machine locale.
Pourquoi alors donner une « solution » si vous savez que ça ne marche pas ?
François