14

之前关于该主题的问题之后,当您在 LaTeX 中生成网站时,生成包含波浪号的 url 的最佳方法是什么?\verb产生读不好的上波浪号,也不能很好地$\sim$复制/粘贴(当我这样做时添加一个空格)。解决方案?

看起来这应该是很容易解决的事情之一……如果没有,为什么不呢?

4

9 回答 9

12

我会看看url包裹

于 2009-04-05T06:50:02.600 回答
8

我知道这是一个老问题,但我最近想出了一些东西,尽管严重缺乏优雅,但效果很好。

\catcode`~=11 % make LaTeX treat tilde (~) like a normal character
\newcommand{\urltilde}{\kern -.15em\lower .7ex\hbox{~}\kern .04em}
\catcode`~=13 % revert back to treating tilde (~) as an active character

现在您可以在 \url 标记内使用 \urltilde(即使在 .bib 文件中),并且:1) URL 将完美呈现;2) 点击 URL 将带您到正确的地址;并且,3)复制粘贴会将正确的地址放入剪贴板。

这是我发现满足所有这三个要求的唯一解决方案。我希望它可以帮助那里的人。

于 2010-10-10T13:52:01.530 回答
4

url 包对我不起作用。hyperref 完成这项工作。

\usepackage{hyperref}
\url{http://website.com/~username/some_stuff/}
于 2014-02-14T08:22:04.960 回答
3

我认为在这种情况下最好使用 URL 编码(例如,参见 http://www.blooberry.com/indexdot/html/topics/urlencoding.htm)。

这意味着用 %7E 替换链接中的波浪号。

也许它在最终文档中看起来不太好(读者会看到 %7E 而不是波浪号),但至少复制粘贴功能确实有效,我认为这是最重要的。

例如,对于链接 www.example.com/~someuser/somepage.htm,我使用以下代码:

{\tt http://www.example.com/\%7Esomeuser/somepage.htm}

PS:这同样适用于所有带有空格或任何其他特殊字符的链接。

于 2011-02-16T17:51:35.690 回答
2

我认为 $_{\widetilde{~}}$ 可以很好地解决波浪号问题。

于 2010-06-14T02:54:44.463 回答
2

我想建议使用%7e

\tt{http://example.com/\%7etest}

tt 用于使其成为等空间。

它看起来有点不同,但它允许复制和粘贴。

于 2013-12-18T04:48:57.933 回答
0

\symbol{126}将是另一种方式,但在默认字体中,它也会产生一个上标波浪号。一个丑陋的黑客(但不是在 LaTeX 中)将是使用

${}_{\textrm{\symbol{126}}}$

这会在数学模式下生成一个文本波浪号并为其添加下标。所以它出现在行的中间。似乎也适用于可点击的链接。您始终可以将其单独放入命令中:)

于 2009-04-05T07:08:45.940 回答
0

诚然,我不是乳胶用户,但这个页面有帮助吗?

http://www.cse.wustl.edu/~mgeorg/html/tildalatex.html

他们执行以下操作:

\def\urltilda{\kern -.15em\lower .7ex\hbox{\~{}}\kern .04em}
\def\urldot{\kern -.10em.\kern -.10em}
\def\urlhttp{http\kern -.10em\lower -.1ex\hbox{:}\kern -.12em\lower 0ex\hbox{/}\kern -.18em\lower 0ex\hbox{/}}

这个使用方式是

{\tt mgeorg@cse\urldot wustl\urldot edu}
{\tt \urlhttp www\urldot cse\urldot wustl\urldot edu/\urltilda mgeorg}
于 2009-04-05T07:42:38.933 回答
0

在与 LaTeXing 波浪号相关的问题上浪费了很多时间之后,我想我应该在这里记录我的结果,以防它对其他人有帮助。

tldr:为了避免排版正确的波浪号 ~ 字符的一些困难,我建议添加

 \usepackage[T1]{fontenc}

在您的乳胶文件的序言中以获得更现代的字体编码版本。在现代 TeX 安装中,这会自动加载 Knuth 的 Computer Modern 字体的 T1 编码版本。


细节:

正如之前的海报所指出的那样,使用标准的 pdflatex/latex 和默认字体(原始的 OT1 编码的 Computer Modern),尝试渲染常规的波浪号字符存在困难,~,并且有各种不同程度的变通方法满意。一种解决方法是使用 textasciitilde 命令。例如,您可以使用它在 URL 中添加波浪号,例如:

 https://w3.pppl.gov/\textasciitilde{}hammett

这给出了一个凸起的波浪号(用于在另一个字符上重音的波浪号),其他海报讨论了将其降低到更正常的波浪号的方法。如果在 Adob​​e Acrobat 中查看生成的 PDF 文件,这将按预期工作,但缺点是,如果使用 Mac 上的内置 Preview 应用程序查看 PDF(或者如果在 TeXShop 的预览器中查看,它使用相同的 Mac 库)渲染),那么这个 URL 链接在视觉上看起来是正确的https://w3.pppl.gov/~hammett,但如果你真的点击它,它只会被解释为

 https://w3.pppl.gov/

如果您尝试将预览中的整个 URL 剪切并粘贴到浏览器中,则 pdf 中的波浪号将替换为空白

 https://w3.pppl.gov/%20hammett

所以它不起作用。(如果您粘贴到某些浏览器中,还会添加其他特殊字符)。(\url{...} 命令将正确显示带有波浪号的 URL,但会强制它使用固定间距的终端字体,并且有时您想在 URL 之外的某个地方使用波浪号。)

进一步调查,我了解到 Latex 放入 pdf 文件的字符不是常规的波浪号字符,而是“组合波浪号”

  COMBINING TILDE Unicode: U+0303, UTF-8: CC 83

(以前称为“非间距波浪号”,表示它用于另一个字符的重音),这就是 Mac 的预览呈现的内容。这意味着从 Mac 的 Preview 剪切并粘贴到浏览器中会失败。

但是,Adobe Acrobat 以某种方式实现了一种解决方法,并且在显示 pdf 时将其转换为常规的“波浪号”

  TILDE Unicode: U+007E, UTF-8: 7E

因此,将带有波浪号的 URL 从 Adob​​e 显示的 pdf 文件剪切并粘贴到 Web 浏览器中可以正常工作。

(我通过从 TeXShop 预览窗口复制渲染的波浪字符并将其粘贴到 Mac 菜单栏中的字符查看器应用程序中来确定这些 un​​icode 值。然后右键单击该字符以选择“复制字符信息”。字符查看器应用程序可以在 Mac 偏好设置、键盘中打开,然后选择“在菜单栏中显示键盘和表情符号查看器”。)

如果您通过添加使用 T1 编码的字体,这个问题就会消失

\usepackage[T1]{fontenc}

到你的乳胶文件序言。此外,如果您使用类似 Adob​​e Times 的字体

\usepackage{newtxtext}

然后波浪线会自动呈现在中间高度,不需要降低。(上面的命令只对常规文本使用 newtx 字体,而保持数学字体不变。我喜欢 newtxtext 因为它比 CM 稍微暗一些。但是对于数学我更喜欢保留 Knuth 的传统 Computer Modern CM 字体,因为 newtxmath 字体,像其他 Times 数学字体一样,以类似于希腊语 nu 的方式呈现数学斜体 v。)

PS:有关为什么使用 fontenc 包比 1970 年的原始编码更现代的方法总是好的更多信息,请参阅 (1) https://www.texfaq.org/FAQ-why-inp-font,(2 ) https://tex.stackexchange.com/questions/664/why-should-i-use-usepackaget1fontenc和 (3) https://en.wikibooks.org/wiki/LaTeX/Fonts

于 2021-06-05T00:11:15.910 回答