1

I'd like to create a Latex template similar to the one on the picture. Basically it's a set of boxes with different fields plus the big box on the bottom with a graphic. I've been analysing several possibilities, but I'm unsure as to the simplest approach would be.

I'm thinking of using minipages and frameboxes, but I'm unsure as to whether there is another (simpler) approach...

Any ideas?

Thanks in advance:

Pedro

enter image description here

2 Answers2

4

Following the advice of @John Kormylo, I've started looking at TikZ. In the meanwhile, I've found an utility to convert from SVG to TikZ (https://github.com/kjellmf/svg2tikz), which saved me a lot of time, since I already had an SVG template.

I believe now it's just a matter of fine tuning. While this is still WIP, I've managed to create an usable template with all the fields I need using the following code:

\documentclass{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{helvet}
\usepackage{tikz}
\newcommand{\myfont}{\sffamily\tiny}
\tikzset{every picture/.style={/utils/exec={\myfont}}}

\begin{document}
\definecolor{ceaeaea}{RGB}{234,234,234}


\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-3.40000, xscale=3.40000, inner sep=0pt, outer sep=0pt]
\path[draw=black,miter limit=10.00,nonzero rule,line width=0.207pt,rounded
corners=0.0000cm] (31.2797,43.0447) rectangle (178.7203,252.4853);
\path[fill=black] (0.0000,0.0000) node[above right] (flowRoot4524) {};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(294.3900,96.4443) node[above right] (text4770-2) {};
\path[fill=black,line width=0.212pt] (295.5916,96.4856) node[above right]
(text1077) {};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(143.3438,50.8601) node[above right] (text4733) {Data};
\path[draw=black,miter limit=4.00,line width=0.400pt] (141.6885,46.9393) --
(178.7048,46.9393) -- (178.7048,71.5803) -- (141.6885,71.5803) -- cycle;
\path[draw=black,line join=miter,line cap=butt,miter limit=4.00,even odd
rule,line width=0.400pt] (141.8046,59.1590) -- (178.7048,59.1590);
\path[draw=black,line join=miter,line cap=butt,miter limit=4.00,even odd
rule,line width=0.400pt] (165.3336,59.1590) -- (165.3336,71.5803);
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(143.4002,62.6282) node[above right] (text4758) {P (m)};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(166.6337,62.2359) node[above right] (text4762) {TM (min)};
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.1990,46.9393) --
(64.9426,46.9393) -- (64.9426,54.9639) -- (46.1990,54.9639) -- cycle;
\path[draw=black,miter limit=4.00,line width=0.400pt] (66.0925,46.9393) --
(140.4420,46.9393) -- (140.4420,54.9639) -- (66.0925,54.9639) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(67.8957,50.1904) node[above right] (text4770) {Local};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.8226,50.5990) node[above right] (text4774) {Nº};
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.2398,112.2409) --
(178.7500,112.2409) -- (178.7500,162.1446) -- (46.2398,162.1446) -- cycle;
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.2224,56.1200) --
(140.4864,56.1200) -- (140.4864,65.8242) -- (46.2224,65.8242) -- cycle;
\path[draw=black,miter limit=4.00,line width=0.400pt] (141.6497,88.2279) --
(178.7500,88.2279) -- (178.7500,111.1826) -- (141.6497,111.1826) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(143.4002,92.2893) node[above right] (text4770-1) {Rubrica(s)};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.6782,59.4158) node[above right] (text4770-9) {Companheiro(s)};
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.2243,67.2150) --
(81.6619,67.2150) -- (81.6619,77.8195) -- (46.2243,77.8195) -- cycle;
\path[draw=black,miter limit=4.00,line width=0.400pt] (83.1621,67.1952) --
(140.4809,67.1952) -- (140.4809,77.9541) -- (83.1621,77.9541) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.5653,71.0898) node[above right] (text4770-5) {Hora de entrada};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.5653,116.3007) node[above right] (text4770-0) {Notas};
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.2398,163.5650) --
(178.7500,163.5650) -- (178.7500,250.0813) -- (46.0100,250.0813) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(84.6744,70.9296) node[above right] (text4770-0-8) {Tipo};
\path[draw=black,miter limit=4.00,line width=0.400pt] (46.2062,79.0382) --
(81.6900,79.0382) -- (81.6900,96.5244) -- (46.2062,96.5244) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.2763,81.9121) node[above right] (text4770-0-8-6) {Condições};
\path[draw=black,miter limit=4.00,line width=0.400pt] (83.0913,79.1084) --
(140.4102,79.1084) -- (140.4102,102.4919) -- (83.0913,102.4919) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(83.9829,82.4187) node[above right] (text4770-1-4) {Equipamento};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(83.9731,85.9818) node[above right] (text4770-1-4-4) {Fato};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(47.9841,101.0407) node[above right] (text4770-1-4-9) {Gás/Gases usado(s)};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(84.6947,96.4994) node[above right] (text4770-1-4-4-8) {Lastro (kg)};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.0161,82.5229) node[above right] (text4770-1-4-4-85) {Garrafa(s)};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(83.8753,107.2107) node[above right] (text4770-1-4-4-2) {Classificação};
 \path[fill=ceaeaea,miter limit=4.00,line width=0.237pt] (52.0351,48.3821) --
(63.9225,48.3821) -- (63.9225,53.4974) -- (52.0351,53.4974) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (75.7594,48.0878) --
(138.9287,48.0878) -- (138.9287,53.7918) -- (75.7594,53.7918) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (151.9595,48.0878) --
(177.3603,48.0878) -- (177.3603,57.9656) -- (151.9595,57.9656) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (151.9595,60.7878) --
(163.2484,60.7878) -- (163.2484,70.6656) -- (151.9595,70.6656) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (167.4817,63.6100) --
(177.3603,63.6100) -- (177.3603,70.6656) -- (167.4817,70.6656) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (47.6048,60.2613) --
(138.9287,60.2613) -- (138.9287,64.8152) -- (47.6048,64.8152) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (47.6048,72.3524) --
(79.9928,72.3524) -- (79.9928,76.5857) -- (47.6048,76.5857) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (91.2817,69.0384) --
(138.9287,69.0384) -- (138.9287,76.7006) -- (91.2817,76.7006) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (47.6048,89.4257) --
(56.7819,89.4257) -- (56.7819,95.7385) -- (47.6048,95.7385) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (57.8906,89.4257) --
(66.6754,89.4257) -- (66.6754,95.7385) -- (57.8906,95.7385) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (84.2261,86.8029) --
(111.0589,86.8029) -- (111.0589,93.2491) -- (84.2261,93.2491) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt,rounded corners=0.0000cm]
(96.0106,94.9564) rectangle (110.8965,100.6008);
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (112.4484,83.4252) --
(138.9287,83.4252) -- (138.9287,100.6068) -- (112.4484,100.6068) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (47.6048,117.2322) --
(177.3603,117.2322) -- (177.3603,160.9767) -- (47.6048,160.9767) -- cycle;
 \path[draw=black,miter limit=4.00,line width=0.400pt] (46.1464,97.8147) --
(81.6854,97.8147) -- (81.6854,111.1044) -- (46.1464,111.1044) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (47.6048,102.0179) --
(79.5378,102.0179) -- (79.5378,110.2253) -- (47.6048,110.2253) -- cycle;
 \path[draw=black,miter limit=4.00,line width=0.400pt] (83.0350,103.6984) --
(140.4338,103.6984) -- (140.4338,111.1378) -- (83.0350,111.1378) -- cycle;
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (100.8473,104.9735) --
(138.9287,104.9735) -- (138.9287,109.7629) -- (100.8473,109.7629) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(53.0323,51.8397) node[above right] (text4770-3) {\ssrfnumber};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(52.2853,63.9487) node[above right] (text4770-53) {\ssrfbuddy};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(80.0001,51.5671) node[above right] (text4770-6) {\ssrfplace};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(58.6353,75.3258) node[above right] (text4770-12) {Local};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(98.3228,74.0029) node[above right] (text4770-09) {\ssrftype};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(48.3827,92.2260) node[above right] (text4770-60) {\ssrfwatertemp};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(58.5408,92.2260) node[above right] (text4770-61) {\ssrfairtemp};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(89.0624,89.8779) node[below right, text width=2cm] (text4770-7) {\ssrfsuit};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(96.7068,98.3194) node[above right] (text4770-02) {\ssrfweightaamt};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(48.0519,104.4300) node[above right] (text4770-59) {\ssrfcylagasname};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.8749,86.1737) node[above right] (text4770-36)
{\ssrfcyladescription};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(102.4768,108.0755) node[above right] (text4770-19) {\ssrfrating};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(48.0519,121.6278) node[above right, text width=12cm] (text4770-361) {\ssrfcomment};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(156.5311,54.1591) node[above right] (text4770-63) {\ssrfdate};
\path[fill=black,line join=miter,line cap=butt,line width=0.612pt]
(152.6864,64.0571) node[above right] (text4770-615){\ssrfmaximumdepth};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(168.4374,67.3883) node[above right] (text4770-76) {\ssrftime};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(143.4002,74.6774) node[above right] (text4770-1-4-4-0) {Pmédia (m)};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(163.1792,74.8197) node[above right] (text4770-1-4-4-1) {SAC (l/min)};
 \path[draw=black,miter limit=4.00,line width=0.400pt] (141.6885,71.5803) --
(178.7048,71.5803) -- (178.7048,87.3338) -- (141.6885,87.3338) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (143.2308,76.1474) --
(157.0478,76.1474) -- (157.0478,85.9424) -- (143.2308,85.9424) -- cycle;
 \path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (162.4118,76.1474) --
(177.3603,76.1474) -- (177.3603,85.9424) -- (162.4118,85.9424) -- cycle;
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(143.7744,81.7278) node[above right] (text4770-93) {\ssrfmeandepth};
\path[fill=black,line width=0.212pt] (57.9753,174.6333) node[inner sep=0pt]
(plot) at (111,207) {\ssrfplot};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.8749,89.0695) node[above right] (text4770-36-4)
{\ssrfcylbdescription};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(48.2545,107.7221) node[above right] (text4770-59-3)
{\ssrfcylbgasname};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.8749,91.9653) node[above right] (text4770-36-4-7)
{\ssrfcylcdescription};
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.8749,94.8611) node[above right] (text4770-36-4-6)
{\ssrfcylddescription};
 \path[fill=black,line width=0.212pt] (370.9979,63.4127) node[above right]
(text1153) {\ssrfmeandepth};
 \path[fill=black,line width=0.212pt] (382.9041,71.3502) node[above right]
(text1157) {\ssrfviz};
 \path[fill=black,line width=0.212pt] (378.9354,77.9648) node[above right]
(text1161) {\ssrfcomputer};
 \path[fill=black,line width=0.212pt] (380.2583,88.5481) node[above right]
(text1165) {\ssrfgasuse};
 \path[fill=black,line width=0.212pt] (380.2583,96.4856) node[above right]
(text1169) {\ssrfsac};
 \begin{scope}[shift={(1.67314,1.98097)}]
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
  (47.8009,86.8125) node[above right] (text4770-0-8-7) {Água};
 \end{scope}
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(60.9135,88.8432) node[above right] (text4770-0-8-7-8) {Ar};
\begin{scope}[shift={(-3.13355,0.88681)}]
 \path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
  (50.4592,84.4211) node[above right] (text4770-0-8-7-9) {Temperatura (   )};
 \begin{scope}[cm={{0.67131,0.0,0.0,0.67131,(40.73125,27.94586)}}]
  \path[fill=black,line width=0.212pt] (34.6448,84.3166) node[above right]
    (text2902-7) {C};
  \path[fill=black,line width=0.212pt] (33.8568,82.9860) node[above right]
    (text2924-9) {o};
\end{scope}
\end{scope}
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(68.5767,85.5143) node[above right] (text4770-0-8-7-9-0) {Visibilidade};
\path[fill=ceaeaea,miter limit=4.00,line width=0.240pt] (69.9744,89.4257) --
(78.7592,89.4257) -- (78.7592,95.7385) -- (69.9744,95.7385) -- cycle;
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(70.8431,92.3657) node[above right] (text4770-61-0) {\ssrfviz};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(165.9193,81.7164) node[above right] (text4770-93-3) {\ssrfsac};
\path[fill=black,line join=miter,line cap=butt,line width=0.800pt]
(112.8749,97.7568) node[above right] (text4770-36-4-6-5)
{\ssrfcyledescription};

\end{tikzpicture}
\end{document}

Thank you all for the hints.

  • 2
    The problem is that the convert is not smart, produces a lot of complicated coordinates. – Sigur Jan 11 '19 at 00:50
4

This is the best I manage to do with tcolorbox's posterlibrary. The grey box was not included and some tricks with tables.

I am not an expert with tcolorbox so any suggestions/corrections are welcome.

Other questions you might want to have a look: this boxes, this form and this other form.

poster form

\documentclass{article}
\usepackage[many,poster]{tcolorbox}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{helvet}
\renewcommand{\rmdefault}{\sfdefault}
%
\pagestyle{empty}
\begin{document}

\begin{tcbposter}[
poster = {,spacing=1.5mm,columns=8,rows=25} , %showframe},
boxes  = {sharp corners,colback=white,left=0mm,right=0mm},
]
\posterbox{name=Numero,column=1,span=1.5,row=1,}{ \#}
\posterbox{name=Local,column=2,span=4.5,row=1,,xshift=11.9mm}{ Local}
\posterbox{name=Data,column=7,span=2,row=1,rowspan=1.5}{ Data}
%
\begin{posterboxenv}[sidebyside,segmentation style={solid}]{name=PTM,column=7,span=2,below=Data,rowspan=1.72,yshift=2.5mm,} 
P(m)
\tcblower
TM(min)
\end{posterboxenv}
\posterbox{name=Rubrica,column=7,span=2,row=4,rowspan=3,}{ Rubrica(s)}
\begin{posterboxenv}[sidebyside,segmentation hidden]{name=OTU,column=7,span=2,below=Rubrica,rowspan=3,}
OTU's
\tcblower
CNS
\end{posterboxenv}
%
%
%
\posterbox{name=Companheiro,column=1,span=6,row=2}{ Companheiro(s)}
%
\posterbox{name=Hora,column=1,span=2,row=3,rowspan=2}{ Hora de entrada}
\posterbox{name=Tipo,column=3,span=4,row=3,rowspan=2}{ Tipo}
%
\begin{posterboxenv}[sidebyside,segmentation hidden,title=Condições,titlerule=0mm,colbacktitle=white,coltitle=black]{name=Condicoes,column=1,span=2,row=5,rowspan=3}
Temp.\ água
\tcblower
Temp.\ ar
\end{posterboxenv}
%
\begin{posterboxenv}[sidebyside,segmentation hidden,title=Equipamento,titlerule=0mm,colbacktitle=white,coltitle=black]{name=Equipamento,column=3,span=4,row=5,rowspan=4}
\begin{tabular}{l}
Fato \\ 
\\
\\
\\
Lastro (kg) \\ 
\end{tabular} 
\tcblower
\begin{tabular}{l}
Garrata(s) \\ 
\\
\\
\\
 \\ 
 \end{tabular}
\end{posterboxenv}
%
\posterbox{name=Gas,column=1,span=2,row=8,rowspan=2}{ Gás/Gases usado(s)}
\posterbox{name=Classificacao,column=3,span=4,row=9,rowspan=1}{ Classificação}
%
\posterbox{name=Notas,column=1,span=8,row=10,rowspan=6}{ Notas}
\posterbox{name=Perfil,column=1,span=8,row=16,rowspan=10}{ Perfil

\bigskip
\includegraphics[width=\tcbtextwidth,height=9cm]{example-image}
}
\end{tcbposter}
\end{document}
G. Bay
  • 2,047