停止在 URL 中使用自动连字符

停止在 URL 中使用自动连字符

假设我有这个很长的 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}

结果

相关内容