下面是我的代码,
\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)}