超链接太大

超链接太大

我有一个包含包含图形的超链接。超链接页面尺寸比包含的包含图形的页面尺寸大得多。微小的图像,夸张的链接范围

\documentclass[letter,10pt]{article} 
\usepackage{graphicx,lmodern,wasysym,paralist}
\usepackage[]{hyperref}
\hypersetup{
    pdftitle={2018},
    colorlinks=false,
}
\usepackage[paperheight=148mm,paperwidth=069mm,margin=4mm,top=1.75cm,heightrounded]{geometry}

\begin{document}
    \hyperlink{linkdest}{\fbox{\includegraphics[width=.045\textwidth]{mwe1}}}
    \newpage
    \hypertarget{linkdest}{linkdest}\newpage
\end{document}

(mwe=blank) 也粘贴在这里。

如何才能缩小超链接尺寸,使其紧密围绕所包含的图形?

%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.15.6 (http://cairographics.org)
%%CreationDate: Thu Aug 09 11:00:27 2018
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%BoundingBox: 0 0 311 425
%%EndComments
%%BeginProlog
save
50 dict begin
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
      0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
    { globaldict begin /?pdfmark /pop load def /pdfmark
    /cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
  {
    dup
    type /stringtype eq
    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
  } forall
  currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
      { pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
      /cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def
/cairo_image { image cairo_flush_ascii85_file } def
/cairo_imagemask { imagemask cairo_flush_ascii85_file } def
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 0 311 425
%%EndPageSetup
q 0 0 311 425 rectclip
1 0 0 -1 0 425 cm q
1 g
2.957 2.957 304.758 418.281 re f
0 g
5.915815 w
0 J
0 j
[] 0.0 d
4 M q 1 0 0 1 0 0 cm
2.957 2.957 304.758 418.281 re S Q
Q Q
showpage
%%Trailer
end restore
%%EOF

答案1

从 .tex 文件生成输出文件(dvi/ps/pdf/whatever)的工作流程是什么样的?

我将您的后记代码保存为 mwe1.eps。

首先我进入 latex → dvips → ps2pdf-route:

我用 latex 编译了您的 MWE 并获得了一个 .dvi 文件。
我在该 .dvi 文件上运行 dvips 并获得了一个 .ps 文件。
我在该 .ps 文件上运行 ps2pdf 并获得了一个 .pdf 文件。

该.pdf 文件看起来还不错。

然后我进入 latex → dvipdf-route:

我用 latex 编译了您的 MWE 并获得了一个 .dvi 文件。
我在该 .dvi 文件上运行 dvipdf 并获得了一个 .pdf 文件。

那个.pdf 文件看起来也不错。

然后我走了 pdflatex 路线:

您不能将 .eps 文件与 pdflatex 一起使用。
因此,我首先调用 ps2pdf 将 mwe1.eps 转换为 mwe1.pdf。
命令行上的调用是: ps2pdf mwe1.eps 。

执行此操作后,我得到了一个 A4 尺寸的文件 mwe1.pdf,其中漂亮的小边框位于右下角某处。这是因为在我的系统上,ps2pdf 默认假设图像将放在 A4 页面上。

在 MWE 上运行 pdfLaTeX 后,当然会导入尺寸过大的 .pdf 文件。因此链接也太大了。

然后我意识到 ps2pdf 在做什么,并在调用 ps2pdf 将 mwe1.eps 转换为 mwe1.pdf 时传递了 -dEPSCrop 选项:

ps2pdf-dEPSCrop mwe1.eps

这次我得到的 mwe1.pdf 不是 A4 尺寸,但被正确裁剪到 mwe1.eps 标题中指定的边界框。

这次在 MWE 上运行 pdfLaTeX 产生了一个看起来不错且链接不太大的 .pdf 文件。

顺便说一句:我的 .log 文件说明了我使用的 TeX-Distribution:

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)

我希望这有帮助。

(如果我能写出更多字符的评论,我就不会回答这个问题了。)

相关内容