当使用时\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 字符串中使用时。