使用“kpfonts”将“\textlnot”更改为数学模式下可用的内容

使用“kpfonts”将“\textlnot”更改为数学模式下可用的内容

考虑以下 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来完成的,因为加载并且有inputencutf8kpfontstextcompts1enc.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}

相关内容