所有图片均在同一页

所有图片均在同一页

我正在尝试用 tikz 绘图。

目的是创建一个文档,第一页包含标题和其他信息。其他每页都是某种电缆的线路图。

我使用 python 生成 tex 代码。我需要在每个线路图之间(每个之间tikzpicture)开始一个新页面。

因此我尝试使用一个简单的新页面,但是 MikTeX 向我报告了这个错误:

! Missing \endgroup inserted.
<inserted text>
            \endgroup
l.12 \newpage

?

我的 TeX 文件是:

\documentclass[a4paper,class=article,border=0pt]{standalone}
\usepackage{tikz}
%
\begin{document}
%
\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[red] (0,0) -- (21,29.7);
\draw[red] (1,0) -- (0,1);
\draw[blue] (0,0) rectangle (21,29.7);
\draw[green] (1,1) rectangle (20,28.7);
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[blue] (1,1) rectangle (20,28.7);
\end{tikzpicture}
%
\end{document}

答案1

我提供了一种控制的简单方法分页符standalone课堂里。

所有图片均在同一页

作为 MWE,我根据问题采用以下代码,其中在同一页面中生成三张图片。

在此处输入图片描述

\documentclass[a4paper,class=article,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
%
\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[red] (0,0) -- (21,29.7);
\draw[red] (1,0) -- (0,1);
\draw[blue] (0,0) rectangle (21,29.7);
\draw[green] (1,1) rectangle (20,28.7);
\end{tikzpicture}
%
\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[blue] (1,1) rectangle (20,28.7);
\end{tikzpicture}
%
\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[red] (1,1) rectangle (20,28.7);
\end{tikzpicture}
%
\end{document}

每张图片位于不同的页面

采用@Ulrike Fischer 的解决方案,即向tikz文档类添加选项,即\documentclass[a4paper,class=article,border=0pt]{standalone}通过\documentclass[a4paper,class=article,border=0pt,tikz]{standalone}在每个不同的页面中出现的图片来更改行。

在此处输入图片描述

完全控制分页符

如果我们想在图片之间任意插入分页符。例如,将一张图片放在第一页,将两张图片放在最后一页。我们可以生成一个假的环境,例如,standalonepage将属于同一页面的图片分组。如前例所示。

在此处输入图片描述

\documentclass[a4paper,class=article,border=0pt]{standalone}
\usepackage{tikz}
%
\newenvironment{standalonepage}{}{} %Dummy environment that contains pictures in the same page
\standaloneenv{standalonepage} %The dummy environment is make known to the stand alone class
\begin{document}

%First Page
\begin{standalonepage}
  \begin{tikzpicture}
    \clip (0,0) rectangle (21,29.7);
    \draw[red] (0,0) -- (21,29.7);
    \draw[red] (1,0) -- (0,1);
    \draw[blue] (0,0) rectangle (21,29.7);
    \draw[green] (1,1) rectangle (20,28.7);
  \end{tikzpicture}
\end{standalonepage}

%Second Page
\begin{standalonepage}
  \begin{tikzpicture}
    \clip (0,0) rectangle (21,29.7);
    \draw[blue] (1,1) rectangle (20,28.7);
  \end{tikzpicture}

  \begin{tikzpicture}
    \clip (0,0) rectangle (21,29.7);
    \draw[red] (1,1) rectangle (20,28.7);
  \end{tikzpicture}
\end{standalonepage}

\end{document}

答案2

此类文档的替代解决方案可能是incgraph其文档摘要称:

incgraph提供用于在全纸尺寸上包含图形的工具。图形可以针对给定的纸张格式居中,也可以将纸张调整为图形尺寸。该软件包的主要用途 incgraph是将一个或多个扫描件或拍摄的照片转换为 PDF 文档。它还可以应用于全纸尺寸LaTeX创建的图形。该软件包incgraph提供了一个带有基本宏的工具箱和一个方便的用户界面,该界面包装了众所周知的 includegraphics。此外,还特别支持书签。

在这种特殊情况下,作为一种替代standalone方案,其优势在于将整个文档(标题页和图表)放在一个独特的.tex文件中。

如下面的例子所示,TikZ可以包含图形并且它们保持自己的大小或者可以包含在正式页面中。

\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{incgraph}
%
\title{Cable catalogue}
\author{Anonymous}

\begin{document}

\maketitle

%
\begin{inctext}
\begin{tikzpicture}
\draw[red] (0,0) -- (21,29.7);
\draw[red] (1,0) -- (0,1);
\draw[blue] (0,0) rectangle (21,29.7);
\draw[green] (1,1) rectangle (20,28.7);
\end{tikzpicture}
\end{inctext}

\begin{inctext}[currentpaper]
\begin{tikzpicture}
\draw[blue] (1,1) rectangle (5,8);
\end{tikzpicture}
\end{inctext}

\begin{inctext}[border=1cm]
\begin{tikzpicture}
\draw[blue] (1,1) rectangle (5,8);
\end{tikzpicture}
\end{inctext}

\begin{inctext}[border=3mm]
\begin{tikzpicture}
\draw[blue] circle (3cm);
\end{tikzpicture}
\end{inctext}

\incgraph{frog.jpg}
\end{document}

在此处输入图片描述

答案3

以下代码模拟了您的情况。使用 编译以下内容pdflatex -shell-escape main.tex

% main.tex
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{figure.tex}
\documentclass[tikz,multi]{standalone}

\begin{document}

\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[red] (0,0) -- (21,29.7);
\draw[red] (1,0) -- (0,1);
\draw[blue] (0,0) rectangle (21,29.7);
\draw[green] (1,1) rectangle (20,28.7);
\end{tikzpicture}

\begin{tikzpicture}
\clip (0,0) rectangle (21,29.7);
\draw[blue] (1,1) rectangle (20,28.7);
\end{tikzpicture}

\end{document}
\end{filecontents*}

\usepackage{graphicx}
\immediate\write18{pdflatex figure}


\title{My title}
\author{I am}
\date{\today}

\newcommand{\Insert}[2][1]{\includegraphics[scale=#1,page=#2]{figure}\newpage}

\begin{document}
\maketitle

\Insert[0.5]{1}
\Insert[0.5]{2}
\end{document}

相关内容