\textbf{} 在 Breakurl \burlalt 中不起作用

\textbf{} 在 Breakurl \burlalt 中不起作用

下面是我的代码,

\documentclass{article}
\usepackage[breaklinks]{hyperref}
\usepackage{breakurl}
\usepackage{url}
\hypersetup{
pdfpagemode=none,%
colorlinks,%
citecolor=blue,%
filecolor=blue,%
linkcolor=blue,%
urlcolor=blue
}

\begin{document}

If you have any questions, at \burlalt{www.goooooggggggle.comssss}{32, 396, (1964)}

If you have any questions, at \burlalt{www.goooooggggggle.comssss}{\textbf{32}, 396, (1964)}

If you have any questions, at have any questions, at have have \burlalt{www.goooooggggggle.comssss}{32, 396, (1964)}

L.~A.~Anchordoqui, H.~Goldberg, and G.~Steigman, Phys.
Lett. B
\burlalt{http://dx.doi.org/10.1016/j.physletb.2012.12.019}{718, 1162 (2013)}.


\end{document}

当我在 \burlalt 中使用 \textbf{} 时,它会引发一些错误,是否可以在 \burlalt 中使用这些命令,请指导我,我是 Latex 新手

答案1

下面的例子定义了宏\breakhref,其使用方式与 类似\href。第一个参数是 URL,与 的第一个参数一样\href

的第二个参数\href可以包含相当通用的 LaTeX 文本。在连字符和断点处分割此文本以稍后插入每个部分(音节、空格等)的链接并非易事。这是包的领域soul。它有一个定义自定义驱动程序的接口,其中只定义了不同元素类型的处理。

将一般的 LaTeX 文本字符串划分为原子单位(音节等)绝非易事。需要遵守一些限制。阅读文档因此强烈推荐包soul,特别是“2.1 有些东西有效......”和“2.2 ......其他无效”部分。

评论:

  • 在实现过程中需要付出一些努力来保留词间空间的灵活性,而不会在链接中留下空隙。

  • 每个原子单位都会获得一个,\vphantom{<complete text>}以获得统一的链接高度和深度。例如,如果链接带有下划线,则该线应在同一行上的元素的相同垂直位置。下划线表示 PDF 注释的下划线链接(通过hyperref选项pdfborderstyle)。由于 DVI 格式不保留框尺寸,因此 中的下划线xdvi是“参差不齐的”。

  • 隐式连字符,由行末的连字符设置,是不是部分链接由于 的限制\discretionary,无法\special在列表内使用链接功能。这也可以视为功能,因为此连字符原本不属于链接文本。

    支持使用显式连字符作为链接。

  • 这种方法增加了链接注释的数量,因为每个部分都构成一个新的独立链接。

完整示例:

% latex/dvips/ps2pdf
\documentclass[a5paper]{article}
\usepackage{hyperref}
\usepackage{url}
\usepackage{xcolor}
\hypersetup{
  pdfpagemode=UseNone,
  colorlinks,
  allcolors=blue,
  % allbordercolors=blue,
  % pdfborderstyle={/S/U/W 1},
}

\usepackage{soul}

\makeatletter
\newcommand*{\breakhref}{}
\DeclareRobustCommand*{\breakhref}{%
  \begingroup
  \hyper@normalise\breakhref@
}
\newcommand*{\breakhref@}[2]{%
  \endgroup
  \SOUL@setup
  \def\SOUL@everyspace##1{%
    ##1%
    \dimen@=\fontdimen2\font
    \advance\dimen@ by \fontdimen3\font
    \cleaders\hbox to \dimen@{%
      \hss
      \href{#1}{\ \vphantom{#2}}%
      \hss
    }\hskip\dimen@\relax
    \hspace{-\fontdimen3\font
        plus \fontdimen3\font minus \fontdimen3\font}%
  }%
  \def\SOUL@everysyllable{%
    \href{#1}{\the\SOUL@syllable\vphantom{#2}}%
  }%
  \def\SOUL@everyhyphen{%
    \discretionary{-}{}{}%
  }%
  \def\SOUL@everyexhyphen##1{%
    \SOUL@setkern\SOUL@hyphkern
    \href{#1}{##1\vphantom{#2}}%
    \discretionary{}{}{%
      \SOUL@setkern\SOUL@charkern
    }%
  }%
  \SOUL@{#2}%
}
\makeatother

\begin{document}

If you have any questions, at
\breakhref{http://www.example.org/}{32, 396, (1964)}

If you have any questions, at
\breakhref{http://www.example.org/}{\textbf{32}, 396, (1964)}

\medskip

L.~A.~Anchordoqui and H.~Goldberg, Phys.
Lett. B
\breakhref{http://dx.doi.org/10.1016/j.physletb.2012.12.019}{%
  718, 1162 (2013)}.

\medskip

\breakhref{http://www.example.net}{%
  This little macro will hardly be good enough for linguists.
  Example-with-explicit-hyphens.}

\medskip

\parbox{1mm}{%
  \breakhref{http://www.example.net}%
  {This little macro is non-trivial.}
}
\end{document}

结果/颜色链接

带下划线的链接变体

allbordercolors=blue,
pdfborderstyle={/S/U/W 1},

结果/下划线

在倒数第三行中, 中的显式连字符non-被链接,而倒数第二行中的隐式连字符则triv-没有。部分重叠是由于v和之间的负字距调整-未被 忽略soul

不推荐使用盒装链接,因为每个元素都是盒装的:

结果/框

答案2

\burlalt适用于两个 URL,不适用于一个 URL 和任意文本。请\href改用:

 \href{www.goooooggggggle.comssss}{\textbf{32}, 396, (1964)}

相关内容