重新定义 \href 以实现可访问性

重新定义 \href 以实现可访问性

我正在使用 tagpdf.sty 从 LaTeX 制作可访问的 pdf。到目前为止,除了添加 UA 元数据之外,我可以做任何事情。但是 (重新) 定义 \href 时存在一个小问题。这是我正在使用的简化版本。我需要 URI、锚文本和 pdf 中的注释,它们可以通过 LaTeX 或 LuaLaTeX 中的 \pdftag 生成。

问题是 #2 可能会被拆分成一行。因此,原则上,我们可能需要两个或更多个 \pdfannots。有人能建议一种方法来处理这个问题吗?

\newlength{\@Href@Width}
\newlength{\@Href@Height}
\newlength{\@Href@Depth}
\newcommand\Href[3]{%  URI/text/comment
  \tagstructbegin{tag=Link}
  \push@mc{16}% Link
  \tagmcbegin{tag=Link}
  \settowidth{\@Href@Width}{#2}
  \settoheight{\@Href@Height}{\vphantom{(}#2}
  \settodepth{\@Href@Depth}{\vphantom{(}#2}
  \addtolength{\@Href@Width}{1pt}
  \addtolength{\@Href@Height}{1pt}
  \addtolength{\@Href@Depth}{1pt}
  \pdfannot width \@Href@Width height \@Href@Height depth
  \@Href@Depth {/Subtype/Link/Contents(#3)/Border[ 0 0 0.5 [1 1] ]
    /C[ 0 0.5 1 ] /A << /S/URI/Type/Action/URI(#1) >> }#2
  \ifthenelse{\boolean{mc@fza}}{\emc}{}
  \pop@mc%
  \tagstructend% Link
}

相关内容