全局设置pdf图片的最大宽度

全局设置pdf图片的最大宽度

一些背景信息:我使用 Inkscape 生成 pdf 格式的图片,然后使用常用函数将其导入 latex \includegraphics{pdffile}。除了将图片保存为矢量格式外,它还可以设置图片的正确尺寸,无需我进行任何干预。

问题是,有时我不得不制作一个尺寸超出页面宽度的 PDF。这可以很容易地手动纠正,使用

\includegraphics[width=\pagewidth]{pdffile}

但是我想要的是,使用一些技巧来告诉乳胶,如果超出页面宽度,则自动将所有图形设置为页面宽度,如果没有超出,则保留原始尺寸。

以下是 MWE:

\documentclass[10pt,a4paper]{article}
\usepackage{fontspec,graphicx}
\usepackage[left=2cm,right=5cm,top=5cm,bottom=2cm]{geometry}
\begin{document}

Some text.

\begin{figure}[h]
\begin{center}
   \includegraphics{example-image-a.pdf}
\end{center}
\caption{Some too long PDF.}
\end{figure}

\end{document}

答案1

这定义了一个新命令\includeimage[]{}。它的工作原理与 类似\includegraphics[]{},只是它会在需要时限制宽度\textwidth,并且如果在选项中没有手动设置宽度以覆盖它。也就是说,如果您选择,您仍然可以覆盖最大值。

\includegraphics{example-image-a.pdf}这显示了和之间的区别\includeimage{example-image-a.pdf}

旧与新

代码:

\documentclass[a5paper]{article}
\usepackage[showframe]{geometry}
\usepackage{graphicx,xparse}
\makeatletter
  \newlength\img@width
  \NewDocumentCommand\includeimage { O {} m }{%
    \settowidth\img@width{\includegraphics[#1]{#2}}%
    \ifdim\img@width > \textwidth \includegraphics[width=\textwidth, #1]{#2}%
    \else \includegraphics[#1]{#2}5
    \fi}
\makeatother
\begin{document}

Some text.

\begin{figure}
  \centering
  \includegraphics{example-image-a.pdf}
  \caption{Some too long PDF.}
\end{figure}
\begin{figure}
  \centering
  \includeimage{example-image-a.pdf}
  \caption{Some too long PDF.}
\end{figure}

\end{document}

笔记:

  • 大多数情况下最好\includegraphics{example-image-a}不要使用扩展名。 也是一样\includeimage{example-image-a}

  • 不要使用center环境,因为figure它会增加额外的垂直空间。

  • 不要使用\begin{figure}[h]。如果你真的想要一些东西这里,根本不要使用figure。(如果您想要标题,请使用支持浮动外部标题的captioncapt-of。)

相关内容