
我真的不喜歡指示連結的紅色框。我想要渲染一些填滿的矩形,當有人懸停時它會顯示出來。顯然,在文字渲染之前,您無法看到那裡寫的內容。為了更好地了解我的想法,如果你將滑鼠懸停在每個連結上,我想要這樣的東西:
但如果你不懸停它,它會是乾淨的白色。我怎樣才能做到這一點?
答案1
這只是部分答案,但它是如何實現這一目標的路線圖。
首先,請注意該hyperref
軟體包沒有提供執行此類操作的「標準方法」。它僅提供連結的邊框樣式(包括為連結添加下劃線,如下所述:如何使用 hyperref 獲得彩色和下劃線的連結?)。原因之一可能是 PDF 標準直接為連結註釋提供了此類邊框樣式,但要獲得無邊框樣式,您需要使用外觀流並形成 XObjects。此類流和物件的文檔可以在這裡找到:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf(從第 612 頁開始了解外觀流,從第 355 頁開始了解表單 XObjects)
需要做的事情如下:找出PDF 輸出必須是什麼樣子才能使連結具有背景顏色(幸運的是,外觀流已經提供了三種不同的模式,包括一種用於不活動的模式和一種用於懸停在物件上的模式;因此,您需要的「動作邏輯」已經在 PDF 標準中實現,您只需要提供實現您想要的外觀的屬性)。
hyperref
然後透過重新定義它的一些命令來更改套件的相應部分,如本答案的「自動」部分所示:如何使用 hyperref 獲得彩色和下劃線的連結?
您可以在這裡找到該包的源代碼hyperref
:http://www.ctan.org/pkg/hyperref
由於 PDF 標準和hyperref
軟體包都非常龐大,因此可能需要花費大量時間來找到將這些東西插入在一起的正確屬性和命令。
無論如何,這樣的解決方案可能不適用於每個 PDF 檢視器,因為它們中的大多數都沒有實現 PDF 標準中編寫的所有內容。然而,只要您只使用背景顏色,它可能適合許多觀眾(但不保證)。