数学モードの$のように、textttモードに入る簡単な方法はありますか?
Aug 19 2020
数学変数、たとえばインデックスを参照したい場合はi
、$i$
を書くのではなく、単にドルで囲みます(つまり、)\begin{math}i\end{math}
。
交換するtexttt
など§i§
、モードに同様のオプションはあります\texttt{i}
か?
回答
27 egreg Aug 19 2020 at 23:04
§
同じ最初のバイトを使用する他の文字に影響を与えることなく、区切り文字として使用できます。
\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}

22 DavidCarlisle Aug 19 2020 at 18:27
基本ディストリビューション\texttt
用で\verb
はなくshortvrb
、省略形を定義できるパッケージが含まれています
\documentclass{article}
\usepackage{shortvrb}
\MakeShortVerb|
\begin{document}
aaaa |z| aaa
\end{document}
15 StevenB.Segletes Aug 19 2020 at 18:20
\documentclass{article}
\def§#1§{\texttt{#1}}
\begin{document}
roman §tt text§ back to roman
\end{document}

ただし、Davidがコメントで指摘しているように、§
は1バイト文字ではなく、UTF-8拡張(マルチバイト)文字であるため、このアプローチでは、同じプレフィックスで始まるUTF-8文字がすべて消去されます。これらの文字(など©
)が使用されている場合、エラーが発生します。
したがって、このタイプのソリューションが必要な場合は、区切り文字を1バイトのASCII文字として選択し、アクティブにすることをお勧めします。
\documentclass{article}
\catcode`|=\active
\def|#1|{\texttt{#1}}
\begin{document}
roman |tt text| back to roman
\end{document}
ここでの欠点は|
、通常の入力文字としての使用が失われることです。したがって、あなたは空想を得て、定義にエスケープを組み込むことができます。そうすれば、||
一緒に単一|
をエコーしてタイプセットすることができます。
\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}
