0

So, I'm building a flowchart based operation manual for the SEM at the lab that I work, and I'm having a trouble aligning a node with respect to two others.

I've seen already a few pages[1][2][3][4] here that present the same problem and tried their solutions, but with no success what soever, so if someone can help me I would appreciate very much.

This is my MWE:

%%%  DOCUMENT SETTINGS  %%%
\documentclass[12pt, a3paper]{article} %page type
\usepackage[margin=2cm]{geometry} %margins
\usepackage{setspace}
\usepackage{indentfirst} %indenting package
\setstretch{1.5} %between lines spacement
\setlength{\parindent}{1.5cm} %first line indentation

%page settings \usepackage{fancyhdr} \pagestyle{fancy} % seting to use the customizable head and footers \fancyhf{} % cleaning standard head and footers to use the new one \rfoot{Autores: Eduardo de Almeida Isoppo;\Luiz Felipe Pompermaier.} % page number on the footer's right side \renewcommand{\headrulewidth}{0pt} %remove the line on the headers \usepackage{float} % tables and figures in multicols.

%font and language configs \usepackage[brazil]{babel} %letter type \usepackage[utf8]{inputenc} %normal acentuation %\usepackage{arial} % using pseudoarial font Helvetica. \usepackage{helvet} \renewcommand{\familydefault}{\sfdefault} \usepackage[T1]{fontenc}

%Reference configs \usepackage{hyperref} \hypersetup{ colorlinks=true, linkcolor=red, citecolor=black, filecolor=magenta, urlcolor=blue, breaklinks=false, pdfauthor={Luiz Felipe Pompermaier} }

%image config \usepackage{graphicx} % Image using package %\graphicspath{{Imagens/}} % Image path \usepackage{caption} % Image, tables, and others captions. \usepackage{subcaption} % SubImage package. More then one per line.

%math config \usepackage{amssymb} \usepackage{amsmath}

% text packages \usepackage{blindtext} % lorem ipsum %\usepackage{lipsum} %\usepackage{titling} % used to make title higger in page \usepackage{sectsty} % section title \sectionfont{\fontsize{12}{15}\selectfont} %changing section fontsize \usepackage{multicol} % multiple columns \usepackage{xcolor} % coloring text \usepackage[none]{hyphenat} % no hyphenation \usepackage{microtype} % better justification \usepackage{tcolorbox} % text in coloured boxes

% tikz package for flowchart drawings \usepackage{tikz} \usepackage{tikz-layers} \usetikzlibrary{shapes.geometric, arrows} \usetikzlibrary{positioning} \usetikzlibrary{fit} \usetikzlibrary{calc} \usetikzlibrary{intersections}

% Flowchart configs \tikzstyle{startstop} = [ellipse, minimum width=3cm, minimum height=2cm,text centered, text width=3cm, draw=black, fill=red!30] \tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30] \tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, text width=3cm, draw=black, fill=orange!30] \tikzstyle{decision} = [diamond, aspect=2, minimum width=3cm, minimum height=1cm, text centered, text width=3cm, draw=black, fill=green!30] \tikzstyle{arrow} = [thick,->,>=stealth, line width=2pt]

\newlength{\AL} \setlength{\AL}{2cm}

\begin{document}

\begin{center} \Huge \textbf{Fluxograma de Operação do MEV} \end{center}

\begin{figure}[!htb] \centering \begin{tikzpicture} % Nodes and texts \node (SftWrk) [decision, below=\AL of ScrnON] {Software está funcionando?}; \node (SftErr) [process, left=\AL of SftWrk] {Chame um Técnico}; \node (VentCb) [process, below=\AL of SftWrk] {Ventilar câmara segurando \textbf{VENT}.}; \node (SmplHd) [process, left=\AL of VentCb, dashed] {Montar Porta-amostras desejado.}; \begin{scope}[on behind layer] \node (Sample) [io][fit=(SmplHd)]{}; \end{scope}

    % Arrows
    \begin{scope}[on background layer]
        \draw[arrow] (SftWrk) -- node[anchor=south] {\textbf{NÃO}} (SftErr);
        \draw[arrow] (SftWrk) -- node[anchor=east] {\textbf{SIM}} (VentCb);
        \draw[arrow] (Sample) |- ($(EvacCb)!.5!(VentCb)$);
        \draw[arrow] (VentCb) -- +(0,-\AL);
\end{tikzpicture}

\end{figure}

\end{document}

This is the result it produces (focusing on the area of interest): enter image description here

And what I want is to align the (SmplHd) box below of (SftErr) and left of (VentCb), if this makes sense to everyone reading this.

And to be more explicit about it, no the at (SftErr|-VentCb) command does not work.

For the complete compilation please check https://www.overleaf.com/read/nfyvphkggdny

liuzp
  • 47
  • 1
    Please make your code a minimal working example https://tex.meta.stackexchange.com/questions/228/ive-just-been-asked-to-write-a-minimal-working-example-mwe-what-is-that Helpers don't want an unnecessarily lengthy code I guess! – Black Mild Apr 13 '22 at 20:00
  • Try \node (SmplHd) [process, left=1.5\AL of VentCb, dashed] {Montar Porta-amostras desejado.}; – Simon Dispa Apr 13 '22 at 21:53

1 Answers1

3

Edit: Extend of image fragment with two more nodes an slightly modified nodes shapes styles.

Like this?

enter image description here

This image fragment is produced by the following MWE (Minimal Working Example)

\documentclass[12pt, margin=3mm]{standalone}    % page type
\usepackage{helvet}
    \renewcommand{\familydefault}{\sfdefault}
\usepackage[brazil]{babel}

\usepackage{tikz} \usetikzlibrary{arrows.meta, backgrounds, calc, chains, fit, intersections, positioning, quotes, shapes.geometric, babel } % Flowchart config \makeatletter \tikzset{ base/.style = {draw=black, semithick, font=\small, minimum height=9mm, text width=33mm, align=flush center, outer sep=0pt}, startstop/.style = {base, ellipse, fill=red!30}, io/.style = {base, trapezium, trapezium left angle=70, trapezium right angle=110, fill=blue!30}, process/.style = {base, fill=orange!30}, decision/.style = {base, inner sep=1pt, diamond, aspect=2, fill=green!30}, arr/.style = {-Stealth, thick}, every edge quotes/.append style = {auto, pos=0.4, font=\footnotesize\bfseries}, suspend join/.code = {\def\tikz@after@path{}} % for use in not showed image part } \makeatother \newlength{\AL} \setlength{\AL}{12mm}

\begin{document} \begin{tikzpicture}[ node distance = \AL and \AL, start chain = going below ] % first branch (unfinished) \begin{scope}[nodes = {on chain, join=by arr}] \node (ScrnON) [process] {Ligar Monitores}; \node (SftWrk) [decision] {Software está funcionando?}; \node (VentCb) [process] {Ventilar câmara segurando \textbf{VENT}.}; \node (EvacCb) [process] {Evacuar câmara segurando \textbf{EVAC}.}; \end{scope} % left from first branch \node (SftErr) [process, left=of SftWrk] {Chame um Technico}; \node (SmplHd) [process, dashed, at={(SftErr |- VentCb)}] {Montar Porta-amostras desejado.}; \scoped[on background layer] \node (Sample) [io, fit=(SmplHd)] {}; % second branch (unfinished) \begin{scope}[nodes = {on chain, join=by arr}] \node (HeatON) [process, suspend join, right=2*\AL of ScrnON] {Subir corrente \textbf{devagar} até ponto de saturação.}; \node (SmpLct) [process] {Localizar Amostra a ser analisada.}; \end{scope} % third branch

% Arrows \path (SftWrk) edge ["\textbf{NÃO}" '] (SftErr) (SftWrk) edge ["\textbf{SIM}"] (VentCb); \draw[arr] (SftWrk) -- (SftErr); \draw[arr] (Sample) |- ($(VentCb.south)!0.5!(EvacCb.north)$); \end{tikzpicture} \end{document}

  • In MWE are omitted all what is not relevant at drawing of the image.
  • Used is recent syntax for determining of nodes shapes styles (with \tikzset instead of obsolete tikzstyle)
  • Position of the node with dashed border is on intersection of vertical lines through above node and horizontal line through right node, i.e. by at={(SftErr |- VentCb)}.
  • positions of nodes in other branches is planed to be determined by chains (indicated are only with two top nodes in the second chain)
  • MWE code is significantly simplified. By used of join=by ... macro are drawn all connection lines between nodes of in branch, so they need to be draw only for nodes out of branches and between branches.
Zarko
  • 296,517
  • Thanks. That helped a lot. I'm going to make the suggest changes slowly as I have time to do, but I'm already so grateful for you to point those little things that may seem pedantic for everyone else, but I take as an opportunity to improve my codes and keep myself up to date on the subject. – liuzp Apr 14 '22 at 14:16