在数学公式中自动跨越 7 和 Z

在数学公式中自动跨越 7 和 Z

我已经使用 LaTeX 做数学作业和笔记大约 6 个月了。但是,对于任何使用 TeX 真正功能的东西,我都还很陌生。

以前我手写作业的时候,总是一丝不苟地在“z”和“7”上划线,像这样:

我的 z 也是如此。

有没有办法让 LaTeX 在数学模式中自动交叉我的 7 和 z(以及大写 Z)?我想让正文中的 7 和 z 保持正常。另外,我不想使用新命令;我希望每当我输入 7 时都会像平常一样出现一个交叉的 7,对于 Z/z 也是如此。

我的第一个解决方案是使用“负空间”命令,如下所示:

$7\~-$

然而,我不确定这是最优雅的解决方案,我仍然不知道如何让 LaTeX 在输入类似以下内容时自动执行此操作

$3+4 = 7.$

感谢任何人提供的帮助!

答案1

此外,我强烈建议选择带有此类数字的数学字体,或者设计一种。对于学习 TeX 以及在数学作业中使用,我认为没有什么大问题,但是请考虑不要在重要文档中做这种可能产生副作用的事情。

要回答你的问题,你可以在数学模式下使 7 和 Z 成为活动字符,这与(pdf)LaTeX 能否识别文本字符串并替换(扩展)它们

\documentclass[a4paper]{article}
\begingroup\lccode`~=`7\lowercase{\endgroup
  \edef~{\rlap{\noexpand\textbf{--}}\mathchar\the\mathcode`7}}
\mathcode`7="8000
\begin{document}
The 7 crossed in only math mode: $3 + 4 = 7$
\end{document}

交叉符号

答案2

最简单的答案是:不要这样做。

更长的答案:交叉或不交叉的 7 和 z 是字体的特征。字体设计师花费了大量时间使自己的字体在审美上一致、可读且令人愉悦。当您进行此更改时,您基本上推翻了他的决定;在大多数情况下,它看起来很糟糕。

答案3

也可以使用以下stackinset命令stackengine

\documentclass[12pt]{article}%
\usepackage{stackengine,} %
\newcommand{\hepta}{\ensuremath{\mathord{\stackinset{c}{0.1ex}{c}{0pt}{-}{7}}}}

\begin{document}

\hepta\hepta

77

 \end{document} 

在此处输入图片描述

答案4

Ƶ/ƶ 在 Unicode 中是一个单独的字母。还有一个组合笔画叠加,7̵ 或 7̶,在某些字体中可能会按您想要的方式显示。

如果你能找到带有笔划 7 和 z 的字体,则可以在数学模式下使用unicode-math或加载它mathastext。例如,

\defaultfontfeatures{Scale=MatchLowercase}
\setmaathfont{New Computer Modern Book Math}
\setmathfont{SomeStrokedFont-Regular.otf}[range=up]
\setmathfont{SomeStrokedFont-Italic.otf}[range=it]

相关内容