假设我有这个很长的 URL(或者恰好位于一行的末尾),目前 LaTeX 会将该文档编译为:
something something http://This-
IsMyUrl.com
虽然实际的 URL 是http://ThisIsMyUrl.com
。在 PDF 查看器中它没问题,但是一旦打印在纸上,连字符就不受欢迎了。
我的代码是标准的:\href{http://ThisIsMyUrl.com}{http://ThisIsMyUrl.com}
。我这样做是为了让别人在纸上阅读时可以转到该 URL。(\href{http://ThisIsMyUrl.com}{Click here to learn more}
在纸上阅读很傻)
我做了一些搜索,到目前为止\allowbreak
有些效果,但它会使编译后的文档看起来像这样:
% something something \href{http://ThisIsMyUrl.com}{\allowbreak http://ThisIsMyUrl.com}
something something
http://ThisIsMyUrl.com
它看起来太丑了。我想要的是:
something something http://This
IsMyUrl.com
我怎样才能做到这一点而不强制整个文档使用连字符?
答案1
我无法理解当前的问题。
网址没有带连字符,链接文本被连字符。它是文本。
\documentclass{article}
\usepackage{hyperref}
\urlstyle{same}
\begin{document}
\parbox{7cm}{%
Here is text and an url:
\url{http://tex.stackexchange.com/questions/309827/stop-auto-hyphens-in-urls}
}
\the\textwidth
\parbox{320pt}{%
You can even have a hyperlink with an alternative text:
\href{http://tex.stackexchange.com/questions/309827/stop-auto-hyphens-in-urls}{No
auto hyphenation in urls}
}
\end{document}
答案2
的第二个参数\href
可以是自由的普通文本,它将像普通文本一样被连字符连接。因此,如果您想要一个不带连字符的断行,则必须插入必要的命令,例如\babelhyphen
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{hyperref}
\textwidth=0.3cm
\begin{document}
bla \href{http://tex.stackexchange.com/questions/309827/stop-auto-hyphens-in-urls}
{http://This\babelhyphen{empty}Is\babelhyphen{empty}My\babelhyphen{empty}Url.\babelhyphen{empty}com}
\end{document}
答案3
URL 连字符的标准封装方式url
是,在特殊字符处将没有连字符的 URL 连字符,特殊字符可以配置。URL 之间没有连字符。
下面的示例展示了通过 设置URL的几种方法hyperref
。\nolinkurl
提供了一个没有链接的URL,它可以用来格式化 URL 或其片段,放在 的第二个参数中\href
:
\documentclass{article}
\usepackage{booktabs}
\usepackage[colorlinks]{hyperref}
\begin{document}
\begin{tabular}{lp{1pt}}% narrow second column to force hyphenation
\verb|\href|/plain:&
\href{http://ThisIsMyUrl.com/}{http://ThisIsMyUrl.com}\\
\addlinespace
\verb|\url|:&
\url{http://ThisIsMyUrl.com/}\\
\addlinespace
\verb|\href|+\verb|\nolinkurl|:&
\href{http://ThisIsMyUrl.com/}{\nolinkurl{http://ThisIsMyUrl.com}}\\
\addlinespace
\verb|\href|+\verb|\nolinkurl|+\verb|same|:&
\urlstyle{same}%
\href{http://ThisIsMyUrl.com/}{\nolinkurl{http://ThisIsMyUrl.com}}\\
\addlinespace
manual hyphenation:&
\href{http://ThisIsMyUrl.com/}{\nolinkurl{http://This}}\hspace{0pt}%
\href{http://ThisIsMyUrl.com/}{\nolinkurl{Is}}\hspace{0pt}%
\href{http://ThisIsMyUrl.com/}{\nolinkurl{My}}\hspace{0pt}%
\href{http://ThisIsMyUrl.com/}{\nolinkurl{Url.com}}\\
\end{tabular}
\end{document}