12 下划线和字符打印的 catcode

12 下划线和字符打印的 catcode

以下代码的版本LaTeX3是否可以更简单?我理解逻辑,但我不喜欢代码...

\documentclass[12pt]{article}

\usepackage{color}

% Source: https://tex.stackexchange.com/a/33478/6880
\def\test{%
  \begingroup
  \catcode`\_=12\relax
  \ttest}
\def\ttest#1{%
  \color{red}\fbox{#1}%
  \endgroup}

\begin{document}

The smallest \test{txt_example} in the world.

\end{document}

还有一个问题。有没有办法看到下划线,因为我有以下输出?

在此处输入图片描述

答案1

在 OT1 编码字体中, 的插槽_由点重音符占据,除非您使用\ttfamily。使用 T1。

有没有更简单的版本?是的,有。

\documentclass[12pt]{article}

\usepackage{color}

\NewDocumentCommand{\test}{v}{%
  \fbox{\fontencoding{T1}\selectfont\textcolor{red}{#1}}%
}

\begin{document}

The smallest \test{txt_example} in the world.

\end{document}

参数v说明符的意思是“逐字收集参数”。

在此处输入图片描述

\ttfamily不是\fontencoding{T1}\selectfont你会得到

在此处输入图片描述

\usepackage[T1]{fontenc}当然,如果您的文档序言中有编码,则您不需要选择编码,这对于包括法语在内的欧洲(大陆)语言的文档基本上是强制性的。

相关内容