如何输入“” 在 ttfamily 中?

如何输入“” 在 ttfamily 中?

我正在尝试生成<<test>>文本\ttfamily,但它看起来像:

«test»

这不是我想要的。当我尝试时,$<<$test$>>$结果也不正确,因为符号不在\ttfamily

这是完整的例子:

\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\texttt{<<test>>}
\end{document}

答案1

为了避免将两个<或两个组合起来并在它们之间放置一个:>«»{}

\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\texttt{<{}<test>{}>}
\end{document}

它们使用连字机制组合。因此禁用这个,例如使用microtypes\DisableLigatures也可以,但不推荐,因为它会降低整体排版质量。


您还可以使用/逐字\verb排版。(还有一个宏可以让您将其缩短。)<<>>shortvrb

\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\verb|<<|\texttt{test}\verb|>>|
\end{document}

如果内容仅为文本而没有宏等,则可以使用以下方法\verb

\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\verb|<<test>>|
\end{document}

使用shortvrb

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{shortvrb}
\MakeShortVerb\|
\begin{document}
|<<|\texttt{test}|>>|
|<<test>>|
\end{document}

答案2

您看到的是连字符:在 T1 编码中,TeX 用双引号替换 <<,就像用一个尾号替换两个破折号 -- 一样。您可以使用不同的方法来避免这种情况(最后一种方法比较激进):

\documentclass{article}

\usepackage[T1]{fontenc}
\begin{document}
\texttt{<{}<test>{}>}

\verb+<<test>>+

{\fontencoding{OT1}\texttt{<<test>>}}

\ttfamily \pdfnoligatures\font <<test>> --
\end{document}

答案3

我想说在任何地方使用 \verb 都是不可取的;这不仅仅是因为它在命令参数中不起作用(也就是说,在没有 cprotect.sty 的情况下)。

我将使用将强命令定义为扩展为逐字字符串的命令之一:

\usepackage{verbdef}
...
\verbdef\llt|<<|
\verbdef\ggt|>>|
...
\texttt{\llt{}test\ggt}

(还有其他包可以做到这一点,但我记得的是 verbdef)

答案4

另一种可能性是进入“原始” tex 代码:

\texttt{\char`\<\char`\<test\char`\>\char`\>}

冗长,并且每次只能对一个字符起作用,但是它可以解决任何可能造成麻烦的 catcode 问题。

相关内容