如何在不改变分辨率的情况下解决 \includegraphics 中的尺寸过大错误

如何在不改变分辨率的情况下解决 \includegraphics 中的尺寸过大错误

我正在通过从大型图像数据库中包含一些随机图像来创建 pdf。此数据库中的图像分辨率差异很大,因此我无法更改分辨率。除此之外,由于布局限制,我无法使用类似问题的一些现有解决方案。

注意:您可以下载图片这里

\documentclass{article}[10pt]
\usepackage[margin=0.5in]{geometry}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\usepackage{xcolor}
\newcommand\pic[1]{
    \includegraphics[width=1cm]{#1}
\hspace{0.25cm}
}
\newcommand\rdpic[3]%
{\begin{tabular}[]{@{}l@{}}
        \footnotesize\color{blue}  #1\\[-1ex]
        \footnotesize\color{blue}  #2\\
        \pic{#3}
    \end{tabular}%
}
\begin{document}
    \noindent
    \begin{tabularx}{\textwidth}%
        {>{\begin{sideways}\color{red}}m{2ex}<{\end{sideways}}%
            X%
        }
        \toprule
        row 1
                & \pic{1-13.jpg}
        \\\midrule
        row 2
&       \rdpic{1}{-0.4602}{1-13.jpg}
        \rdpic{2}{-0.4600}{140a900f-0781-4627-80eb-d8789de17812.jpg}
        \rdpic{3}{-0.4600}{5d7bb2d2-041a-420c-a470-384aa15dbe83.jpg}
        \rdpic{4}{-0.4599}{be21f5f1-ad2c-4389-8473-7b18c68e4eb9.jpg}
        \rdpic{5}{-0.4599}{ae5d6366-7d30-4755-bcf1-34fae2be0054.jpg}
        \rdpic{6}{-0.4598}{ed3ae766-9a7e-4f3b-8b57-c6c97b68a04a.jpg}
        \rdpic{7}{-0.4598}{c2e177d3-38a6-48bb-91ca-ee88810fb2c7.jpg}
        \rdpic{8}{-0.4598}{377a7efa-af04-4c21-8284-d0647949aa69.jpg}
        \rdpic{9}{-0.4598}{9b521e94-55d8-4c68-8f22-fb7dd0ce8953.jpg}
        \rdpic{10}{-0.4598}{96ce00e6-f672-4d49-8a90-dd5855eb093f.jpg}
        \\\midrule
        row 3
        &       \rdpic{1}{-0.4602}{1-13.jpg}
        \rdpic{365113}{-0.1779}{10-13.jpg}
        \rdpic{421389}{-0.1196}{2-13.jpg}
        \rdpic{618943}{0.0728}{3-13.jpg}
        \rdpic{801031}{0.1514}{4-13.jpg}
        \rdpic{569609}{0.0503}{5-13.jpg}
        \rdpic{655861}{0.0862}{6-13.jpg}
        \rdpic{894375}{0.7555}{7-13.jpg}
        \rdpic{136541}{-0.3524}{8-13.jpg}
    \\\bottomrule
    \end{tabularx}
\end{document}

在此处输入图片描述

答案1

实际上,这个例子一点也不简单,只需删除一些东西,检查错误是否仍然发生,就可以轻松地缩减为以下内容

\documentclass{article}

\usepackage{tabularx,graphicx}

\begin{document}
   \noindent
    \begin{tabularx}{\textwidth}{X}
        \includegraphics{10-13.jpg}
    \end{tabularx}
\end{document}

如果你查看日志或终端输出,你会看到

pdfTeX warning: pdflatex: arithmetic: number too big
<10-13.jpg, id=1, --32768.0pt x 0.0pt> <use 10-13.jpg>
! Dimension too large.

因此,在图形包算法放弃之前,! Dimension too largepdftex 已经放弃读取图像的自然大小,并且已经超出其宽度,显示为负的 maxdimen。考虑到起始宽度,任何将图像缩放到任何大小的尝试都将以任意方式失败。

该文件似乎有些奇怪,如果我只是让 imagemagic convert 重写 jpg

mv 10-13.jpg x.jpg
convert x.jpg 10-13.jpg

然后 pdftex 可以毫无问题地读取它并显示:

<10-13.jpg, id=1, 718.685pt x 530.98375pt> <use 10-13.jpg> <use 10-13.jpg>

也就是说,它读取的初始宽度为 718.685pt

相关内容