Existe-t-il un moyen facile d'entrer en mode texttt, comme $ pour le mode mathématique?
Quand je veux faire référence à une variable mathématique, disons un index i
, je l'entoure simplement de dollars (c'est-à-dire $i$
) par opposition à l'écriture \begin{math}i\end{math}
.
Existe-t-il une option similaire pour le texttt
mode, par exemple §i§
à remplacer \texttt{i}
?
Réponses
Vous pouvez l'utiliser §
comme délimiteur sans affecter les autres caractères en utilisant le même premier octet.
\documentclass{article}
\usepackage{newunicodechar}
\newunicodechar{§}{\makeabbreviationtt}
\def\makeabbreviationtt#1§{\texttt{#1}}
\begin{document}
This is §monospaced§. This doesn't affect ©, ¶
and other similar UTF-8 characters.
You can also do §¶§
\end{document}

Pas pour \texttt
mais pour \verb
la distribution de base inclut un shortvrb
package qui vous permet de définir un raccourci
\documentclass{article}
\usepackage{shortvrb}
\MakeShortVerb|
\begin{document}
aaaa |z| aaa
\end{document}
\documentclass{article}
\def§#1§{\texttt{#1}}
\begin{document}
roman §tt text§ back to roman
\end{document}

Cependant, comme David le souligne dans les commentaires, comme il §
ne s'agit pas d'un caractère à un octet, mais d'un caractère étendu UTF-8 (multi-octets), cette approche effacera tous les caractères UTF-8 commençant par le même préfixe, résultant en une erreur, si ces caractères sont utilisés (tels que ©
).
Donc, si vous vouliez ce type de solution, il serait préférable de choisir le délimiteur sous forme de caractère ASCII à un octet et de le rendre actif:
\documentclass{article}
\catcode`|=\active
\def|#1|{\texttt{#1}}
\begin{document}
roman |tt text| back to roman
\end{document}
L'inconvénient ici est que vous perdez l'utilisation de |
comme caractère d'entrée normal. Par conséquent, vous pouvez avoir de la fantaisie et créer un échappement dans la définition, de sorte ||
qu'ensemble, un seul écho |
soit composé:
\documentclass{article}
\usepackage[T1]{fontenc}
\let\svvert|
\catcode`|=\active
\def|#1|{\ifx\relax#1\relax\expandafter\svvert\else\texttt{#1}\fi}
\begin{document}
roman |tt text| back to roman || or $y =||x||$ and |then back to texttt|.
\end{document}
