考虑以下 MWE:
\documentclass{article}
\usepackage{kpfonts}
\usepackage[utf8]{inputenc}
\begin{document}
This is a formula: $¬¬p \implies p$
\end{document}
输出未排版¬
unicode 符号(NOT SIGN),并且我收到此警告:
LaTeX Warning: Command \textlnot invalid in math mode on input line 8
看起来它kpfonts
正在处理这个问题¬
,但它分配给它一个在文本模式下工作的命令(这似乎是一个奇怪的默认值,因为这是一个数学符号)。
我怎样才能将符号重新定义为数学模式下可用的符号(例如 \lnot
)或者更好的是,让它\textlnot
在文本模式和\lnot
数学模式下扩展?
答案1
定义是¬
通过使用选项\textlnot
来完成的,因为加载并且有inputenc
utf8
kpfonts
textcomp
ts1enc.dfu
\DeclareUnicodeCharacter{00AC}{\textlnot}
您可以加载newunicodechar
并修复它。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{kpfonts}
\usepackage{newunicodechar}
\newunicodechar{¬}{\TextOrMath{\textlnot}{\lnot}}
\begin{document}
This is a formula: $¬¬p \implies p$
\end{document}
答案2
像这样(使其活跃)?
\documentclass{article}
\usepackage{kpfonts}
\usepackage[utf8]{inputenc}
\catcode"00AC=\active
\def¬{\ifmmode\lnot\else\textlnot\fi}
\begin{document}
This is a formula: $¬¬p \implies p$
\end{document}