---
myst:
html_meta:
keywords: LaTeX, composition, texte, mots, adresse internet, adresse email, HTTP, HTTPS, lien web
---
# Comment écrire des adresses web (ou URL) ?
Les URL ont tendance à être très longues et contiennent des caractères qui les empêchent d'être découpées facilement.
Par conséquent, sans traitement spécial, elles produisent souvent des boîtes horizontales (`\hbox`)
très longues et leur composition finale est alors laide.
Ce qui suit présente des solutions pour arriver à mieux les gérer.
## Avec l'extension
L'extension définit une commande `\path`.
Cette commande définit chaque caractère de césure potentielle comme un `\discretionary`
et offre à l'utilisateur la possibilité de spécifier sa propre liste de caractères de césures potentielles.
Cette commande est cependant [fragile](/2_programmation/syntaxe/c_est_quoi_la_protection).
Les [commandes d'Eplain](/1_generalites/glossaire/eplain) définissent une commande similaire `\path`.
L'extension , bien qu'elle fonctionne dans des situations simples, ne collabore pas bien LaTeX :
malgré sa longue et honorable histoire, elle n'est plus vraiment recommandée.
## Avec l'extension
L'extension permet de gérer les coupures des URL un peu longues.
Elle est également capable de gérer les adresses e-mail, les liens hypertextes, les noms de répertoires, etc.
Elle définit une commande `\url` (et bien d'autres, y compris sa propre commande `\path`)
qui donne à chaque caractère de césure potentielle un comportement assimilable à celui du mode mathématique
et qui définit l'URL elle-même en mode mathématique (dans la police choisie par l'utilisateur).
Voici un exemple d'utilisation, illustrant aussi un paramétrage possible avec cette extension :
```
\documentclass[french]{article}
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{url}
\urlstyle{sf}
\begin{document}
\url{http://hostname/~username}
\medskip
Lorsque l'on veut citer une URL dans du texte
\url{http://www.domaine.com/un/truc/long.html},
cela se passe relativement bien.
\end{document}
```
### Des commandes plus robustes
Les commandes `\path` de l'extension et `\url` de l'extension ne sont pas
[robustes](/2_programmation/syntaxe/c_est_quoi_la_protection).
Toutefois si vous avez besoin d'une URL devant aller dans un argument mouvant,
vous aurez besoin de la commande `\urldef` de l'extension .
Ceci donne par exemple pour rendre robuste la commande `\faqfr` :
```{noedit}
\urldef\faqfr\url{https://faq.gutenberg.eu.org/}
```
### La gestion des espaces
L'extension ignore généralement les espaces dans les URL mais,
malheureusement, certaines d'entre elles contiennent des espaces.
Pour les traiter, appelez l'extension avec l'option `obeyspaces`.
Deux autres options autorisent les sauts de ligne dans l'URL aux endroits où ils sont normalement supprimés pour éviter toute confusion :
- `spaces` pour autoriser les sauts au niveau des espaces
(notez que cela nécessite également `obeyspaces`) ;
- `hyphens` pour autoriser les sauts après les tirets
(car, l'extension ne fait *jamais* de césure "ordinaire" dans les URL).
Il est possible d'utiliser l'extension en [Plain TeX](/1_generalites/glossaire/plain_tex),
avec l'aide de l'extension
(qui a été initialement développé pour utiliser l'extension de LaTeX dans Plain TeX).
Une petit morceau de code est alors nécessaire :
```{noedit}
\input miniltx
\expandafter\def\expandafter\+\expandafter{\+}
\input url.sty
```
## Avec l'extension
L'extension utilise le code de pour composer des liens
et permet en plus de les rendre cliquables dans le document PDF.
## Avec les commandes de base
La primitive `\discretionary` permet de dire comment couper une chaîne de caractères dans un texte :
`\discretionary{⟨avant la coupure⟩}{⟨après⟩}{⟨s'il n'y en a pas⟩}`
Il faut noter que `\-` est défini comme `\discretionary{-}{}{}`.
:::{sources}
[Typesetting URLs](faquk:FAQ-setURL)
:::