使用独立包创建 PDF 时裁剪边缘的问题

使用独立包创建 PDF 时裁剪边缘的问题

我正在尝试制作一个由以表格方式排列的几个其他图形组成的 pdf 图形。我正在使用独立的 documentclass。但是我得到的结果远非最佳。我使用的是适用于 Windows 的 Texstudio,Miktek 2.9 上的 PDFLatex 命令:pdflatex.exe -synctex=1 -interaction=nonstopmode %.tex

当使用独立包的前两个选项(在 MWE 中)时,我得到的 pdf 的上下两侧被裁剪,但左右两侧没有被裁剪。当使用 varwidth 选项为 true 时,我获得了所需的裁剪边缘,但标题标题((a)、(b)、...)都是左对齐的,括号消失了。每当我删除 preview=true 选项时,我都会出现错误。

我附上了 MWE;在原文中,图 (d) 是这个黑匣子的两倍高。

%\documentclass[border=2pt,crop=true,preview=true]{standalone} % works but spaces on sides
%\documentclass[border=2pt,preview=true]{standalone} % works but spaces on sides
%\documentclass[varwidth=true,preview=true]{standalone} % works reduces side spaces, but captions ragged left without brackets
\documentclass[varwidth=true]{standalone} % same

\usepackage[demo]{graphicx}
\usepackage{tabularx}
\usepackage{subcaption}

\renewcommand{\tabularxcolumn}[1]{m{#1}} 
\begin{document}
\begin{figure}
    \centering
    \begin{tabularx}{0.75\textwidth}{X X} % @{}
        \begin{tabular}{c} 
            \begin{subfigure}[]{0.99\linewidth}
            \centering
            \includegraphics[width=1\textwidth]{}
            \caption{}
            \label{a}
            \end{subfigure} \\ 
            \begin{subfigure}[]{0.99\linewidth}
            \centering
            \includegraphics[width=1\textwidth]{}
            \caption{}
            \label{b}
            \end{subfigure} \\ 
            \begin{subfigure}[]{0.99\linewidth}
            \centering
            \includegraphics[width=1\textwidth]{}
            \caption{}
            \label{c}
            \end{subfigure}
        \end{tabular}
        & 
        \begin{tabular}{c} 
            \begin{subfigure}[]{0.99\linewidth}
            \centering
            \includegraphics[width=0.99\textwidth]{}
            \caption{}
            \label{d}
            \end{subfigure}
        \end{tabular}
    \end{tabularx}
\end{figure}
\end{document}

我将非常感激您对这里发生的事情以及如何解决此问题的评论。

创建的 PDF 没有使用 varwidth

使用 varwidth 选项创建的 PDF

答案1

首先,我在适当的地方使用了@{}。然后删除subfigurefigure环境。接下来是加载caption包并使用它\captionof宏的时候了。这个宏包含在\parbox(需要)中。

另外,子标题的加载方式如下

\usepackage[labelformat=simple]{subcaption}
\renewcommand\thesubfigure{(\alph{subfigure})}

完整的代码如下

\documentclass{standalone}

\usepackage[demo]{graphicx}
\usepackage{tabularx}
\usepackage{caption}
\usepackage[labelformat=simple]{subcaption}
\renewcommand\thesubfigure{(\alph{subfigure})}

\renewcommand{\tabularxcolumn}[1]{m{#1}}
\begin{document}
    \begin{tabularx}{0.75\textwidth}{@{}X X@{}} % @{}
        \begin{tabular}{@{}c}
            \parbox{\linewidth}{%
            \includegraphics[width=\linewidth]{}
            \captionof{subfigure}{}
            \label{a}
            }
            \\
            \parbox{\linewidth}{%
            \includegraphics[width=\linewidth]{}
            \captionof{subfigure}{}
            \label{b}
            }
            \\
            \parbox{\linewidth}{%
            \includegraphics[width=\linewidth]{}
            \captionof{subfigure}{}
            \label{c}
            }
        \end{tabular}
        &
        \begin{tabular}{@{}c}
            \parbox{\linewidth}{%
            \includegraphics[width=\linewidth]{}
            \captionof{subfigure}{}
            \label{d}
            }
        \end{tabular}
    \end{tabularx}
\end{document}

在此处输入图片描述

相关内容