有没有一种简单的方法可以进入文本模式,比如 $ 进入数学模式?

有没有一种简单的方法可以进入文本模式,比如 $ 进入数学模式?

当我想引用一个数学变量(比如某个索引)时i,我只需用美元(即$i$)将其包围,而不是写\begin{math}i\end{math}

模式是否有一些类似的选项texttt,例如§i§,可以替换\texttt{i}

答案1

您可以将其用作§分隔符,而不会影响使用相同第一个字节的其他字符。

\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}

在此处输入图片描述

答案2

不适用于\texttt,但适用于\verb基本发行版包含shortvrb允许您定义简写

\documentclass{article}
\usepackage{shortvrb}
\MakeShortVerb|


\begin{document}
  aaaa |z|  aaa
\end{document}

答案3

\documentclass{article}
\def§#1§{\texttt{#1}}
\begin{document}
roman §tt text§ back to roman
\end{document}

在此处输入图片描述

然而,正如 David 在评论中指出的那样,由于不是单字节字符,而是 UTF-8 扩展(多字节)字符,所以这种方法将消除任何以相同前缀开头的 UTF-8 字符,如果使用这些字符(例如),§则会导致错误。©

因此,如果您想要这种类型的解决方案,最好选择单字节 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}

在此处输入图片描述

相关内容