继之前关于该主题的问题之后,当您在 LaTeX 中生成网站时,生成包含波浪号的 url 的最佳方法是什么?\verb
产生读不好的上波浪号,也不能很好地$\sim$
复制/粘贴(当我这样做时添加一个空格)。解决方案?
看起来这应该是很容易解决的事情之一……如果没有,为什么不呢?
我会看看url
包裹。
我知道这是一个老问题,但我最近想出了一些东西,尽管严重缺乏优雅,但效果很好。
\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)复制粘贴会将正确的地址放入剪贴板。
这是我发现满足所有这三个要求的唯一解决方案。我希望它可以帮助那里的人。
url 包对我不起作用。hyperref 完成这项工作。
\usepackage{hyperref}
\url{http://website.com/~username/some_stuff/}
我认为在这种情况下最好使用 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:这同样适用于所有带有空格或任何其他特殊字符的链接。
我认为 $_{\widetilde{~}}$ 可以很好地解决波浪号问题。
我想建议使用%7e
\tt{http://example.com/\%7etest}
tt 用于使其成为等空间。
它看起来有点不同,但它允许复制和粘贴。
\symbol{126}
将是另一种方式,但在默认字体中,它也会产生一个上标波浪号。一个丑陋的黑客(但不是在 LaTeX 中)将是使用
${}_{\textrm{\symbol{126}}}$
这会在数学模式下生成一个文本波浪号并为其添加下标。所以它出现在行的中间。似乎也适用于可点击的链接。您始终可以将其单独放入命令中:)
诚然,我不是乳胶用户,但这个页面有帮助吗?
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}
在与 LaTeXing 波浪号相关的问题上浪费了很多时间之后,我想我应该在这里记录我的结果,以防它对其他人有帮助。
tldr:为了避免排版正确的波浪号 ~ 字符的一些困难,我建议添加
\usepackage[T1]{fontenc}
在您的乳胶文件的序言中以获得更现代的字体编码版本。在现代 TeX 安装中,这会自动加载 Knuth 的 Computer Modern 字体的 T1 编码版本。
细节:
正如之前的海报所指出的那样,使用标准的 pdflatex/latex 和默认字体(原始的 OT1 编码的 Computer Modern),尝试渲染常规的波浪号字符存在困难,~,并且有各种不同程度的变通方法满意。一种解决方法是使用 textasciitilde 命令。例如,您可以使用它在 URL 中添加波浪号,例如:
https://w3.pppl.gov/\textasciitilde{}hammett
这给出了一个凸起的波浪号(用于在另一个字符上重音的波浪号),其他海报讨论了将其降低到更正常的波浪号的方法。如果在 Adobe 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 从 Adobe 显示的 pdf 文件剪切并粘贴到 Web 浏览器中可以正常工作。
(我通过从 TeXShop 预览窗口复制渲染的波浪字符并将其粘贴到 Mac 菜单栏中的字符查看器应用程序中来确定这些 unicode 值。然后右键单击该字符以选择“复制字符信息”。字符查看器应用程序可以在 Mac 偏好设置、键盘中打开,然后选择“在菜单栏中显示键盘和表情符号查看器”。)
如果您通过添加使用 T1 编码的字体,这个问题就会消失
\usepackage[T1]{fontenc}
到你的乳胶文件序言。此外,如果您使用类似 Adobe 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。