图形在 tcolorbox 中水平方向过大

图形在 tcolorbox 中水平方向过大

我在tcbitemize环境中插入了一个图形tcolorbox。图形宽度设置为 \textwidth。因此图形应该完全在框内。但实际上,我得到的是一个水平方向超大的图形,也就是说,图形的右侧超出了框。为什么会出现这种情况?如何解决?

以下是 MWE:

\documentclass{article}
\usepackage[most]{tcolorbox}

    \begin{document}

    \tcbset{clearsep/.style={%
        boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt}%
    }

    \begin{tcolorbox}[clearsep,colframe=orange,boxrule=2pt,sharp corners]
      \begin{tcbitemize}[clearsep,boxrule=2pt,colframe=green,sharp corners,raster columns=1]
         \tcbitem \includegraphics[width=1.0\textwidth]{logo_st}
      \end{tcbitemize}
    \end{tcolorbox}

    \end{document}[!

另一个原始人物 另一个示例剪辑 示例图

原始图

答案1

logp 源图像在右侧被裁剪得太厉害(甚至失去了一点半圆形)。而且顶部和底部的空间比左侧要小。

解决此问题的一些解决方案是:

  1. 使用 Gimp 等绘画程序修复源图像。
  2. 例如,稍微减少图像的打印宽度,.92\textwidth这样至少徽标将出现在框的中心,但这将在顶部和底部的侧面留下更多的空间。
    1. 使用trim选项来\includegraphics纠正两侧的空格(根据需要更改 MWE 的 6 和 -5 值):

在此处输入图片描述

\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\tcbset{clearsep/.style={boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt}}
\begin{tcolorbox}[clearsep,colframe=orange,boxrule=2pt,sharp corners]
\begin{tcbitemize}[clearsep,boxrule=2pt,colframe=green,sharp
 corners,raster columns=1]
\tcbitem \includegraphics[width=\textwidth,trim=6 0 -5 0]{NqH4C.png} 
% Note: NqH4C.png is the second image from the question *as is*, 
% but *without any space* in the filename. Just download it 
% without renaming will not work !!
\end{tcbitemize}
\end{tcolorbox}
\end{document}

无论如何,过度放大 PNG 或 JPG 图像总是一个坏主意。任何位图类型的图像都应具有至少 300 dpi(每英寸点数)的最终分辨率,才能以不错的质量打印。您的图像只有 148 个像素,因此理想情况下不应以超过 1.25 厘米的宽度打印,以便在人眼中看起来更平滑。

相反,矢量图像(如转换为 PDF 的 SVG)或tikz图形可以根据需要放大,而不会损失任何明显的质量。

编辑:

OP 仍然坚信问题不仅在于图像,还添加了一个蘑菇图像来演示问题,而只是在问题的 MWE 中用这个图像更改徽标,图像完美地适合绿色框架,即使在查看器中放大到 1600% xpdf。以下右下角的截图仅使用 400% 的缩放比例进行拍摄,以便检查它是否由蘑菇图像制作:

姆韦

因此,也许 OP 遇到了 TeX 安装过时的问题,或者 PDF 查看器的缩放功能不佳,但无论如何,这似乎是一个“过于本地化”的问题,无法提供任何解决方案。

相关内容