> ## Documentation Index
> Fetch the complete documentation index at: https://resources.latex-cloud-studio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Academic Posters in LaTeX

> Design conference posters in LaTeX. Learn poster packages, layout techniques, visual hierarchy, and academic presentation best practices.

export const RenderedOutput = ({title = "Rendered output", ctaHref, ctaLabel = "Open LaTeX Cloud Studio", children}) => {
  const [isExpanded, setIsExpanded] = useState(false);
  const trackEditorCta = () => {
    const target = new URL(ctaHref, window.location.href);
    globalThis.posthog?.capture?.("docs_app_cta_clicked", {
      source_page: window.location.pathname,
      source_section: "rendered_output",
      cta_variant: "first_compiled_example",
      target_url: target.toString(),
      target_utm_source: target.searchParams.get("utm_source"),
      target_utm_medium: target.searchParams.get("utm_medium"),
      target_utm_campaign: target.searchParams.get("utm_campaign"),
      target_utm_content: target.searchParams.get("utm_content")
    }, {
      transport: "sendBeacon",
      send_instantly: true
    });
  };
  return <details className="rendered-output" onToggle={event => setIsExpanded(event.currentTarget.open)}>
      <summary className="rendered-output__summary">
        <span className="rendered-output__title">{title}</span>
        <span className="rendered-output__hint" aria-hidden="true">View compiled result</span>
      </summary>
      {isExpanded && <div className="rendered-output__content">
          {children}
          {ctaHref && <aside className="rendered-output__cta" aria-label="Continue in the LaTeX editor">
              <span>
                <strong>Ready to use this syntax?</strong>
                Continue in the browser editor when you want to adapt the example in a real project.
              </span>
              <a href={ctaHref} onClick={trackEditorCta}>{ctaLabel}<span aria-hidden="true"> →</span></a>
            </aside>}
        </div>}
    </details>;
};

export const LatexSource = ({filename, source}) => {
  const [copyStatus, setCopyStatus] = useState("Copy");
  const copySource = async () => {
    try {
      await navigator.clipboard.writeText(source);
      setCopyStatus("Copied");
    } catch {
      setCopyStatus("Select and copy");
    }
  };
  return <figure className="latex-source">
      <figcaption className="latex-source__header">
        <span className="latex-source__filename">{filename}</span>
        <button type="button" className="latex-source__copy" onClick={copySource} aria-live="polite">
          {copyStatus}
        </button>
      </figcaption>
      <pre className="latex-source__pre" aria-label={`LaTeX source: ${filename}`} tabIndex="0">
        <code className="language-latex">{source}</code>
      </pre>
    </figure>;
};

export const LatexPreview = ({src, alt, caption, width, height}) => {
  const minZoom = 1;
  const maxZoom = 3;
  const zoomStep = 0.5;
  const measureSvgContent = async (assetSrc, pageWidth, pageHeight) => {
    const cacheKey = "__latexCloudSvgContentBoxCache";
    const contentBoxCache = globalThis[cacheKey] ?? new Map();
    globalThis[cacheKey] = contentBoxCache;
    if (contentBoxCache.has(assetSrc)) return contentBoxCache.get(assetSrc);
    const measurement = (async () => {
      const assetUrl = new URL(assetSrc, window.location.href);
      if (assetUrl.origin !== window.location.origin) {
        throw new Error("Rendered output must use a same-origin SVG asset.");
      }
      const response = await fetch(assetUrl, {
        credentials: "same-origin"
      });
      if (!response.ok) throw new Error(`Rendered output request failed with ${response.status}.`);
      const source = await response.text();
      const documentNode = new DOMParser().parseFromString(source, "image/svg+xml");
      if (documentNode.querySelector("parsererror")) throw new Error("Rendered output is not valid SVG.");
      const sourceSvg = documentNode.documentElement;
      sourceSvg.querySelectorAll("script, foreignObject").forEach(node => node.remove());
      [sourceSvg, ...sourceSvg.querySelectorAll("*")].forEach(node => {
        [...node.attributes].forEach(attribute => {
          if ((/^on/i).test(attribute.name)) node.removeAttribute(attribute.name);
          if ((attribute.name === "href" || attribute.name === "xlink:href") && !attribute.value.startsWith("#")) {
            node.removeAttribute(attribute.name);
          }
        });
      });
      const measurementHost = document.createElement("div");
      measurementHost.className = "latex-preview__measurement-host";
      const measuredSvg = document.importNode(sourceSvg, true);
      measuredSvg.setAttribute("aria-hidden", "true");
      measurementHost.appendChild(measuredSvg);
      document.body.appendChild(measurementHost);
      try {
        const measuredElements = [...measuredSvg.children].filter(node => !["defs", "desc", "metadata", "style", "title"].includes(node.tagName.toLowerCase()));
        const elementBounds = measuredElements.map(node => node.getBBox()).filter(box => [box.x, box.y, box.width, box.height].every(Number.isFinite) && box.width > 0 && box.height > 0);
        if (elementBounds.length === 0) {
          throw new Error("Rendered output has no measurable visible content.");
        }
        const sortedBounds = [...elementBounds].sort((left, right) => left.y - right.y);
        const clusterGap = pageHeight * 0.045;
        const clusters = [];
        sortedBounds.forEach(box => {
          const current = clusters[clusters.length - 1];
          if (!current || box.y - current.bottom > clusterGap) {
            clusters.push({
              boxes: [box],
              bottom: box.y + box.height
            });
            return;
          }
          current.boxes.push(box);
          current.bottom = Math.max(current.bottom, box.y + box.height);
        });
        const contentClusters = clusters.filter(cluster => {
          const clusterBox = cluster.boxes.reduce((combined, box) => {
            const right = Math.max(combined.x + combined.width, box.x + box.width);
            const bottom = Math.max(combined.y + combined.height, box.y + box.height);
            const x = Math.min(combined.x, box.x);
            const y = Math.min(combined.y, box.y);
            return {
              x,
              y,
              width: right - x,
              height: bottom - y
            };
          });
          const centerY = clusterBox.y + clusterBox.height / 2;
          const isMarginFurniture = cluster.boxes.length <= 2 && clusterBox.width < pageWidth * 0.2 && clusterBox.height < pageHeight * 0.04 && (centerY < pageHeight * 0.08 || centerY > pageHeight * 0.8);
          return !isMarginFurniture;
        });
        const visibleBounds = (contentClusters.length > 0 ? contentClusters : clusters).flatMap(cluster => cluster.boxes);
        const bounds = visibleBounds.reduce((combined, box) => {
          const right = Math.max(combined.x + combined.width, box.x + box.width);
          const bottom = Math.max(combined.y + combined.height, box.y + box.height);
          const x = Math.min(combined.x, box.x);
          const y = Math.min(combined.y, box.y);
          return {
            x,
            y,
            width: right - x,
            height: bottom - y
          };
        });
        const clampValue = (value, minimum, maximum) => Math.min(maximum, Math.max(minimum, value));
        const padding = Math.max(8, Math.min(pageWidth, pageHeight) * 0.025);
        const x = clampValue(bounds.x - padding, 0, pageWidth);
        const y = clampValue(bounds.y - padding, 0, pageHeight);
        const right = clampValue(bounds.x + bounds.width + padding, 0, pageWidth);
        const bottom = clampValue(bounds.y + bounds.height + padding, 0, pageHeight);
        return {
          x,
          y,
          width: right - x,
          height: bottom - y
        };
      } finally {
        measurementHost.remove();
      }
    })();
    contentBoxCache.set(assetSrc, measurement);
    measurement.catch(() => contentBoxCache.delete(assetSrc));
    return measurement;
  };
  const renderPreviewAsset = ({contentBox: assetContentBox, loading}) => {
    if (!assetContentBox) {
      return <img className="latex-preview__asset" src={src} alt={alt} width={width} height={height} loading={loading} draggable="false" />;
    }
    return <svg className="latex-preview__asset" viewBox={`${assetContentBox.x} ${assetContentBox.y} ${assetContentBox.width} ${assetContentBox.height}`} preserveAspectRatio="xMidYMid meet" role="img" aria-label={alt}>
        <image href={src} x="0" y="0" width={width} height={height} />
      </svg>;
  };
  const [isOpen, setIsOpen] = useState(false);
  const [frameMode, setFrameMode] = useState("content");
  const [viewMode, setViewMode] = useState("fit");
  const [zoom, setZoom] = useState(minZoom);
  const [contentBox, setContentBox] = useState(null);
  const [measurementStatus, setMeasurementStatus] = useState("loading");
  const dialogRef = useRef(null);
  const closeButtonRef = useRef(null);
  const viewportRef = useRef(null);
  const previousFocusRef = useRef(null);
  const dragRef = useRef(null);
  useEffect(() => {
    let isCurrent = true;
    setMeasurementStatus("loading");
    measureSvgContent(src, width, height).then(box => {
      if (!isCurrent) return;
      setContentBox(box);
      setMeasurementStatus("ready");
    }).catch(() => {
      if (!isCurrent) return;
      setContentBox(null);
      setFrameMode("page");
      setMeasurementStatus("error");
    });
    return () => {
      isCurrent = false;
    };
  }, [height, src, width]);
  const closeViewer = useCallback(() => {
    setIsOpen(false);
  }, []);
  const openViewer = () => {
    previousFocusRef.current = document.activeElement;
    setFrameMode(contentBox ? "content" : "page");
    setViewMode("fit");
    setZoom(minZoom);
    setIsOpen(true);
  };
  const applyZoom = useCallback(nextZoom => {
    const boundedZoom = Math.min(maxZoom, Math.max(minZoom, nextZoom));
    setViewMode("custom");
    setZoom(boundedZoom);
  }, []);
  const zoomIn = useCallback(() => {
    applyZoom(viewMode === "fit" ? minZoom + zoomStep : zoom + zoomStep);
  }, [applyZoom, viewMode, zoom]);
  const zoomOut = useCallback(() => {
    applyZoom(viewMode === "fit" ? minZoom : zoom - zoomStep);
  }, [applyZoom, viewMode, zoom]);
  useEffect(() => {
    if (!isOpen) return undefined;
    const previousOverflow = document.body.style.overflow;
    document.body.style.overflow = "hidden";
    closeButtonRef.current?.focus();
    return () => {
      document.body.style.overflow = previousOverflow;
      previousFocusRef.current?.focus?.();
    };
  }, [isOpen]);
  useEffect(() => {
    if (!isOpen) return undefined;
    const handleKeyDown = event => {
      if (event.key === "Escape") {
        event.preventDefault();
        closeViewer();
        return;
      }
      if ((event.key === "+" || event.key === "=") && !event.metaKey && !event.ctrlKey) {
        event.preventDefault();
        zoomIn();
        return;
      }
      if (event.key === "-" && !event.metaKey && !event.ctrlKey) {
        event.preventDefault();
        zoomOut();
        return;
      }
      if (event.key !== "Tab" || !dialogRef.current) return;
      const focusable = [...dialogRef.current.querySelectorAll('button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])')];
      if (focusable.length === 0) return;
      const first = focusable[0];
      const last = focusable[focusable.length - 1];
      if (event.shiftKey && document.activeElement === first) {
        event.preventDefault();
        last.focus();
      } else if (!event.shiftKey && document.activeElement === last) {
        event.preventDefault();
        first.focus();
      }
    };
    window.addEventListener("keydown", handleKeyDown);
    return () => {
      window.removeEventListener("keydown", handleKeyDown);
    };
  }, [closeViewer, isOpen, zoomIn, zoomOut]);
  const startDrag = event => {
    if (event.button !== 0 || !viewportRef.current) return;
    const viewport = viewportRef.current;
    dragRef.current = {
      pointerId: event.pointerId,
      x: event.clientX,
      y: event.clientY,
      scrollLeft: viewport.scrollLeft,
      scrollTop: viewport.scrollTop
    };
    viewport.setPointerCapture(event.pointerId);
    viewport.dataset.dragging = "true";
  };
  const continueDrag = event => {
    const drag = dragRef.current;
    const viewport = viewportRef.current;
    if (!drag || !viewport || drag.pointerId !== event.pointerId) return;
    viewport.scrollLeft = drag.scrollLeft - (event.clientX - drag.x);
    viewport.scrollTop = drag.scrollTop - (event.clientY - drag.y);
  };
  const stopDrag = event => {
    const viewport = viewportRef.current;
    if (viewport?.hasPointerCapture(event.pointerId)) viewport.releasePointerCapture(event.pointerId);
    if (viewport) delete viewport.dataset.dragging;
    dragRef.current = null;
  };
  const activeContentBox = frameMode === "content" ? contentBox : null;
  const activeWidth = activeContentBox?.width ?? width;
  const activeHeight = activeContentBox?.height ?? height;
  const activeRatio = activeWidth / activeHeight;
  const inlineContentBox = measurementStatus === "ready" ? contentBox : null;
  const inlineWidth = inlineContentBox?.width ?? width;
  const inlineHeight = inlineContentBox?.height ?? height;
  const inlineGeometry = {
    aspectRatio: `${inlineWidth} / ${inlineHeight}`,
    maxWidth: `${30 * inlineWidth / inlineHeight}rem`
  };
  const imageStyle = viewMode === "fit" ? {
    aspectRatio: `${activeWidth} / ${activeHeight}`,
    width: "100%",
    maxWidth: `${Math.max(16, activeRatio * 78)}dvh`
  } : {
    aspectRatio: `${activeWidth} / ${activeHeight}`,
    width: `${zoom * 100}%`,
    maxWidth: "none"
  };
  const zoomLabel = viewMode === "fit" ? frameMode === "content" ? "Fit content" : "Full page" : `${Math.round(zoom * 100)}%`;
  return <figure className="latex-preview">
      <button type="button" className="latex-preview__trigger" onClick={openViewer} aria-haspopup="dialog" aria-label={`Open zoomable preview: ${alt}`}>
        <span className="latex-preview__page" style={inlineGeometry}>
          {measurementStatus === "loading" ? <span className="latex-preview__loading" role="status">Preparing compiled output…</span> : renderPreviewAsset({
    src,
    alt,
    width,
    height,
    contentBox: inlineContentBox,
    loading: "lazy"
  })}
        </span>
        <span className="latex-preview__trigger-label" aria-hidden="true">
          <span className="latex-preview__trigger-icon">⌕</span>
          Open viewer
        </span>
      </button>
      <figcaption className="latex-preview__caption">
        <span>
          {caption}
          {measurementStatus === "error" && <span className="latex-preview__status" role="status"> Content fit is unavailable; the complete vector page is shown.</span>}
        </span>
        <a href={src} target="_blank" rel="noreferrer" className="latex-preview__source-link">Open SVG</a>
      </figcaption>

      {isOpen && <div className="latex-preview__backdrop" onMouseDown={event => {
    if (event.target === event.currentTarget) closeViewer();
  }}>
          <section ref={dialogRef} className="latex-preview__dialog" role="dialog" aria-modal="true" aria-label={`Rendered LaTeX viewer: ${alt}`}>
            <header className="latex-preview__toolbar">
              <div className="latex-preview__identity">
                <span className="latex-preview__eyebrow">Compiled LaTeX</span>
                <span className="latex-preview__filename">{alt}</span>
              </div>
              <div className="latex-preview__controls" aria-label="Preview controls">
                <button type="button" className={frameMode === "content" && viewMode === "fit" ? "is-active" : undefined} disabled={!contentBox} onClick={() => {
    setFrameMode("content");
    setViewMode("fit");
    setZoom(minZoom);
  }}>
                  Fit content
                </button>
                <button type="button" className={frameMode === "page" && viewMode === "fit" ? "is-active" : undefined} onClick={() => {
    setFrameMode("page");
    setViewMode("fit");
    setZoom(minZoom);
  }}>
                  Full page
                </button>
                <span className="latex-preview__zoom-group">
                  <button type="button" onClick={zoomOut} disabled={viewMode === "fit" || zoom <= minZoom} aria-label="Zoom out">−</button>
                  <output aria-live="polite" aria-label="Current zoom">{zoomLabel}</output>
                  <button type="button" onClick={zoomIn} disabled={viewMode !== "fit" && zoom >= maxZoom} aria-label="Zoom in">+</button>
                </span>
                <a href={src} target="_blank" rel="noreferrer">Open SVG</a>
                <button ref={closeButtonRef} type="button" className="latex-preview__close" onClick={closeViewer} aria-label="Close rendered LaTeX viewer">
                  Close
                </button>
              </div>
            </header>
            <div ref={viewportRef} className="latex-preview__viewport" data-view-mode={viewMode} onPointerDown={startDrag} onPointerMove={continueDrag} onPointerUp={stopDrag} onPointerCancel={stopDrag}>
              <span className="latex-preview__dialog-page" style={imageStyle}>
                {renderPreviewAsset({
    src,
    alt,
    width,
    height,
    contentBox: activeContentBox
  })}
              </span>
            </div>
            <footer className="latex-preview__viewer-note">
              Compiler-generated vector output · Use +/− to zoom · Drag to pan · Esc to close
            </footer>
          </section>
        </div>}
    </figure>;
};

Create stunning academic posters for conferences and presentations using LaTeX. This guide covers poster design principles, LaTeX packages for posters, layout strategies, and tips for effective visual communication.

<Info>
  **Prerequisites**: Basic LaTeX knowledge, understanding of graphics\
  **Time to complete**: 35-40 minutes\
  **Difficulty**: Intermediate to Advanced\
  **What you'll learn**: Poster packages, layout design, typography, color schemes, and presentation tips
</Info>

## Poster Design Fundamentals

### Key Design Principles

<CardGroup cols={2}>
  <Card title="Visual Hierarchy" icon="layer-group">
    Guide viewers through content with clear organization
  </Card>

  <Card title="White Space" icon="expand">
    Use space effectively to avoid cluttered appearance
  </Card>

  <Card title="Readability" icon="eye">
    Large fonts and high contrast for distance viewing
  </Card>

  <Card title="Flow" icon="route">
    Logical progression from introduction to conclusions
  </Card>
</CardGroup>

### Poster Specifications

<Tabs>
  <Tab title="Common Sizes">
    **Standard poster dimensions**:

    * A0: 841mm × 1189mm (33.1" × 46.8")
    * A1: 594mm × 841mm (23.4" × 33.1")
    * Custom: 36" × 48", 42" × 56"
    * Check conference requirements!
  </Tab>

  <Tab title="Orientation">
    **Portrait vs Landscape**:

    * Portrait: Traditional, good for linear flow
    * Landscape: Modern, better for side-by-side comparison
    * Consider viewing distance and venue
  </Tab>

  <Tab title="Resolution">
    **Print specifications**:

    * 150-300 DPI for final print
    * Vector graphics when possible
    * High-resolution images (>1MB)
    * Test print on A4/Letter first
  </Tab>
</Tabs>

## Poster Packages

### beamerposter Package

<LatexSource filename="beamerposter-basic.tex" source={"\\documentclass[final, 12pt]{beamer}\n\\usepackage[size=a0, orientation=portrait, scale=1.4]{beamerposter}\n\\usepackage{graphicx}\n\\usepackage{booktabs}\n\\usepackage{tikz}\n\\usepackage{amsmath}\n\\usepackage{lipsum} % For dummy text\n\n% Theme settings\n\\usetheme{Berlin}\n\\usecolortheme{beaver}\n\n% Custom colors\n\\definecolor{myblue}{RGB}{0, 51, 102}\n\\definecolor{myorange}{RGB}{255, 128, 0}\n\\setbeamercolor{block title}{fg=white, bg=myblue}\n\\setbeamercolor{block body}{fg=black, bg=myblue!10}\n\n% Title information\n\\title{Your Research Title: A Comprehensive Study}\n\\author{Jane Doe\\inst{1} \\and John Smith\\inst{2}}\n\\institute[Short Inst.]{\n    \\inst{1}Department of Computer Science, University Name\\\\\n    \\inst{2}Research Lab, Institution\n}\n\\date{Conference Name 2024}\n\n\\begin{document}\n\\begin{frame}[t]\n\\begin{columns}[t]\n\n% Left column\n\\begin{column}{0.32\\textwidth}\n\n    \\begin{block}{Introduction}\n        \\large\n        \\lipsum[1][1-5]\n\n        \\begin{itemize}\n            \\item Key point one with explanation\n            \\item Key point two with details\n            \\item Key point three\n        \\end{itemize}\n    \\end{block}\n\n    \\begin{block}{Objectives}\n        \\large\n        Our main objectives are:\n        \\begin{enumerate}\n            \\item First objective\n            \\item Second objective\n            \\item Third objective\n        \\end{enumerate}\n    \\end{block}\n\n    \\begin{block}{Methodology}\n        \\large\n        \\begin{figure}\n            \\centering\n            \\includegraphics[width=0.9\\textwidth]{method-diagram}\n            \\caption{Proposed methodology overview}\n        \\end{figure}\n    \\end{block}\n\n\\end{column}\n\n% Middle column\n\\begin{column}{0.32\\textwidth}\n\n    \\begin{block}{Experiments}\n        \\large\n        \\begin{figure}\n            \\centering\n            \\includegraphics[width=0.9\\textwidth]{results-plot}\n            \\caption{Performance comparison}\n        \\end{figure}\n\n        \\begin{table}\n            \\centering\n            \\caption{Quantitative results}\n            \\begin{tabular}{lcc}\n                \\toprule\n                Method & Accuracy & Speed \\\\\n                \\midrule\n                Baseline & 85.2\\% & 1.0x \\\\\n                Our Method & \\textbf{92.7\\%} & 0.8x \\\\\n                \\bottomrule\n            \\end{tabular}\n        \\end{table}\n    \\end{block}\n\n    \\begin{block}{Results}\n        \\large\n        Key findings:\n        \\begin{itemize}\n            \\item Result one with 15\\% improvement\n            \\item Result two showing significance\n            \\item Result three validating hypothesis\n        \\end{itemize}\n    \\end{block}\n\n\\end{column}\n\n% Right column\n\\begin{column}{0.32\\textwidth}\n\n    \\begin{block}{Discussion}\n        \\large\n        \\lipsum[2][1-4]\n\n        \\begin{alertblock}{Key Insight}\n            Our method achieves state-of-the-art performance while maintaining computational efficiency.\n        \\end{alertblock}\n    \\end{block}\n\n    \\begin{block}{Conclusions}\n        \\large\n        \\begin{itemize}\n            \\item Conclusion one\n            \\item Conclusion two\n            \\item Future work direction\n        \\end{itemize}\n    \\end{block}\n\n    \\begin{block}{References}\n        \\footnotesize\n        \\bibliographystyle{abbrv}\n        \\bibliography{poster}\n    \\end{block}\n\n    \\begin{block}{Acknowledgments}\n        \\large\n        This work was supported by Grant \\#12345.\n    \\end{block}\n\n    \\begin{center}\n        \\includegraphics[width=0.5\\textwidth]{qr-code}\\\\\n        \\small Scan for paper and supplementary materials\n    \\end{center}\n\n\\end{column}\n\n\\end{columns}\n\\end{frame}\n\\end{document}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

<LatexSource filename="beamerposter-custom-theme.tex" source={"% Custom beamerposter theme\n\\documentclass[final]{beamer}\n\\usepackage[size=a0, orientation=portrait, scale=1.24]{beamerposter}\n\n% Remove navigation symbols\n\\setbeamertemplate{navigation symbols}{}\n\n% Custom color theme\n\\definecolor{primaryColor}{RGB}{0, 102, 204}\n\\definecolor{secondaryColor}{RGB}{255, 153, 0}\n\\definecolor{accentColor}{RGB}{51, 153, 102}\n\\definecolor{textColor}{RGB}{51, 51, 51}\n\\definecolor{bgColor}{RGB}{245, 245, 245}\n\n% Color settings\n\\setbeamercolor{block title}{fg=white, bg=primaryColor}\n\\setbeamercolor{block body}{fg=textColor, bg=bgColor}\n\\setbeamercolor{headline}{fg=white, bg=primaryColor}\n\\setbeamercolor{footline}{fg=white, bg=primaryColor}\n\\setbeamercolor{title in headline}{fg=white}\n\\setbeamercolor{author in headline}{fg=white}\n\n% Font settings\n\\setbeamerfont{block title}{size=\\Large, series=\\bfseries}\n\\setbeamerfont{title in headline}{size=\\VeryHuge, series=\\bfseries}\n\\setbeamerfont{author in headline}{size=\\Large}\n\n% Custom headline\n\\setbeamertemplate{headline}{\n    \\leavevmode\n    \\begin{beamercolorbox}[wd=\\paperwidth]{headline}\n        \\vskip2cm\n        \\centering\n        \\usebeamercolor{title in headline}{\n            \\color{fg}\\usebeamerfont{title in headline}\n            \\inserttitle\\\\[0.5ex]\n        }\n        \\vskip1cm\n        \\usebeamercolor{author in headline}{\n            \\color{fg}\\usebeamerfont{author in headline}\n            \\insertauthor\\\\[1ex]\n        }\n        \\vskip1cm\n    \\end{beamercolorbox}\n}\n\n% Custom block\n\\setbeamertemplate{block begin}{\n    \\begin{beamercolorbox}[ht=3.5ex, dp=0.5ex, center,\n        leftskip=-1em, colsep*=.75ex]{block title}%\n        \\usebeamerfont*{block title}\\insertblocktitle\n    \\end{beamercolorbox}%\n    {\\ifbeamercolorempty[bg]{block body}{}{\\nointerlineskip\\vskip-0.5pt}}%\n    \\usebeamerfont{block body}%\n    \\begin{beamercolorbox}[leftskip=1em, colsep*=.75ex, sep=0.5ex,\n        vmode]{block body}%\n}\n\\setbeamertemplate{block end}{\n    \\end{beamercolorbox}\n    \\vskip1cm\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

### tikzposter Package

<LatexSource filename="tikzposter-example.tex" source={"\\documentclass[25pt, a0paper, portrait]{tikzposter}\n\\usepackage{graphicx}\n\\usepackage{booktabs}\n\\usepackage{amsmath}\n\n% Theme\n\\usetheme{Autumn}\n\\usecolorstyle{Australia}\n\n% Title matter\n\\title{Research Title Using TikZposter}\n\\author{Jane Doe$^1$, John Smith$^2$}\n\\institute{$^1$University Name, $^2$Research Institute}\n\\titlegraphic{\\includegraphics[width=0.15\\textwidth]{logo}}\n\n% Custom colors\n\\definecolorstyle{myStyle}{\n    \\colorlet{colorOne}{blue!80!black}\n    \\colorlet{colorTwo}{orange!80!black}\n    \\colorlet{colorThree}{green!80!black}\n}{\n    % Background color\n    \\colorlet{backgroundcolor}{white}\n    \\colorlet{framecolor}{colorOne}\n    % Title colors\n    \\colorlet{titlefgcolor}{white}\n    \\colorlet{titlebgcolor}{colorOne}\n    % Block colors\n    \\colorlet{blocktitlebgcolor}{colorOne}\n    \\colorlet{blocktitlefgcolor}{white}\n    \\colorlet{blockbodybgcolor}{colorOne!10}\n    \\colorlet{blockbodyfgcolor}{black}\n    % Note colors\n    \\colorlet{notefgcolor}{black}\n    \\colorlet{notebgcolor}{colorTwo!30}\n}\n\n\\usecolorstyle{myStyle}\n\n\\begin{document}\n\n\\maketitle\n\n\\begin{columns}\n\n    % First column\n    \\column{0.33}\n\n    \\block{Introduction}{\n        \\large\n        Research context and motivation. This work addresses the important problem of...\n\n        \\begin{tikzfigure}[A workflow diagram]\n            \\includegraphics[width=0.9\\linewidth]{workflow}\n        \\end{tikzfigure}\n    }\n\n    \\block{Objectives}{\n        \\large\n        \\begin{enumerate}\n            \\item Primary objective with details\n            \\item Secondary objective explained\n            \\item Tertiary goal description\n        \\end{enumerate}\n    }\n\n    % Second column\n    \\column{0.33}\n\n    \\block{Methodology}{\n        \\large\n        Our approach consists of three main components:\n\n        \\begin{tikzfigure}[Methodology overview]\n            \\begin{tikzpicture}[scale=2]\n                % Custom TikZ diagram\n                \\node[draw, rectangle, fill=colorOne!20] (A) at (0,0) {Input};\n                \\node[draw, rectangle, fill=colorTwo!20] (B) at (3,0) {Process};\n                \\node[draw, rectangle, fill=colorThree!20] (C) at (6,0) {Output};\n                \\draw[thick, ->] (A) -- (B);\n                \\draw[thick, ->] (B) -- (C);\n            \\end{tikzpicture}\n        \\end{tikzfigure}\n    }\n\n    \\block{Results}{\n        \\large\n        \\begin{tikzfigure}[Performance comparison]\n            \\includegraphics[width=0.9\\linewidth]{results}\n        \\end{tikzfigure}\n\n        Key findings demonstrate significant improvements...\n    }\n\n    % Third column\n    \\column{0.33}\n\n    \\block{Evaluation}{\n        \\large\n        \\begin{table}\n            \\centering\n            \\begin{tabular}{lcc}\n                \\toprule\n                \\textbf{Metric} & \\textbf{Baseline} & \\textbf{Ours} \\\\\n                \\midrule\n                Accuracy & 82.3\\% & \\textbf{91.7\\%} \\\\\n                Speed & 1.0x & 2.3x \\\\\n                Memory & 4.2GB & \\textbf{2.1GB} \\\\\n                \\bottomrule\n            \\end{tabular}\n        \\end{table}\n    }\n\n    \\note[targetoffsetx=2cm, targetoffsety=-4cm, width=0.3\\linewidth]{\n        \\textbf{Contact:} jane.doe&#64;university.edu\n\n        \\textbf{Website:} www.project-page.com\n    }\n\n    \\block{Conclusions}{\n        \\large\n        \\begin{itemize}\n            \\item Main conclusion from the work\n            \\item Secondary finding importance\n            \\item Future research directions\n        \\end{itemize}\n    }\n\n    \\block{References}{\n        \\small\n        \\bibliographystyle{plain}\n        \\bibliography{references}\n    }\n\n\\end{columns}\n\n\\end{document}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

<LatexSource filename="tikzposter-advanced.tex" source={"% Advanced tikzposter features\n\\documentclass[25pt, a0paper, portrait, margin=0mm, innermargin=15mm]{tikzposter}\n\\usepackage{graphicx}\n\\usepackage{lipsum}\n\\usepackage{multicol}\n\n% Grid for layout planning\n\\tikzposterlatexaffectionproofon % Shows layout grid\n\n% Custom block styles\n\\defineblockstyle{MyBlock}{\n    titlewidthscale=1, bodywidthscale=1, titlecenter,\n    titleoffsetx=0pt, titleoffsety=0pt, bodyoffsetx=0pt, bodyoffsety=0pt,\n    bodyverticalshift=0pt, roundedcorners=20, linewidth=0pt,\n    titleinnersep=10mm, bodyinnersep=10mm\n}{\n    \\begin{scope}[line width=\\blocklinewidth, rounded corners=\\blockroundedcorners]\n        \\ifBlockHasTitle\n            \\draw[fill=blocktitlebgcolor]\n                (blocktitle.south west) rectangle (blocktitle.north east);\n        \\fi\n        \\draw[fill=blockbodybgcolor]\n            (blockbody.south west) rectangle (blockbody.north east);\n    \\end{scope}\n}\n\n\\useblockstyle{MyBlock}\n\n% Multi-column content\n\\newcommand{\\mycolumn}[1]{\n    \\begin{minipage}[t]{0.48\\linewidth}\n        #1\n    \\end{minipage}\n}\n\n\\begin{document}\n\n\\maketitle\n\n\\begin{columns}\n    \\column{0.5}\n\n    \\block{Complex Layout Example}{\n        \\begin{multicols}{2}\n            \\lipsum[1][1-3]\n\n            \\columnbreak\n\n            \\lipsum[2][1-3]\n        \\end{multicols}\n    }\n\n    \\column{0.5}\n\n    \\block{Advanced Graphics}{\n        \\begin{tikzfigure}\n            \\begin{tikzpicture}[scale=1.5]\n                % Radar chart example\n                \\foreach \\a/\\v in {0/85, 60/92, 120/78, 180/88, 240/95, 300/81} {\n                    \\draw[fill=blue!30, opacity=0.5]\n                        (0,0) -- (\\a:\\v/20) -- (\\a+60:\\v/20) -- cycle;\n                }\n                \\foreach \\a in {0, 60, 120, 180, 240, 300} {\n                    \\draw[gray] (0,0) -- (\\a:5);\n                }\n                \\foreach \\r in {1,2,3,4,5} {\n                    \\draw[gray!50] (0,0) circle (\\r);\n                }\n            \\end{tikzpicture}\n        \\end{tikzfigure}\n    }\n\n\\end{columns}\n\n\\end{document}"} />

<RenderedOutput title="Rendered output" ctaHref="https://app.latex-cloud-studio.com/?utm_source=resources&utm_medium=rendered_output&utm_campaign=docs_open_app&utm_content=learn_latex_how_to_creating_posters">
  <LatexPreview src="/images/rendered/learn-latex-how-to-creating-posters-04/page-1.svg" alt="Compiled PDF page 1 from tikzposter-advanced.tex" caption="Generated from the shown source with pdfLaTeX in the pinned LaTeXCloud TeX Live 2026 environment." width={2383.937} height={3370.394} />
</RenderedOutput>

### a0poster Package

<LatexSource filename="a0poster-template.tex" source={"\\documentclass[a0, portrait]{a0poster}\n\\usepackage{graphicx}\n\\usepackage{color}\n\\usepackage{multicol}\n\\usepackage{enumitem}\n\n% Colors\n\\definecolor{headercolor}{RGB}{0, 51, 102}\n\\definecolor{boxcolor}{RGB}{200, 200, 200}\n\n% Font sizes\n\\renewcommand{\\normalsize}{\\fontsize{24}{30}\\selectfont}\n\\renewcommand{\\large}{\\fontsize{28}{35}\\selectfont}\n\\renewcommand{\\Large}{\\fontsize{32}{40}\\selectfont}\n\\renewcommand{\\LARGE}{\\fontsize{36}{45}\\selectfont}\n\\renewcommand{\\huge}{\\fontsize{48}{60}\\selectfont}\n\\renewcommand{\\Huge}{\\fontsize{64}{80}\\selectfont}\n\n% Custom section command\n\\newcommand{\\mysection}[1]{\n    \\vspace{1cm}\n    {\\color{headercolor}\\LARGE\\bfseries #1}\n    \\vspace{0.5cm}\n}\n\n\\begin{document}\n\n% Header\n\\begin{center}\n    \\color{headercolor}\n    {\\Huge\\bfseries Research Title Goes Here}\\\\[1cm]\n    {\\Large Author Name$^1$, Coauthor Name$^2$}\\\\[0.5cm]\n    {\\large $^1$Department, University \\quad $^2$Institution}\n\\end{center}\n\n\\vspace{2cm}\n\n% Content in columns\n\\begin{multicols}{3}\n\n\\mysection{Introduction}\n\\normalsize\nYour introduction text here. This template uses the a0poster class for simple poster creation.\n\n\\columnbreak\n\n\\mysection{Methods}\n\\normalsize\nMethodology description with figures and equations.\n\n\\begin{center}\n    \\includegraphics[width=0.8\\linewidth]{method}\n\\end{center}\n\n\\columnbreak\n\n\\mysection{Results}\n\\normalsize\nResults and discussion with tables and graphs.\n\n\\end{multicols}\n\n\\end{document}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

## Design Elements

### Color Schemes

<LatexSource filename="color-schemes.tex" source={"% Professional color palettes for posters\n\n% Academic Blue Theme\n\\definecolor{primaryBlue}{RGB}{0, 51, 102}\n\\definecolor{secondaryBlue}{RGB}{102, 153, 204}\n\\definecolor{accentOrange}{RGB}{255, 153, 0}\n\\definecolor{backgroundGray}{RGB}{240, 240, 240}\n\n% Nature Green Theme\n\\definecolor{primaryGreen}{RGB}{34, 139, 34}\n\\definecolor{secondaryGreen}{RGB}{144, 238, 144}\n\\definecolor{accentBrown}{RGB}{139, 69, 19}\n\\definecolor{backgroundCream}{RGB}{255, 250, 240}\n\n% Modern Tech Theme\n\\definecolor{primaryPurple}{RGB}{106, 27, 154}\n\\definecolor{secondaryPink}{RGB}{239, 83, 155}\n\\definecolor{accentTeal}{RGB}{0, 188, 212}\n\\definecolor{backgroundLight}{RGB}{250, 250, 250}\n\n% High Contrast Theme\n\\definecolor{primaryBlack}{RGB}{33, 33, 33}\n\\definecolor{secondaryGray}{RGB}{117, 117, 117}\n\\definecolor{accentRed}{RGB}{229, 57, 53}\n\\definecolor{backgroundWhite}{RGB}{255, 255, 255}\n\n% Usage in tikzposter\n\\definecolorstyle{AcademicBlue}{\n    \\colorlet{colorOne}{primaryBlue}\n    \\colorlet{colorTwo}{secondaryBlue}\n    \\colorlet{colorThree}{accentOrange}\n}{\n    \\colorlet{backgroundcolor}{backgroundGray}\n    \\colorlet{blocktitlebgcolor}{colorOne}\n    \\colorlet{blocktitlefgcolor}{white}\n    \\colorlet{blockbodybgcolor}{white}\n    \\colorlet{blockbodyfgcolor}{black}\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

<LatexSource filename="visual-elements.tex" source={"% Visual design elements\n\n% Gradient backgrounds\n\\usepackage{tikz}\n\\usetikzlibrary{fadings}\n\n% Title with gradient\n\\newcommand{\\gradienttitle}[1]{\n    \\begin{tikzpicture}\n        \\node[\n            text width=\\textwidth,\n            align=center,\n            font=\\Huge\\bfseries,\n            text=white\n        ] (title) {#1};\n        \\begin{scope}[on background layer]\n            \\shade[\n                left color=primaryColor,\n                right color=secondaryColor,\n                middle color=primaryColor!70!secondaryColor\n            ]\n            ([xshift=-1cm, yshift=-0.5cm]title.south west)\n            rectangle\n            ([xshift=1cm, yshift=0.5cm]title.north east);\n        \\end{scope}\n    \\end{tikzpicture}\n}\n\n% Decorative frames\n\\newcommand{\\fancybox}[2]{\n    \\begin{tikzpicture}\n        \\node[\n            draw=colorOne,\n            fill=colorOne!10,\n            rounded corners=10pt,\n            inner sep=15pt,\n            text width=0.9\\linewidth,\n            drop shadow={\n                shadow xshift=3pt,\n                shadow yshift=-3pt,\n                fill=gray!50!white\n            }\n        ] {\n            \\textbf{\\large #1}\\\\[0.5em]\n            #2\n        };\n    \\end{tikzpicture}\n}\n\n% Icon integration\n\\usepackage{fontawesome5}\n\\newcommand{\\iconitem}[2]{\n    \\faIcon{#1} \\hspace{0.5em} #2\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

### Typography

<LatexSource filename="poster-typography.tex" source={"% Typography for posters\n\n% Minimum font sizes for readability\n% Title: 72-90pt\n% Section headers: 48-60pt\n% Body text: 24-32pt\n% Captions: 20-24pt\n\n% Font selection\n\\usepackage{libertine} % Clear serif font\n\\usepackage[libertine]{newtxmath} % Matching math\n\\usepackage{inconsolata} % Monospace for code\n\n% Or modern sans-serif\n\\usepackage{roboto}\n\\usepackage[sfdefault]{roboto}\n\n% Custom title formatting\n\\newcommand{\\postertitle}[1]{\n    {\\fontsize{90}{108}\\selectfont\\bfseries #1}\n}\n\n\\newcommand{\\postersubtitle}[1]{\n    {\\fontsize{48}{58}\\selectfont\\color{gray} #1}\n}\n\n\\newcommand{\\sectionheader}[1]{\n    {\\fontsize{54}{65}\\selectfont\\bfseries\\color{primaryColor} #1}\n}\n\n% Emphasis styles\n\\newcommand{\\highlight}[1]{\n    \\colorbox{yellow!30}{#1}\n}\n\n\\newcommand{\\important}[1]{\n    {\\Large\\bfseries\\color{accentColor} #1}\n}\n\n% Line spacing for posters\n\\renewcommand{\\baselinestretch}{1.2}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

<LatexSource filename="readability-tips.tex" source={"% Ensuring readability\n\n% High contrast text boxes\n\\newcommand{\\readablebox}[2]{\n    \\begin{tcolorbox}[\n        colback=white,\n        colframe=black,\n        boxrule=2pt,\n        arc=0pt,\n        left=10pt,\n        right=10pt,\n        top=10pt,\n        bottom=10pt,\n        title=#1,\n        coltitle=white,\n        fonttitle=\\Large\\bfseries,\n        colbacktitle=black\n    ]\n        \\large #2\n    \\end{tcolorbox}\n}\n\n% Clear bullet points\n\\setlist[itemize]{\n    label=\\textcolor{primaryColor}{\\textbullet},\n    itemsep=0.5em,\n    parsep=0.5em,\n    font=\\large\n}\n\n% Numbered lists with circles\n\\setlist[enumerate]{\n    label=\\protect\\circled{\\arabic*},\n    itemsep=0.5em,\n    parsep=0.5em,\n    font=\\large\n}\n\n\\newcommand{\\circled}[1]{\n    \\tikz[baseline=(char.base)]{\n        \\node[\n            shape=circle,\n            draw=primaryColor,\n            fill=primaryColor!20,\n            inner sep=2pt,\n            minimum size=1.5em\n        ] (char) {#1};\n    }\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

## Layout Strategies

### Grid-based Layout

<LatexSource filename="grid-layout.tex" source={"% Grid system for poster layout\n\n\\usepackage{tikz}\n\\usetikzlibrary{positioning, calc}\n\n% Define grid\n\\newcommand{\\setupgrid}[2]{\n    % #1 = columns, #2 = rows\n    \\pgfmathsetmacro{\\gridwidth}{\\textwidth/#1}\n    \\pgfmathsetmacro{\\gridheight}{\\textheight/#2}\n}\n\n% Place content in grid\n\\newenvironment{gridposter}[2]{\n    \\setupgrid{#1}{#2}\n    \\begin{tikzpicture}[\n        remember picture,\n        overlay,\n        shift={(current page.north west)},\n        gridbox/.style={\n            anchor=north west,\n            text width=\\gridwidth-2cm,\n            inner sep=1cm\n        }\n    ]\n}{\n    \\end{tikzpicture}\n}\n\n% Usage example\n\\begin{gridposter}{3}{4}\n    % Title spans all columns\n    \\node[gridbox, text width=3*\\gridwidth-2cm] at (0, -0) {\n        \\postertitle{Title}\n    };\n\n    % Content blocks\n    \\node[gridbox] at (0, -\\gridheight) {\n        \\sectionheader{Introduction}\n        Content here...\n    };\n\n    \\node[gridbox] at (\\gridwidth, -\\gridheight) {\n        \\sectionheader{Methods}\n        Content here...\n    };\n\n    \\node[gridbox] at (2*\\gridwidth, -\\gridheight) {\n        \\sectionheader{Results}\n        Content here...\n    };\n\\end{gridposter}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

<LatexSource filename="flexible-layout.tex" source={"% Flexible layout system\n\n\\newcommand{\\postercolumn}[3]{\n    % #1 = width fraction, #2 = title, #3 = content\n    \\begin{minipage}[t]{#1\\textwidth}\n        \\begin{center}\n            \\sectionheader{#2}\n        \\end{center}\n        \\vspace{0.5cm}\n        #3\n    \\end{minipage}\n}\n\n% Three-column layout with different widths\n\\begin{center}\n    \\postercolumn{0.3}{Introduction}{\n        Brief introduction text that sets the context...\n    }\n    \\hfill\n    \\postercolumn{0.4}{Main Results}{\n        \\begin{center}\n            \\includegraphics[width=0.9\\linewidth]{main-figure}\n        \\end{center}\n        Key findings explained...\n    }\n    \\hfill\n    \\postercolumn{0.25}{Conclusions}{\n        \\begin{itemize}\n            \\item Point 1\n            \\item Point 2\n            \\item Point 3\n        \\end{itemize}\n    }\n\\end{center}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

### Visual Flow

<LatexSource filename="visual-flow.tex" source={"% Creating visual flow through the poster\n\n% Numbered sections with arrows\n\\newcounter{flowstep}\n\\newcommand{\\flowsection}[2]{\n    \\stepcounter{flowstep}\n    \\begin{tikzpicture}[remember picture, overlay]\n        \\node[\n            circle,\n            fill=primaryColor,\n            text=white,\n            font=\\Large\\bfseries,\n            minimum size=2cm\n        ] (step\\theflowstep) {\\theflowstep};\n        \\node[\n            anchor=west,\n            font=\\Large\\bfseries,\n            text=primaryColor\n        ] at (step\\theflowstep.east) {\\quad #1};\n    \\end{tikzpicture}\n\n    #2\n\n    % Draw arrow to next section\n    \\ifnum\\value{flowstep}<5\n        \\begin{tikzpicture}[remember picture, overlay]\n            \\draw[\n                ->,\n                line width=3pt,\n                primaryColor\n            ] (step\\theflowstep.south) -- ++(0, -2cm);\n        \\end{tikzpicture}\n    \\fi\n}\n\n% Color-coded sections\n\\definecolor{intro}{RGB}{66, 146, 198}\n\\definecolor{methods}{RGB}{239, 126, 30}\n\\definecolor{results}{RGB}{120, 184, 72}\n\\definecolor{conclusion}{RGB}{180, 95, 172}\n\n\\newcommand{\\colorblock}[3]{\n    % #1 = color, #2 = title, #3 = content\n    \\begin{tcolorbox}[\n        colback=#1!10,\n        colframe=#1,\n        title=#2,\n        fonttitle=\\Large\\bfseries\n    ]\n        #3\n    \\end{tcolorbox}\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code performs setup or defines reusable behavior without producing visible page content on its own. It must be used inside a complete document to have a rendered result.
  </Info>
</RenderedOutput>

## Content Organization

### Effective Abstracts

<LatexSource filename="poster-abstract.tex" source={"% Concise poster abstract\n\n\\newcommand{\\posterabstract}[1]{\n    \\begin{tcolorbox}[\n        colback=gray!10,\n        colframe=gray!50,\n        boxrule=1pt,\n        arc=5pt,\n        title={\\Large\\bfseries Abstract},\n        coltitle=black,\n        left=15pt,\n        right=15pt,\n        top=10pt,\n        bottom=10pt\n    ]\n        \\large\n        #1\n    \\end{tcolorbox}\n}\n\n% Usage\n\\posterabstract{\n    \\textbf{Background:} Brief context (1-2 sentences).\n    \\textbf{Objective:} Clear research goal.\n    \\textbf{Methods:} Key methodology.\n    \\textbf{Results:} Main findings with numbers.\n    \\textbf{Conclusion:} Impact and significance.\n}\n\n% Alternative: Graphical abstract\n\\newcommand{\\graphicalabstract}[2]{\n    \\begin{center}\n        \\begin{tikzpicture}\n            \\node[\n                draw=primaryColor,\n                line width=2pt,\n                inner sep=0pt\n            ] {\\includegraphics[width=0.8\\linewidth]{#1}};\n            \\node[\n                below,\n                text width=0.8\\linewidth,\n                align=center,\n                font=\\large\n            ] {#2};\n        \\end{tikzpicture}\n    \\end{center}\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

<LatexSource filename="key-messages.tex" source={"% Highlighting key messages\n\n% Take-home message box\n\\newcommand{\\takeaway}[1]{\n    \\begin{tcolorbox}[\n        enhanced,\n        colback=yellow!20,\n        colframe=orange,\n        boxrule=2pt,\n        drop shadow,\n        title={\\Large\\bfseries\\faIcon{lightbulb} Key Message},\n        coltitle=black,\n        attach boxed title to top center={\n            yshift=-3mm,\n            yshifttext=-1mm\n        },\n        boxed title style={\n            colback=yellow!50,\n            colframe=orange\n        }\n    ]\n        \\Large\\centering\n        #1\n    \\end{tcolorbox}\n}\n\n% Bullet points for quick scanning\n\\newcommand{\\keypoints}[1]{\n    \\begin{tcolorbox}[\n        colback=primaryColor!5,\n        colframe=primaryColor,\n        title={\\large\\bfseries Quick Facts}\n    ]\n        \\begin{itemize}[\n            label=\\faIcon{check-circle},\n            font=\\large,\n            itemsep=0.5em\n        ]\n            #1\n        \\end{itemize}\n    \\end{tcolorbox}\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

### Visual Elements

<LatexSource filename="poster-figures.tex" source={"% Effective figure presentation\n\n% Figure with highlighted caption\n\\newcommand{\\posterfigure}[3]{\n    % #1 = width, #2 = image, #3 = caption\n    \\begin{center}\n        \\begin{tikzpicture}\n            \\node[\n                draw=gray,\n                line width=1pt,\n                inner sep=5pt\n            ] (img) {\\includegraphics[width=#1]{#2}};\n            \\node[\n                below=5pt of img,\n                text width=#1,\n                align=center,\n                fill=primaryColor!10,\n                draw=primaryColor,\n                rounded corners=5pt,\n                inner sep=8pt,\n                font=\\large\n            ] {#3};\n        \\end{tikzpicture}\n    \\end{center}\n}\n\n% Multi-panel figure\n\\newcommand{\\multipanel}[1]{\n    \\begin{center}\n        \\begin{tikzpicture}[\n            panel/.style={\n                draw=gray,\n                inner sep=2pt\n            },\n            label/.style={\n                fill=white,\n                draw=black,\n                circle,\n                inner sep=2pt,\n                font=\\large\\bfseries\n            }\n        ]\n            #1\n        \\end{tikzpicture}\n    \\end{center}\n}\n\n% Usage\n\\multipanel{\n    \\node[panel] (a) {\\includegraphics[width=0.4\\linewidth]{fig1}};\n    \\node[panel, right=1cm of a] (b) {\\includegraphics[width=0.4\\linewidth]{fig2}};\n    \\node[label] at (a.north west) {A};\n    \\node[label] at (b.north west) {B};\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

<LatexSource filename="data-visualization.tex" source={"% Effective data presentation\n\n% Infographic-style statistics\n\\newcommand{\\statistic}[3]{\n    % #1 = number, #2 = unit, #3 = description\n    \\begin{tikzpicture}\n        \\node[\n            font=\\Huge\\bfseries,\n            text=primaryColor\n        ] (num) {#1};\n        \\node[\n            right=0pt of num,\n            font=\\Large,\n            text=gray\n        ] {#2};\n        \\node[\n            below=5pt of num,\n            font=\\large,\n            text width=5cm,\n            align=center\n        ] {#3};\n    \\end{tikzpicture}\n}\n\n% Progress indicators\n\\newcommand{\\progress}[3]{\n    % #1 = percentage, #2 = label, #3 = color\n    \\begin{tikzpicture}\n        \\draw[gray!30, line width=20pt] (0,0) -- (10,0);\n        \\draw[#3, line width=20pt] (0,0) -- (#1/10,0);\n        \\node[above=5pt, font=\\large\\bfseries] at (5,0) {#2};\n        \\node[right=5pt, font=\\large] at (10,0) {#1\\%};\n    \\end{tikzpicture}\n}\n\n% Comparison chart\n\\newcommand{\\comparison}[4]{\n    \\begin{tikzpicture}[scale=0.8]\n        \\draw[->] (0,0) -- (0,6);\n        \\draw[->] (0,0) -- (8,0);\n        \\node[rotate=90, above] at (0,3) {Performance};\n        \\node[below] at (4,0) {Methods};\n\n        % Bars\n        \\draw[fill=gray!50] (1,0) rectangle (2,#1);\n        \\draw[fill=gray!50] (3,0) rectangle (4,#2);\n        \\draw[fill=primaryColor] (5,0) rectangle (6,#3);\n\n        \\node[below] at (1.5,0) {Baseline};\n        \\node[below] at (3.5,0) {Previous};\n        \\node[below] at (5.5,0) {\\textbf{Ours}};\n\n        \\node[above] at (1.5,#1) {#1};\n        \\node[above] at (3.5,#2) {#2};\n        \\node[above] at (5.5,#3) {\\textbf{#4}};\n    \\end{tikzpicture}\n}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This code is a contextual or intentionally partial LaTeX excerpt, not a self-contained compilable document. Its visible result depends on the surrounding document, so the documentation shows the expected role without inventing a standalone preview.
  </Info>
</RenderedOutput>

## Production Tips

### Pre-print Checklist

<Tip>
  ✅ **Poster production checklist**:

  * [ ] Check conference size requirements
  * [ ] Verify resolution (150-300 DPI)
  * [ ] Test readability from 6 feet away
  * [ ] Ensure color contrast for accessibility
  * [ ] Export as PDF with embedded fonts
  * [ ] Create backup in PowerPoint format
  * [ ] Test print on small scale first
  * [ ] Bring business cards/handouts
  * [ ] Prepare 2-minute elevator pitch
  * [ ] Have digital version on phone/tablet
</Tip>

### Common Mistakes

<Warning>
  **Avoid these poster pitfalls**:

  1. **Too much text** - Use bullet points
  2. **Small fonts** - Minimum 24pt for body
  3. **Poor contrast** - Test in grayscale
  4. **Cluttered layout** - Use white space
  5. **Missing contact info** - Add QR code
  6. **Low-res images** - Use vector/300DPI
  7. **Inconsistent style** - Use templates
</Warning>

## Complete Poster Example

<LatexSource filename="complete-poster.tex" source={"\\documentclass[25pt, a0paper, portrait]{tikzposter}\n\\usepackage{graphicx}\n\\usepackage{booktabs}\n\\usepackage{amsmath}\n\\usepackage{fontawesome5}\n\\usepackage{qrcode}\n\\usepackage{lipsum}\n\n% Theme setup\n\\usetheme{Desert}\n\n% Custom colors\n\\definecolorstyle{UniversityStyle}{\n    \\colorlet{colorOne}{blue!80!black}\n    \\colorlet{colorTwo}{orange!80!black}\n    \\colorlet{colorThree}{green!80!black}\n}{\n    \\colorlet{backgroundcolor}{white}\n    \\colorlet{blocktitlebgcolor}{colorOne}\n    \\colorlet{blocktitlefgcolor}{white}\n    \\colorlet{blockbodybgcolor}{colorOne!10!white}\n    \\colorlet{blockbodyfgcolor}{black}\n}\n\\usecolorstyle{UniversityStyle}\n\n% Title information\n\\title{\\parbox{\\linewidth}{\\centering Machine Learning for Climate Change Prediction:\\\\A Deep Learning Approach}}\n\\author{Jane Doe$^{1,2}$, John Smith$^1$, Alice Johnson$^2$}\n\\institute{$^1$Department of Computer Science, University Name\\\\\n$^2$Climate Research Institute}\n\\titlegraphic{\n    \\includegraphics[height=4cm]{university-logo}\n    \\hspace{2cm}\n    \\includegraphics[height=4cm]{institute-logo}\n}\n\n\\begin{document}\n\\maketitle\n\n\\begin{columns}\n    \\column{0.33}\n\n    \\block{Introduction}{\n        \\large\n        Climate change poses one of the greatest challenges of our time. Accurate prediction models are essential for:\n        \\begin{itemize}\n            \\item Policy making and resource allocation\n            \\item Risk assessment and mitigation strategies\n            \\item Understanding complex climate dynamics\n        \\end{itemize}\n\n        \\vspace{0.5cm}\n        \\textbf{Research Question:} Can deep learning models improve long-term climate predictions compared to traditional methods?\n    }\n\n    \\block{Objectives}{\n        \\large\n        \\begin{enumerate}\n            \\item Develop a novel deep learning architecture for climate modeling\n            \\item Integrate multiple data sources (satellite, ground stations, ocean buoys)\n            \\item Validate predictions against 50-year historical data\n            \\item Provide uncertainty quantification for predictions\n        \\end{enumerate}\n    }\n\n    \\block{Related Work}{\n        \\large\n        \\begin{itemize}\n            \\item \\textbf{Traditional Models:} GCMs, RCMs - computationally expensive\n            \\item \\textbf{ML Approaches:} Random Forests, SVMs - limited by feature engineering\n            \\item \\textbf{Recent DL:} CNNs for weather - short-term focus only\n        \\end{itemize}\n\n        \\coloredbox{colorTwo!30}{\n            \\textbf{Our Contribution:} First transformer-based architecture specifically designed for long-term climate prediction with uncertainty estimation\n        }\n    }\n\n    \\column{0.33}\n\n    \\block{Methodology}{\n        \\begin{tikzfigure}[Network Architecture]\n            \\includegraphics[width=0.9\\linewidth]{architecture-diagram}\n        \\end{tikzfigure}\n\n        \\large\n        \\textbf{Key Components:}\n        \\begin{itemize}\n            \\item \\faIcon{network-wired} Multi-scale temporal attention\n            \\item \\faIcon{layer-group} Hierarchical feature extraction\n            \\item \\faIcon{random} Uncertainty quantification layers\n            \\item \\faIcon{database} Multi-modal data fusion\n        \\end{itemize}\n\n        \\vspace{0.5cm}\n        \\textbf{Training Details:}\n        \\begin{itemize}\n            \\item Dataset: 150TB of climate data (1970-2020)\n            \\item Hardware: 8×A100 GPUs\n            \\item Training time: 2 weeks\n            \\item Validation: 5-fold cross-validation\n        \\end{itemize}\n    }\n\n    \\block{Implementation}{\n        \\large\n        \\begin{center}\n            \\begin{tikzpicture}[scale=0.9]\n                \\node[draw, rectangle, fill=colorOne!20] (data) at (0,0) {Data Sources};\n                \\node[draw, rectangle, fill=colorTwo!20] (preprocess) at (4,0) {Preprocessing};\n                \\node[draw, rectangle, fill=colorThree!20] (model) at (8,0) {ClimateNet};\n                \\node[draw, rectangle, fill=colorOne!20] (predict) at (12,0) {Predictions};\n\n                \\draw[->, thick] (data) -- (preprocess);\n                \\draw[->, thick] (preprocess) -- (model);\n                \\draw[->, thick] (model) -- (predict);\n            \\end{tikzpicture}\n        \\end{center}\n    }\n\n    \\column{0.33}\n\n    \\block{Results}{\n        \\begin{tikzfigure}[Temperature Prediction Accuracy]\n            \\includegraphics[width=0.9\\linewidth]{results-main}\n        \\end{tikzfigure}\n\n        \\large\n        \\begin{table}\n            \\centering\n            \\begin{tabular}{lcc}\n                \\toprule\n                \\textbf{Model} & \\textbf{RMSE} & \\textbf{R²} \\\\\n                \\midrule\n                GCM Baseline & 2.34°C & 0.72 \\\\\n                RF Ensemble & 1.89°C & 0.81 \\\\\n                Previous SOTA & 1.56°C & 0.86 \\\\\n                \\textbf{ClimateNet} & \\textbf{1.12°C} & \\textbf{0.93} \\\\\n                \\bottomrule\n            \\end{tabular}\n        \\end{table}\n\n        \\vspace{0.5cm}\n        \\coloredbox{colorThree!30}{\n            \\textbf{Key Finding:} 28\\% improvement in prediction accuracy with 95\\% confidence intervals\n        }\n    }\n\n    \\block{Conclusions \\& Future Work}{\n        \\large\n        \\textbf{Conclusions:}\n        \\begin{itemize}\n            \\item Deep learning significantly improves climate predictions\n            \\item Uncertainty quantification enables risk assessment\n            \\item Multi-modal fusion captures complex interactions\n        \\end{itemize}\n\n        \\textbf{Future Directions:}\n        \\begin{itemize}\n            \\item Extend to extreme weather events\n            \\item Incorporate socioeconomic factors\n            \\item Real-time prediction system\n        \\end{itemize}\n    }\n\n    \\block{References \\& Contact}{\n        \\small\n        [1] Smith et al. (2023) \\textit{Nature Climate Change}\\\\\n        [2] Doe \\& Johnson (2023) \\textit{ICML Proceedings}\\\\\n        [3] Climate Data Repository. \\textit{www.climatedata.org}\n\n        \\vspace{0.5cm}\n        \\begin{center}\n            \\begin{minipage}{0.4\\textwidth}\n                \\centering\n                \\qrcode[height=3cm]{https://project-website.com}\\\\\n                \\small Project Website\n            \\end{minipage}\n            \\begin{minipage}{0.4\\textwidth}\n                \\centering\n                \\faIcon{envelope} jane.doe&#64;university.edu\\\\\n                \\faIcon{twitter} @janedoe\\\\\n                \\faIcon{github} github.com/climatenet\n            \\end{minipage}\n        \\end{center}\n    }\n\n\\end{columns}\n\n\\end{document}"} />

<RenderedOutput title="Expected effect">
  <Info>
    This excerpt depends on project files such as images, bibliography data, or included TeX sources that are not part of this standalone code box. Its exact output is project-specific, so no fabricated preview is shown.
  </Info>
</RenderedOutput>

## Next Steps

Continue with visualization and advanced topics:

<CardGroup cols={2}>
  <Card title="TikZ Diagrams" icon="draw-polygon" href="/learn/latex/how-to/tikz-diagrams">
    Create complex diagrams
  </Card>

  <Card title="Presentations" icon="presentation-screen" href="/learn/latex/how-to/presentations">
    Design slide presentations
  </Card>

  <Card title="TikZ Diagrams" icon="chart-bar" href="/learn/latex/how-to/tikz-diagrams">
    Advanced diagram techniques
  </Card>

  <Card title="Templates" icon="copy" href="/learn/latex/how-to/using-templates">
    Reusable poster templates
  </Card>
</CardGroup>

***

<Info>
  **Pro tip**: Design your poster with the viewer's journey in mind. They should be able to understand your main message in 30 seconds, get the key details in 2 minutes, and find complete information if they spend 5 minutes. Always include contact information and a QR code linking to your paper or additional resources.
</Info>
