我想在 LaTeX 中输入 a^b。请注意,我不希望 b 作为 a 的上标(即 b 的幂),而是希望文本保持原样。
我在这里看到过(http://www.emerson.emory.edu/services/latex/latex_155.html) 是^
一个特殊字符,可以写成\^
。
但是,a\^b
结果为 'a',后面跟着一个带帽子的 b。有点像$\hat{b}$
。
我尝试过\^
单独打印 ^ 字符,即前后不跟任何文本或数字。我收到以下错误:
“ Missing \endcsname inserted. \end
“
我遗漏了什么?任何帮助都值得感激。
答案1
简单的解决方案(推荐)
使用\^{}
a\^{}b
使用 catcodes(有风险)
您可以将^
字母的 catcode 更改为 12,但数学模式下的上标不起作用
\documentclass{article}
%The superscript sign is just a letter from now on
\catcode`\^=12
\begin{document}
^
%Try $x^2$
\end{document}
使用 catcodes(另一种方式)
另一种可能性是创建^
一个主动角色,即粗俗,使其像另一个宏一样工作。由于 LaTeX 定义\sp
为 的替代品^
,所以不用担心
\documentclass{article}
%We make ^ active
\catcode`\^=13
%We define ^ so it works only in math mode
\def^{\ifmmode\sp\else\^{}\fi }
\begin{document}
I can use ^ finally %works
$x^2$ %works too
\end{document}
我不确定 LaTeX 如何处理 catcode(我更喜欢 LuaTeX/ConTeXt catcode 表),所以也许你会在处理较大的文档时出错。我很确定你应该选择简单的方法。:)
答案2
LaTeX 内核提供\textasciicircum
该项工作。
\documentclass{article}
\usepackage[T1]{fontenc}
\newcommand{\oti}{\fontencoding{OT1}\selectfont} % shorthand
\begin{document}
\begin{tabular}{cc}
OT1 & T1 \\
\hline
\oti a\^{}b & a\^{}b \\
\oti a\textasciicircum b & a\textasciicircum b
\end{tabular}
\end{document}
我更喜欢使用 T1 编码的输出。
左列仅用于显示使用 OT1 (默认编码)可以从\textasciicircum
和获得相同的结果\^{}
。
警告无论如何,必须检查输出,因为某些字体\textasciicircum
在 T1 编码中可能有有争议的字形。
答案3
不提倡任何方法\^{}
,只是为了完整性,因为在a^b
纯文本中似乎用处不大,可能不是采用标准方法来避免以“b”为参数,而是可能需要使用逐字模式或数学模式,使用另一种方法。下一个示例比较了十种方法,以逐字、数学模式或纯文本模式使用 pdflatex 键入类似脱字符的符号,产生四个不同的符号:
\documentclass[twocolumn,a5paper]{article}
\usepackage{tabto}
\usepackage[T1]{fontenc}
\begin{document}\obeylines
1\tab \verb|a^b|
2\tab $a^{\wedge}b$
3\tab $a^{\land}b$
4\tab $a\mathop{\hat{}}b$
5\tab $a\mbox{\^{}}b$
6\tab a$^\wedge$b
7\tab a\^{}b
8\tab aˆb
9\tab a\detokenize{^}b
10\tab a\textasciicircum b
\end{document}
% Note: circumflex accent in line 8 is U+02C6, not U+005E