我意识到这可能是一个主观问题,但我认为这个网站是最适合讨论这个问题的地方。
我正在尝试确定尾随标点符号是否应成为链接文本的一部分。引文的典型样式是将尾随标点符号作为引文的一部分,因此我想知道这是否也适用于链接。
下面是一个示例,我认为如果标点符号是链接的一部分,效果会更好仅有的对于使用方框来指示链接的情况,但对于使用颜色或下划线来指示链接的情况,最好将其省略。也就是说,对于方框样式,使用第二个版本,但对于其他两种样式,使用第一个版本。
笔记:
由于各种原因,我尚未决定使用哪种风格:
彩色链接的一个问题是,如果有两个链接,则颜色不明显:在本例中,一个指向“the”,另一个指向“yahoo”。当然,在这种情况下,从英文文本中可以清楚地看出颜色,但请考虑链接指向复合词,其中两个词可以有自己的链接或指向复合词的链接。也许更好的例子是彩色链接,例如:
那么,这是两个链接:一个指向“正常”,一个指向“强制”,还是只有一个指向“正常强制”的链接?
带下划线的链接有其他问题,因为不容易按照我的要求完全使下划线正常工作。使用应用间接格式的灵魂(使用带有 2 个参数的宏,其中一个可能是可选的)。
当链接文本在一行开始并在下一行结束时,这三种方法都会出现问题。据我所知,盒子版本是唯一一个具有机会解决这个问题的方法是在第一行的右侧留一个开放的框,在第二行的左侧留一个开放的框(当然这还有待实现)
参考:
- 有一个关于的后续问题自动处理超链接的尾随标点符号(如果有)。
代码:
% The following allows to have one version of this code for this questions,
% and the follow up at:
%
% https://tex.stackexchange.com/questions/125358/automating-processing-of-trailing-punctuation-if-any-for-hyperlinks
%
%\def\SmartVersion{}% Leave commented for this question.
\documentclass{article}
\usepackage{xparse}
\usepackage{xcolor}
\usepackage{soul}
\usepackage{xstring}
\usepackage{xspace}
\usepackage[colorlinks=true]{hyperref}
%% ----------------------------------------------------------------
%% https://tex.stackexchange.com/questions/36894/
%% underline-omitting-the-descenders
%%
%%
\makeatletter
\ExplSyntaxOn
\cs_new:Npn \white_text:n #1
{
\fp_set:Nn \l_tmpa_fp {.01}
\fp_mul:Nn \l_tmpa_fp {#1}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{\fp_to_decimal:N \l_tmpa_fp em}}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{-\fp_to_decimal:N \l_tmpa_fp em}}
}
\NewDocumentCommand{\whiten}{ m }
{
\int_step_function:nnnN {1}{1}{#1} \white_text:n
}
\ExplSyntaxOff
\NewDocumentCommand{ \varul }{ D<>{5} O{0.2ex} O{0.1ex} +m } {%
\begingroup
\setul{#2}{#3}%
\def\SOUL@uleverysyllable{%
\setbox0=\hbox{\the\SOUL@syllable}%
\ifdim\dp0>\z@
\SOUL@ulunderline{\phantom{\the\SOUL@syllable}}%
\whiten{#1}%
\llap{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\else
\SOUL@ulunderline{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\fi}%
\ul{#4}%
\endgroup
}%
\makeatother
%% ----------------------------------------------------------------
\newcommand{\CreateLinkA}[2]{%
\hypersetup{pdfborder={0 0 1}, urlcolor=.}%
\href{#1}{#2}%
}%
\newcommand{\CreateLinkB}[2]{%
\hypersetup{pdfborder={0 0 0}, urlcolor=red}%
\href{#1}{#2}%
}%
\newcommand{\CreateLinkC}[2]{%
\hypersetup{colorlinks=false,urlcolor=.}%
\setulcolor{blue}%
\href{#1}{\varul[0.5pt][1.0pt]{#2}}%
}%
\makeatletter
\newcommand{\CreateLink}[3]{%
\IfStrEqCase{#1}{%
{1}{\CreateLinkA{#2}{#3}}%
{2}{\CreateLinkB{#2}{#3}}%
{3}{\CreateLinkC{#2}{#3}}%
}%
\ifdefined\SmartVersion% "If" clause is unused in this question
% If the next character is anything other than a space,
% include that char as part of the text.
% The "-" is supposed to whatever the next character is,
% but don't know how to get that character.
% Note that the "-" is shown in all cases, so this is NOT working.
\@ifnextchar{\space}{\space}{-}%
\else
\xspace%
\fi
}%
\makeatother
\begin{document}
\textbf{Punctuation NOT part of link:}\medskip
\par Go and check out \CreateLink{1}{www.yahoo.com}{the yahoo}, and also\ldots
\par Go and check out \CreateLink{2}{www.yahoo.com}{the yahoo}, and also\ldots
\par Go and check out \CreateLink{3}{www.yahoo.com}{the yahoo}, and also\ldots
\bigskip
\textbf{Punctuation part of link:}\medskip
\par Go and check out \CreateLink{1}{www.yahoo.com}{the yahoo,} and also\ldots
\par Go and check out \CreateLink{2}{www.yahoo.com}{the yahoo,} and also\ldots
\par Go and check out \CreateLink{3}{www.yahoo.com}{the yahoo,} and also\ldots
\end{document}
答案1
答案2
您说“引文的典型风格是将任何尾随标点符号作为引文的一部分”。一些语言学家强烈反对这种普遍持有的观点。Larry Trask 就是其中之一,他在他的标点符号指南中提到了以下内容:
语言学家杰夫·普勒姆 (Geoff Pullum) 是逻辑观点的狂热拥护者,他曾对文字编辑坚持要重新排列他精心放置的标点符号感到非常愤怒,因此写了一篇题为“标点符号和人类自由”的文章 (Pullum 1984)。以下是他的一个例子,首先是逻辑标点符号:莎士比亚的戏剧《理查三世》中有这样一句台词“现在是我们不满的冬天”。
确实如此。现在尝试使用常规标点符号:
莎士比亚的戏剧《理查三世》中有这样一句台词:“现在是我们不满的冬天。”
这绝对是错误的,因为有问题的这一行只是组成一个完整句子的两行中的第一行,因此并没有以句号结尾,而这显然是传统标点符号所暗示的:现在是我们不满的冬天
约克的阳光给夏天带来了灿烂的光辉。