C'è un modo semplice per entrare in modalità texttt, come $ per la modalità matematica?
Quando voglio fare riferimento a una variabile matematica, diciamo un indice i
, la circondo semplicemente con dollari (cioè $i$
) invece di scrivere \begin{math}i\end{math}
.
C'è qualche opzione simile per la texttt
modalità, ad esempio §i§
, per sostituire \texttt{i}
?
Risposte
È possibile utilizzare §
come delimitatore senza influire sugli altri caratteri utilizzando lo stesso primo byte.
\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}

Non per \texttt
ma per \verb
la distribuzione di base include il shortvrb
pacchetto che consente di definire una scorciatoia
\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}

Tuttavia, come David sottolinea nei commenti, poiché §
non è un carattere a byte singolo, ma un carattere esteso (multibyte) UTF-8, questo approccio cancellerà tutti i caratteri UTF-8 che iniziano con lo stesso prefisso, risultante in un errore, se vengono utilizzati quei caratteri (come ©
).
Quindi, se volessi questo tipo di soluzione sarebbe meglio scegliere il delimitatore come carattere ASCII a byte singolo e renderlo attivo:
\documentclass{article}
\catcode`|=\active
\def|#1|{\texttt{#1}}
\begin{document}
roman |tt text| back to roman
\end{document}
Lo svantaggio qui è che perdi l'uso di |
come un normale carattere di input. Pertanto, potresti essere fantasioso e costruire una via di fuga nella definizione, in modo che ||
insieme riecheggino un singolo |
da comporre:
\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}
