带有 `\urlstyle(same)` 的 url 似乎强制使用 `lowtilde`

带有 `\urlstyle(same)` 的 url 似乎强制使用 `lowtilde`

当使用时\urlstyle{same}url即使lowtilde未指定选项,包也会用低“伪”波浪号代替:

\documentclass{article}


\usepackage{url}
\urlstyle{same}


\begin{document}

Tilde: \textasciitilde

Not a tilde: \url{~}

\end{document}

为什么会发生这种情况?有没有办法解决这种情况?

我正在使用IEEEtran强制\urlstyle{same}选项的类,并且正在向日志提交,因此我不想加载该hyperref包(建议在本网站其他地方使用此方法)因为这在编辑时可能不被允许/被默默删除。

答案1

我猜测问题出在 的定义上\Url@OTnonTT,其中\UrlTildeSpecial使用 而不是\Url@force@Tilde

最后一个命令是\relax,除非lowtilde已指定。

\documentclass{article}
\usepackage{url}

\makeatletter
\def\Url@OTnonTT{\do\<{\langle}\do\>{\mathbin{\rangle}}\do
  \_{\_\penalty\@m}\do\|{\mid}\do\{{\lbrace}\do\}{\mathbin{\rbrace}}\do
  \\{\mathbin{\backslash}}\Url@force@Tilde}% <--- it had \UrlTildeSpecial
\makeatother

\urlstyle{same}


\begin{document}

Tilde: \textasciitilde

Not a tilde: \url{~}

\end{document}

在此处输入图片描述

答案2

引自第 382 页全面的 LaTeX 符号列表[强调添加]:

请注意\textasciitilde\~{}会产生凸起的变音波浪线。“文本”(即垂直居中)波浪线可以用数学模式\sim命令...生成,它会产生一个稍宽的“∼”,也可以用textcomp包的生成\texttildelow,它在大多数字体中会产生垂直居中的“~”,但在 Computer Modern、txfonts、pxfonts 和来自 TEX 世界的其他各种字体中会产生基线导向的“~”。如果你的目标是在 URL 或 Unix 文件名中排版波浪符号,那么最好的办法是使用url...

简而言之,所谓的“伪波浪号”实际上是一种垂直居中的符号,在文本模式设置中使用时应该是完全可以接受的,尤其是在 URL 字符串中使用时。

相关内容