Apakah ada cara mudah untuk masuk ke mode texttt, seperti $ untuk mode matematika?
Ketika saya ingin merujuk ke variabel matematika, katakan beberapa indeks i
, saya hanya melingkupinya dengan dolar (yaitu, $i$
) sebagai lawan menulis \begin{math}i\end{math}
.
Apakah ada opsi serupa untuk texttt
mode, misalnya §i§
, untuk mengganti \texttt{i}
?
Jawaban
Anda dapat menggunakan §
sebagai pembatas tanpa mempengaruhi karakter lain menggunakan byte pertama yang sama.
\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}

Bukan untuk \texttt
tetapi untuk \verb
distribusi dasar termasuk shortvrb
paket yang memungkinkan Anda untuk menentukan singkatan
\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}

Namun, seperti yang ditunjukkan David di komentar, karena §
bukan karakter byte tunggal, tetapi karakter UTF-8 diperpanjang (multi-byte), pendekatan ini akan menghapus salah satu karakter UTF-8 yang dimulai dengan awalan yang sama, mengakibatkan kesalahan, jika karakter tersebut digunakan (seperti ©
).
Jadi, jika Anda menginginkan jenis solusi ini, akan lebih baik memilih pembatas sebagai karakter ASCII byte tunggal dan membuatnya aktif:
\documentclass{article}
\catcode`|=\active
\def|#1|{\texttt{#1}}
\begin{document}
roman |tt text| back to roman
\end{document}
Sisi negatifnya di sini adalah Anda kehilangan penggunaan |
sebagai karakter input normal. Oleh karena itu, Anda bisa menjadi mewah dan membangun pelarian ke dalam definisi, sehingga ||
bersama - sama akan menggemakan satu |
untuk menjadi set huruf:
\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}
