我正在尝试生成<<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}
它们使用连字机制组合。因此禁用这个,例如使用microtype
s\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 问题。