编辑

编辑

今天我需要在文档中输入 ~,但显然它无法正确显示。我只得到了一个空白。我在网上搜索后发现同样的问题。但是,它的解决方案向我展示了波浪符号 (~) 似乎是一个特殊的疯狂字符,在 TeX 世界中并非开箱即用。调整波浪符号的垂直对齐似乎是最疯狂的操作之一。

考虑到 ~ 是普通键盘上可用的字符,它应该是开箱即用的。但显然不是。我想知道为什么它不可用。原因是什么?

编辑

我需要一个简单的宏来渲染 ~,正如我们在这句话中看到的那样。这个简单的 ~ 应该无需任何疯狂的调整即可使用。我不明白为什么 ~ 需要垂直调整,而其他字符如 a、b、c、d、e、f、...、z、1、2、...、0 则不需要?

简单来说,为什么~不进行疯狂的垂直调整就无法使用这个字符? ~ 就像键盘上的其他字符一样,对吗?

答案1

您正在寻找的命令是\textasciitilde(看起来更好

\usepackage[T1]{fontenc}

比默认的 OT1 编码(不包含波浪号,因此使用空基上的重音符号)

但是你的问题的基本前提似乎是有缺陷的,所有的编程语言都使用一些“容易访问”的键盘字符作为控制结构。~创建一个不可破坏的空间,所以不会直接创建一个~,就像\{}用于Tex的特定语法构造,而不是直接排版相应的字符。

答案2

您似乎问了两个问题:为什么波浪号不打印波浪号?以及为什么默认字体中的波浪号位置这么高?

TeX 书中回答了第一个问题:

Plain TeX 也保留了六个符号\ { } ^ _ ~,但您可能不介意丢失它们,因为它们不会出现在正常副本中。

因此 Knuth 决定使用波浪号来表示领带,即不间断空格,因为他认为人们不需要波浪号符号——在我看来这是非常正确的:我不记得上次输入波浪号是什么时候,但我几乎每天都使用不间断空格。

第二个问题是为什么默认字体中的波浪线这么高。这里只能推测。在 TeX 中,波浪线用作连接线和重音命令,所以我猜 Knuth 设计它是为了反映这些功能。在 TeX 书的代码示例中,波浪线看起来相当不错:

唐纳德·E·克努斯

但不幸的是,如果您想要一个不太高的波浪号,您要么必须对其进行调整,例如,使用 a \raisebox,要么切换到其他字体,如 lmodern:

唐纳德·E·克努斯

答案3

Ulrike 询问为什么默认字体中的波浪号那么高。答案可能是波浪号的位置。请记住,波浪号是字母上的重音符号,例如西班牙语“señor”中的“n”。

本主题中讨论的下部符号“~”的正确名称是斜线。

答案4

已编辑,提供“自动”波浪号的几个版本。

这里,我使用宏\newtildeON[]和展示了\newtildeOFF如何临时将的定义~从硬空格更改为您选择的重新定义。MWE 将默认重新定义为 ttfamily 字符 126 的降低版本,但我还展示了如何使用或的变\sim\~

\documentclass{article}
\let\svtilde~
\newcommand\newtildeA{\raisebox{-.7ex}{\ttfamily\char126}}
\newcommand\newtildeB{$\sim$}% ALTERNATE REDEFINITION
\newcommand\newtildeC{\raisebox{-.8ex}{\~{}}}% ALTERNATE REDEFINITION
\newcommand\newtildeON[1][A]{\def~{\csname newtilde#1\endcsname}}
\newcommand\newtildeOFF{\let~\svtilde}
\begin{document}
\newtildeON
T~i~l~d~e\par
\newtildeOFF
T~i~l~d~e\par
\newtildeON[B]
T~i~l~d~e\par
\newtildeOFF
T~i~l~d~e\par
\newtildeON[C]
T~i~l~d~e\par
\newtildeOFF
T~i~l~d~e\par
\end{document}

在此处输入图片描述

相关内容