phase-poster¶
The poster phase generates a publication-ready academic conference poster as a LaTeX .tex file, compiled to PDF. Content is extracted from .neuroflow/ project memory. The poster goes through an iterative critic loop (up to 3 cycles) before final output.
Approach¶
- Confirm conference name, target size, orientation, and QR code URL with the user before loading any files
- Read
.neuroflow/project_config.mdand relevant phaseflow.mdfiles to extract title, authors, affiliations, key findings, methods, and figures - Select the appropriate LaTeX template (see below)
- Generate the full
.texsource with a QR code block if a URL is provided - Run the poster through the
poster-criticagent for iterative review (worker-critic loop, max 3 cycles) — compile it and render a preview image before every round (see Compilation), so the critic judges the printed result, not only the source - The approved
.texstays inoutput_path(defaultposter/); the critic log goes to.neuroflow/poster/
Template catalogue¶
Template A — A0 Portrait (841 × 1189 mm) — Standard conference¶
% ── neuroflow poster template: A0 portrait ───────────────────────────────
\documentclass[25pt, a0paper, portrait, blockverticalspace=15mm]{tikzposter}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{qrcode} % QR code package
\usepackage{hyperref}
% ── Colour theme ─────────────────────────────────────────────────────────
\definecolor{nfBlue}{RGB}{30, 90, 160}
\definecolor{nfLightBlue}{RGB}{210, 230, 255}
\definecolor{nfAccent}{RGB}{220, 80, 30}
\definetitlestyle{nfTitle}{
width=\textwidth, roundedcorners=10, linewidth=2pt,
innersep=10pt, titletotopverticalspace=0pt,
titletoblockverticalspace=20mm
}{
\begin{scope}[line width=\titlelinewidth, rounded corners=\titleroundedcorners]
\fill[color=nfBlue] (\titleposleft,\titleposbottom) rectangle (\titleposright,\titlepostop);
\end{scope}
}
\definelayouttheme{nfTheme}{
titlestyle=nfTitle, headerheight=0.12\textheight,
blockstyle=Slide, backgroundstyle=Empty
}
\usetheme{nfTheme}
\colorlet{titlebgcolor}{nfBlue}
\colorlet{titlefgcolor}{white}
\colorlet{blocktitlebgcolor}{nfBlue}
\colorlet{blocktitlefgcolor}{white}
\colorlet{blockbodybgcolor}{nfLightBlue}
% ── Title block ───────────────────────────────────────────────────────────
\title{\textbf{POSTER TITLE HERE}}
\author{Author One\textsuperscript{1}, Author Two\textsuperscript{2}, Author Three\textsuperscript{1}}
\institute{\textsuperscript{1}Institution One, City, Country \quad
\textsuperscript{2}Institution Two, City, Country}
\date{Conference Name, Month Year}
\begin{document}
\maketitle
% ── Three-column layout ───────────────────────────────────────────────────
\begin{columns}
% ── Column 1 ─────────────────────────────────────────────────────────
\column{0.33}
\block{Introduction}{
Provide the scientific background and motivation.
State the gap your study addresses.
Keep to 3–4 short paragraphs.
}
\block{Objectives}{
\begin{itemize}
\item Primary aim of the study
\item Secondary aim / hypothesis 1
\item Hypothesis 2 (if applicable)
\end{itemize}
}
\block{Methods}{
\textbf{Participants:} N = X (age range, mean ± SD; X female).\\[0.5em]
\textbf{Design:} Brief paradigm description.\\[0.5em]
\textbf{Recording:} Modality, equipment, sampling rate.\\[0.5em]
\textbf{Analysis:} Key analysis steps and statistical approach.
\begin{center}
\includegraphics[width=0.9\linewidth]{figures/paradigm.pdf}
\par\small Figure 1. Experimental paradigm.
\end{center}
}
% ── Column 2 ─────────────────────────────────────────────────────────
\column{0.34}
\block{Results}{
\textbf{Finding 1:} One-sentence statement of the result.\\[0.5em]
\begin{center}
\includegraphics[width=0.9\linewidth]{figures/result1.pdf}
\par\small Figure 2. Key result with caption.
\end{center}
\vspace{0.5em}
\textbf{Finding 2:} One-sentence statement of the result.
\begin{center}
\includegraphics[width=0.9\linewidth]{figures/result2.pdf}
\par\small Figure 3. Secondary result with caption.
\end{center}
}
% ── Column 3 ─────────────────────────────────────────────────────────
\column{0.33}
\block{Discussion}{
Interpret the key findings.
Link back to the objectives.
Address limitations (one paragraph).
}
\block{Conclusions}{
\begin{itemize}
\item \textbf{Main takeaway} — one sentence
\item \textbf{Implication} — one sentence
\item \textbf{Future direction} — one sentence
\end{itemize}
}
\block{References}{
\small
\begin{enumerate}
\item[{[1]}] Author et al. (Year). Title. \textit{Journal}, \textbf{Vol}, pages.
\item[{[2]}] Author et al. (Year). Title. \textit{Journal}, \textbf{Vol}, pages.
\end{enumerate}
}
\block{}{
\begin{minipage}[t]{0.65\linewidth}
\textbf{Acknowledgements:} Funding bodies, ethics committees, participants.\\[0.5em]
\textbf{Contact:} \texttt{corresponding.author@institution.edu}
\end{minipage}%
\hfill
\begin{minipage}[t]{0.30\linewidth}
\centering
% ── QR code block ─────────────────────────────────────────────────
\qrcode[height=4cm]{https://doi.org/10.XXXX/XXXXX}\\[0.3em]
\small Scan for preprint / data
\end{minipage}
}
\end{columns}
\end{document}
Template B — A0 Landscape (1189 × 841 mm) — Four-column wide format¶
% ── neuroflow poster template: A0 landscape ──────────────────────────────
\documentclass[25pt, a0paper, landscape, blockverticalspace=15mm]{tikzposter}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{qrcode}
\usepackage{hyperref}
\definecolor{nfBlue}{RGB}{30, 90, 160}
\definecolor{nfLightBlue}{RGB}{210, 230, 255}
\colorlet{titlebgcolor}{nfBlue}
\colorlet{titlefgcolor}{white}
\colorlet{blocktitlebgcolor}{nfBlue}
\colorlet{blocktitlefgcolor}{white}
\colorlet{blockbodybgcolor}{nfLightBlue}
\usetheme{Slide}
\title{\textbf{POSTER TITLE HERE}}
\author{Author One\textsuperscript{1}, Author Two\textsuperscript{2}}
\institute{\textsuperscript{1}Institution One \quad \textsuperscript{2}Institution Two}
\date{Conference Name, Month Year}
\begin{document}
\maketitle
\begin{columns}
\column{0.25}
\block{Introduction}{ Background and gap. }
\block{Objectives}{ \begin{itemize}\item Aim 1 \item Aim 2 \end{itemize} }
\column{0.25}
\block{Methods}{
\textbf{Participants:} N = X.\\
\textbf{Design:} Paradigm.\\
\textbf{Analysis:} Pipeline.
\begin{center}\includegraphics[width=0.85\linewidth]{figures/paradigm.pdf}\end{center}
}
\column{0.25}
\block{Results}{
\textbf{Key finding.}
\begin{center}\includegraphics[width=0.85\linewidth]{figures/result1.pdf}\end{center}
\begin{center}\includegraphics[width=0.85\linewidth]{figures/result2.pdf}\end{center}
}
\column{0.25}
\block{Discussion \& Conclusions}{
Interpretation and implications.
\begin{itemize}
\item Takeaway 1
\item Takeaway 2
\item Future work
\end{itemize}
}
\block{}{
\begin{minipage}[t]{0.6\linewidth}
\small \textbf{Contact:} \texttt{email@institution.edu}\\
\textbf{Funding:} Grant agency, grant number.
\end{minipage}\hfill
\begin{minipage}[t]{0.35\linewidth}
\centering
\qrcode[height=3.5cm]{https://doi.org/10.XXXX/XXXXX}\\
\small Preprint / data
\end{minipage}
}
\end{columns}
\end{document}
Template C — A1 Portrait (594 × 841 mm) — Smaller venue / seminar¶
% ── neuroflow poster template: A1 portrait ───────────────────────────────
\documentclass[20pt, a1paper, portrait, blockverticalspace=10mm]{tikzposter}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{qrcode}
\usepackage{hyperref}
\definecolor{nfBlue}{RGB}{30, 90, 160}
\definecolor{nfLightBlue}{RGB}{210, 230, 255}
\colorlet{titlebgcolor}{nfBlue}
\colorlet{titlefgcolor}{white}
\colorlet{blocktitlebgcolor}{nfBlue}
\colorlet{blocktitlefgcolor}{white}
\colorlet{blockbodybgcolor}{nfLightBlue}
\usetheme{Slide}
\title{\textbf{POSTER TITLE}}
\author{Author One, Author Two}
\institute{Institution, City, Country}
\date{Conference Name, Month Year}
\begin{document}
\maketitle
\begin{columns}
\column{0.5}
\block{Introduction}{ Background. Gap. }
\block{Methods}{ Participants, design, analysis. }
\block{Objectives}{ \begin{itemize}\item Aim 1 \item Aim 2\end{itemize} }
\column{0.5}
\block{Results}{
\begin{center}\includegraphics[width=0.9\linewidth]{figures/result1.pdf}\end{center}
}
\block{Conclusions}{
\begin{itemize}\item Main finding \item Implication\end{itemize}
}
\block{}{
\centering
\qrcode[height=3cm]{https://doi.org/10.XXXX/XXXXX}\\
\small \textbf{Contact:} \texttt{email@inst.edu}
}
\end{columns}
\end{document}
Template D — Custom conference size (90 × 120 cm) — Portrait¶
% ── neuroflow poster template: 90×120 cm portrait ────────────────────────
\documentclass[25pt, blockverticalspace=15mm]{tikzposter}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{qrcode}
\usepackage{geometry}
\geometry{paperwidth=90cm, paperheight=120cm, margin=2cm}
\definecolor{nfBlue}{RGB}{30, 90, 160}
\definecolor{nfLightBlue}{RGB}{210, 230, 255}
\colorlet{titlebgcolor}{nfBlue}
\colorlet{titlefgcolor}{white}
\colorlet{blocktitlebgcolor}{nfBlue}
\colorlet{blocktitlefgcolor}{white}
\colorlet{blockbodybgcolor}{nfLightBlue}
\usetheme{Slide}
\title{\textbf{POSTER TITLE}}
\author{Authors}
\institute{Affiliations}
\date{Conference, Date}
\begin{document}
\maketitle
\begin{columns}
\column{0.33}
\block{Introduction}{ Background. Gap. Motivation. }
\block{Methods}{ Participants, design, recording, analysis. }
\column{0.34}
\block{Results}{
\begin{center}\includegraphics[width=0.9\linewidth]{figures/result1.pdf}\end{center}
\begin{center}\includegraphics[width=0.9\linewidth]{figures/result2.pdf}\end{center}
}
\column{0.33}
\block{Discussion}{ Interpretation. Limitations. }
\block{Conclusions}{
\begin{itemize}\item Takeaway 1 \item Takeaway 2\end{itemize}
}
\block{}{
\begin{minipage}[t]{0.6\linewidth}
\small References and acknowledgements.
\end{minipage}\hfill
\begin{minipage}[t]{0.35\linewidth}
\centering
\qrcode[height=4cm]{https://doi.org/10.XXXX/XXXXX}\\
\small Scan for more
\end{minipage}
}
\end{columns}
\end{document}
Template E — 48 × 36 inches Landscape (US conference format)¶
% ── neuroflow poster template: 48×36 in landscape (US) ───────────────────
\documentclass[25pt, blockverticalspace=15mm]{tikzposter}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{qrcode}
\usepackage{geometry}
\geometry{paperwidth=48in, paperheight=36in, margin=1.5in}
\definecolor{nfBlue}{RGB}{30, 90, 160}
\definecolor{nfLightBlue}{RGB}{210, 230, 255}
\colorlet{titlebgcolor}{nfBlue}
\colorlet{titlefgcolor}{white}
\colorlet{blocktitlebgcolor}{nfBlue}
\colorlet{blocktitlefgcolor}{white}
\colorlet{blockbodybgcolor}{nfLightBlue}
\usetheme{Slide}
\title{\textbf{POSTER TITLE}}
\author{Authors}
\institute{Affiliations}
\date{Conference, Date}
\begin{document}
\maketitle
\begin{columns}
\column{0.25}
\block{Introduction}{ Background. Gap. }
\block{Objectives}{ \begin{itemize}\item Aim 1 \item Aim 2\end{itemize} }
\column{0.25}
\block{Methods}{ Participants, design, analysis pipeline. }
\column{0.25}
\block{Results}{
\begin{center}\includegraphics[width=0.9\linewidth]{figures/result1.pdf}\end{center}
\begin{center}\includegraphics[width=0.9\linewidth]{figures/result2.pdf}\end{center}
}
\column{0.25}
\block{Conclusions}{ Main takeaways. }
\block{}{
\centering
\qrcode[height=5cm]{https://doi.org/10.XXXX/XXXXX}\\[0.3em]
\small Scan for paper / data\\
\texttt{email@institution.edu}
}
\end{columns}
\end{document}
Template selection guide¶
| Size | Orientation | Use when |
|---|---|---|
| A0 (841×1189 mm) | Portrait | Most European conferences; SfN, OHBM, FENS |
| A0 (1189×841 mm) | Landscape | Wide-format boards; when you have many side-by-side figures |
| A1 (594×841 mm) | Portrait | Lab retreats, seminars, smaller venues |
| 90×120 cm | Portrait | Common European conference custom size |
| 48×36 in | Landscape | US conferences (NeurIPS, COSYNE, SfN US booths) |
When the user does not specify a size, ask. Default to A0 Portrait if they are unsure.
QR code integration¶
The qrcode LaTeX package is used for QR code generation. Install via TeX Live / MiKTeX:
Usage in templates:
Recommended QR code targets:
- OSF preregistration URL
- bioRxiv preprint DOI (https://doi.org/10.1101/XXXX.XX.XX.XXXXXXXX)
- GitHub repository URL
- Personal lab page
If the user has not provided a URL, ask. If they want to skip the QR code, remove the \qrcode block from the footer.
Compilation¶
Compile with pdflatex (recommended for tikzposter):
Or with latexmk for automatic dependency resolution:
Dependencies: tikzposter, qrcode, graphicx, booktabs, amsmath. All available in TeX Live ≥ 2020 and MiKTeX.
Figure formats: Use .pdf or .eps for vector figures, .png/.jpg for bitmaps. Avoid .svg directly (convert to .pdf first via Inkscape: inkscape figure.svg --export-pdf=figure.pdf).
Inside the critic loop (/poster Step 5), compile non-interactively into a build/ folder next to the .tex, then render page 1 as a small PNG for the critic:
latexmk -pdf -interaction=nonstopmode -halt-on-error -outdir=build poster.tex
pdftoppm -png -r 40 -f 1 -l 1 -singlefile build/poster.pdf build/preview-round-1
- latexmk needs Perl; without it run
pdflatex -interaction=nonstopmode -halt-on-error -output-directory=build poster.textwice. MiKTeX can stall on its package-install prompt in a non-interactive run — install missing packages first. - pdftoppm comes with poppler, which is not installed everywhere. Alternatives:
mutool draw -r 40 -o build/preview-round-1.png build/poster.pdf 1(MuPDF) ormagick -density 40 "build/poster.pdf[0]" build/preview-round-1.png(ImageMagick with Ghostscript). - 40 dpi keeps an A0 page near 1300 × 1900 px: enough to judge layout, balance and figure placement, too coarse for small text — legibility is judged from font sizes in the source.
- Pass the critic the log lines with
!,Overfull,not foundandMissing, and the PNG path; it reads the image itself.
Content extraction from .neuroflow/¶
When populating poster fields, read in this order:
.neuroflow/project_config.md— project title, PI, affiliation, modality, target journal.neuroflow/ideation/— research question, hypotheses, key references.neuroflow/data-analyze/or latest analysisflow.md— key results, effect sizes, figure paths.neuroflow/preregistration/— objectives and analysis plan (if available).neuroflow/paper/— if a draft exists, extract the abstract and conclusions
If figures are referenced in flow.md files, list them for the user — do not attempt to embed binary image files; output their paths as \includegraphics stubs so the user can place the actual files.
Output paths¶
The poster is a deliverable: it lives in the poster output_path (default poster/), never inside .neuroflow/. Only memory goes to .neuroflow/poster/:
poster/ ← output_path (deliverables)
├── poster-YYYY-MM-DD.tex ← LaTeX source
├── figures/ ← figure files or stubs
└── build/ ← compiled PDF, previews (by-products)
.neuroflow/poster/ ← memory
├── flow.md
└── critic-log.md ← iterative review log
If a same-date .tex file exists, append -v2, -v3, etc.
Relevant skills¶
neuroflow:neuroflow-core— read first; defines the command lifecycle and.neuroflow/write rulesneuroflow:humanizer— optional style edit of the text blocks, only when the person asks for it; never automatic and never used to disguise AI involvement
Slash command¶
/neuroflow:poster — runs this workflow as a slash command.