在网站上为LaTeX生成代字号的最佳方法是什么?

时间:2009-04-05 06:43:55

标签: latex tilde

关于此主题的previous questions之后,当您在LaTeX中生成网站时,生成包含波浪号的网址的最佳方法是什么? \verb产生不能很好读取的上部波浪号,$\sim$不能很好地复制/填充(当我这样做时添加一个空格)。溶液

看起来这应该是那些非常容易解决的问题之一......如果没有,为什么不呢?

9 个答案:

答案 0 :(得分:11)

我会看url package

答案 1 :(得分:6)

我知道这是一个古老的问题,但我最近提出了一些东西,虽然严重缺乏优雅,但效果很好。

\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)复制粘贴将正确的地址放在剪贴板中。

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

答案 2 :(得分:2)

我认为在这种情况下使用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:同样适用于带有空格或任何其他特殊字符的所有链接。

答案 3 :(得分:2)

我想建议使用%7e

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

是让它成为等宽的。

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

答案 4 :(得分:1)

我认为$ _ {\ widetilde {〜}} $适用于代字号问题。

答案 5 :(得分:1)

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

\usepackage{hyperref}
\url{http://website.com/~username/some_stuff/}

答案 6 :(得分:0)

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

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

在数学模式下生成文本代字号并下标。所以它出现在线的中间。似乎也适用于可点击链接。你总是可以把它放在一个命令中:)

答案 7 :(得分: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}

答案 8 :(得分:0)

在 LaTeXing a tilde 的相关问题上浪费了大量时间后,我想我应该在这里记录我的结果,以防对其他人有所帮助。

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

 \usepackage[T1]{fontenc}

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


详情:

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

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

这会产生一个凸起的波浪线(一种用于强调另一个字符的波浪线),其他海报讨论了将其降低为更正常的波浪线的方法。虽然如果在 Adob​​e Acrobat 中查看生成的 PDF 文件,这会按预期工作,但缺点是如果使用 Mac 上的内置预览应用程序查看 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 的预览中剪切并粘贴到浏览器会失败。

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

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

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

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

如果您通过添加使用 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