如何使用点生成的图形填满整个页面?

如何使用点生成的图形填满整个页面?

我有包含以下内容的 .dot 文件:

digraph world { size="7,7";
    {rank=same; S8 S24 S1 S35 S30;}
    {rank=same; T8 T24 T1 T35 T30;}
    {rank=same; 43 37 36 10 2;}
    {rank=same; 25 9 38 40 13 17 12 18;}
    {rank=same; 26 42 11 3 33 19 39 14 16;}
    {rank=same; 4 31 34 21 41 28 20;}
    {rank=same; 27 5 22 32 29 15;}
    {rank=same; 6 23;}
    {rank=same; 7;}

    S8 -> 9;
    S24 -> 25;
    S24 -> 27;
    S1 -> 2;
    S1 -> 10;
    S35 -> 43;
    S35 -> 36;
    S30 -> 31;
    S30 -> 33;
    9 -> 42;
    9 -> T1;
    25 -> T1;
    25 -> 26;
    27 -> T24;
    2 -> {3 ; 16 ; 17 ; T1 ; 18}
    10 -> { 11 ; 14 ; T1 ; 13; 12;}
    31 -> T1;
    31 -> 32;
    33 -> T30;
    33 -> 34;
    42 -> 4;
    26 -> 4;
    3 -> 4;
    16 -> 15;
    17 -> 19;
    18 -> 29;
    11 -> 4;
    14 -> 15;
    37 -> {39 ; 41 ; 38 ; 40;}
    13 -> 19;
    12 -> 29;
    43 -> 38;
    43 -> 40;
    36 -> 19;
    32 -> 23;
    34 -> 29;
    39 -> 15;
    41 -> 29;
    38 -> 4;
    40 -> 19;
    4 -> 5;
    19 -> {21 ; 20 ; 28;}
    5 -> {6 ; T35 ; 23;}
    21 -> 22;
    20 -> 15;
    28 -> 29;
    6 -> 7;
    15 -> T1;
    22 -> T35;
    22 -> 23;
    29 -> T30;
    7 -> T8;
    23 -> T24;
    23 -> T1; }

我该如何呈现它并完成一个页面?

答案1

我会使用这种方法。我已经安装了图形可视化,修改了系统 PATH(Windows),然后我创建了一个独立的 PDF 文件,dot之后对其进行了裁剪。我们可以使用dot2tex工具和dot2texi包。优点是你可以从点文件中获取 TikZ 代码,缺点是你需要 Python 和 EasyInstall 才能使其工作。在 Windows 下设置它并不容易,我建议尝试dottexgraphviz首先介绍一下软件包。

我们正在自动或手动获取mal-dots-dot2tex-fig1.dot文件。我们以这种方式处理文件,结果是一个独立的 PDF 文件。

点-Tpdf -O mal-dots-dot2tex-fig1.dot
pdfcrop --hires --margins 0 mal-dots-dot2tex-fig1.dot.pdf

下一个任务是包含 PDF 文件并将其放入页面中。我测量并比较\paperwidth图片\paperheight的宽度和高度。有了这四个尺寸,我们可以在两种纸张模式(纵向、横向)中正确缩放更宽/更高的图像。对于这些测试,我们使用mwe包裹。

最后一项任务是将图片放置在页面中间。我使用绝对定位TikZ包。它需要运行两次 TeX。我正在使用,lualatexxelatexpdflatex引擎也可以使用。对于普通的,latex我们需要获取eps文件。

lualatex mal-dots.tex
lualatex mal-dots.tex

您可能想尝试background或者fancyhdr如果您想在更多页面上放置图片,可以使用软件包。我想情况并非如此。我附上了 dot 和 TeX 文件以及排版页面的预览。

文件mal-dots-dot2tex-fig1.dot

// I am the mal-dots-dot2tex-fig1.dot file...
digraph world { size="7,7";
    {rank=same; S8 S24 S1 S35 S30;}
    {rank=same; T8 T24 T1 T35 T30;}
    {rank=same; 43 37 36 10 2;}
    {rank=same; 25 9 38 40 13 17 12 18;}
    {rank=same; 26 42 11 3 33 19 39 14 16;}
    {rank=same; 4 31 34 21 41 28 20;}
    {rank=same; 27 5 22 32 29 15;}
    {rank=same; 6 23;}
    {rank=same; 7;}
    S8 -> 9;
    S24 -> 25;
    S24 -> 27;
    S1 -> 2;
    S1 -> 10;
    S35 -> 43;
    S35 -> 36;
    S30 -> 31;
    S30 -> 33;
    9 -> 42;
    9 -> T1;
    25 -> T1;
    25 -> 26;
    27 -> T24;
    2 -> {3 ; 16 ; 17 ; T1 ; 18}
    10 -> { 11 ; 14 ; T1 ; 13; 12;}
    31 -> T1;
    31 -> 32;
    33 -> T30;
    33 -> 34;
    42 -> 4;
    26 -> 4;
    3 -> 4;
    16 -> 15;
    17 -> 19;
    18 -> 29;
    11 -> 4;
    14 -> 15;
    37 -> {39 ; 41 ; 38 ; 40;}
    13 -> 19;
    12 -> 29;
    43 -> 38;
    43 -> 40;
    36 -> 19;
    32 -> 23;
    34 -> 29;
    39 -> 15;
    41 -> 29;
    38 -> 4;
    40 -> 19;
    4 -> 5;
    19 -> {21 ; 20 ; 28;}
    5 -> {6 ; T35 ; 23;}
    21 -> 22;
    20 -> 15;
    28 -> 29;
    6 -> 7;
    15 -> T1;
    22 -> T35;
    22 -> 23;
    29 -> T30;
    7 -> T8;
    23 -> T24;
    23 -> T1; }

文件mal-dots.tex

%! *latex mal-dots.tex
%   (twice)
% Needed tool: http://www.graphviz.org/
% Recommended tools: http://code.google.com/p/dot2tex/ and dot2texi package
\documentclass[a4paper]{article} % landscape
\pagestyle{empty}
\usepackage{tikz}
\usepackage[multidot]{grffile}
% \usepackage{mwe}
\begin{document}
\def\malname{mal-dots-dot2tex-fig1.dot-crop.pdf}
  % example-image-16x9
  % example-image-9x16
\newbox\malbox
\setbox\malbox=\hbox{\includegraphics{\malname}}
\begin{tikzpicture}
  [remember picture, overlay]
\node at (current page) {%
\ifnum\paperwidth<\paperheight % portrait: page
\ifnum\wd\malbox<\ht\malbox % portrait: picture
  \includegraphics[height=\paperheight]{\malname}%
    \else % landscape: picture
  \includegraphics[angle=90,height=\paperheight]{\malname}%
  \fi % end of \ifnum picture
\else % landscape: page
\ifnum\wd\malbox<\ht\malbox % portrait: picture
  \includegraphics[angle=90,width=\paperwidth]{\malname}%
    \else % landscape: picture
  \includegraphics[width=\paperwidth]{\malname}%
  \fi % end of \ifnum picture
\fi % end of \ifnum paper
};%
\end{tikzpicture}%
\end{document}

姆韦

相关内容