> ## 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.

# LaTeX Thesis & Dissertation Template

> Comprehensive LaTeX templates for PhD dissertations and Master's theses. Includes all necessary components for academic submissions.

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>;
};

Professional templates for writing your thesis or dissertation. These templates comply with most university requirements and include all necessary components for a complete academic document.

<Info>
  **Quick start**: Choose a template below and use its code-block copy button to take the complete thesis or dissertation into your project.
</Info>

## Choose This Template When

* You need chapters, front matter, appendices, and a long-document structure
* Your department expects a thesis or dissertation layout instead of a short article format
* You want a starting point for bibliography, lists of figures, and large-project organization

## Start in LaTeX Cloud Studio

<CardGroup cols={2}>
  <Card title="Open the Editor" icon="cloud" href="https://app.latex-cloud-studio.com/?utm_source=resources&utm_medium=card&utm_campaign=docs_open_app&utm_content=template_thesis_open_editor">
    Start with the thesis file, compile early, and adjust title page, margins, and bibliography settings first.
  </Card>

  <Card title="Large Document Workflow" icon="folder-tree" href="/learn/latex/how-to/large-documents">
    Use the large-document guide when you split chapters, references, and appendices across files.
  </Card>
</CardGroup>

## How to Adapt for Your University

1. Check your official thesis formatting guide first.
2. Set margin, line spacing, and front matter requirements in the preamble.
3. Align chapter naming and numbering with department policy.
4. Choose bibliography rules early using the [Bibliography hub](/learn/latex/bibliography).
5. Use structure guides for large projects from the [Document Structure hub](/learn/latex/document-structure) and [Managing large documents](/learn/latex/how-to/large-documents).

## Complete Thesis Template

This comprehensive template includes everything you need:

<LatexSource filename="thesis-main.tex" source={"\\documentclass[12pt,oneside]{book}\n\n% Essential packages\n\\usepackage[utf8]{inputenc}\n\\usepackage[T1]{fontenc}\n\\usepackage{amsmath,amssymb,amsthm}\n\\usepackage{graphicx}\n\\usepackage{hyperref}\n\\usepackage[margin=1.5in]{geometry}\n\\usepackage{setspace}\n\\usepackage{tocloft}\n\\usepackage{appendix}\n\\usepackage{biblatex}\n\\addbibresource{references.bib}\n\n% Line spacing\n\\doublespacing\n\n% Chapter title formatting\n\\usepackage{titlesec}\n\\titleformat{\\chapter}[display]\n  {\\normalfont\\huge\\bfseries}{\\chaptertitlename\\ \\thechapter}{20pt}{\\Huge}\n\\titlespacing*{\\chapter}{0pt}{0pt}{40pt}\n\n% Theorem environments\n\\theoremstyle{plain}\n\\newtheorem{theorem}{Theorem}[chapter]\n\\newtheorem{lemma}[theorem]{Lemma}\n\\newtheorem{proposition}[theorem]{Proposition}\n\\newtheorem{corollary}[theorem]{Corollary}\n\n\\theoremstyle{definition}\n\\newtheorem{definition}[theorem]{Definition}\n\\newtheorem{example}[theorem]{Example}\n\n\\theoremstyle{remark}\n\\newtheorem{remark}[theorem]{Remark}\n\n% Document information\n\\title{Title of Your Thesis}\n\\author{Your Full Name}\n\\date{Month Year}\n\n\\begin{document}\n\n% Title Page\n\\begin{titlepage}\n\\begin{center}\n\\vspace*{1cm}\n\n\\textbf{\\LARGE Title of Your Thesis}\\\\\n\\vspace{0.5cm}\n\\large Subtitle if Applicable\n\n\\vfill\n\nA Dissertation\\\\\nPresented to the Faculty of the Graduate School\\\\\nof\\\\\n\\textbf{University Name}\\\\\nin Partial Fulfillment\\\\\nof the Requirements for the Degree\\\\\n\\textbf{Doctor of Philosophy}\n\n\\vfill\n\nby\\\\\n\\textbf{Your Full Name}\\\\\nMonth Year\n\n\\end{center}\n\\end{titlepage}\n\n% Copyright Page (optional)\n\\clearpage\n\\thispagestyle{empty}\n\\vspace*{\\fill}\n\\begin{center}\nCopyright \\copyright\\ Year by Your Name\\\\\nAll Rights Reserved\n\\end{center}\n\\vspace*{\\fill}\n\\clearpage\n\n% Abstract\n\\chapter*{Abstract}\n\\addcontentsline{toc}{chapter}{Abstract}\n\nThis abstract should summarize your entire thesis in 150-350 words. Include:\n\\begin{itemize}\n    \\item The research problem and its significance\n    \\item Your methodology or approach\n    \\item Key findings or results\n    \\item Main conclusions and contributions\n\\end{itemize}\n\nThe abstract should be self-contained and understandable without reading the full thesis.\n\n\\textbf{Keywords:} keyword1, keyword2, keyword3, keyword4, keyword5\n\n% Dedication (optional)\n\\chapter*{Dedication}\n\\addcontentsline{toc}{chapter}{Dedication}\n\\begin{center}\n\\textit{To my family, for their unwavering support}\n\\end{center}\n\n% Acknowledgments\n\\chapter*{Acknowledgments}\n\\addcontentsline{toc}{chapter}{Acknowledgments}\n\nI would like to express my deepest gratitude to:\n\nMy advisor, Professor Name, for invaluable guidance and mentorship throughout this journey.\n\nMy committee members, Professors X, Y, and Z, for their insightful feedback and support.\n\nMy colleagues in the research group for stimulating discussions and collaboration.\n\nMy family and friends for their patience and encouragement.\n\nThis work was supported by Grant Number XXX from Funding Agency.\n\n% Table of Contents\n\\tableofcontents\n\n% List of Figures\n\\listoffigures\n\\addcontentsline{toc}{chapter}{List of Figures}\n\n% List of Tables\n\\listoftables\n\\addcontentsline{toc}{chapter}{List of Tables}\n\n% List of Abbreviations (optional)\n\\chapter*{List of Abbreviations}\n\\addcontentsline{toc}{chapter}{List of Abbreviations}\n\\begin{tabular}{ll}\nAI & Artificial Intelligence\\\\\nML & Machine Learning\\\\\nNLP & Natural Language Processing\\\\\nAPI & Application Programming Interface\\\\\n\\end{tabular}\n\n% Main Content\n\\mainmatter\n\n\\chapter{Introduction}\n\\label{ch:introduction}\n\n\\section{Background and Motivation}\n\nBegin with the broader context of your research area. Explain why this topic is important and what problems exist that need solving.\n\n\\section{Problem Statement}\n\nClearly define the specific problem your thesis addresses. Be precise about:\n\\begin{itemize}\n    \\item What is the gap in current knowledge?\n    \\item Why is this gap significant?\n    \\item What are the challenges in addressing it?\n\\end{itemize}\n\n\\section{Research Questions}\n\nState your research questions or hypotheses explicitly:\n\\begin{enumerate}\n    \\item Research Question 1\n    \\item Research Question 2\n    \\item Research Question 3\n\\end{enumerate}\n\n\\section{Contributions}\n\nSummarize the main contributions of your thesis:\n\\begin{itemize}\n    \\item \\textbf{Contribution 1}: Brief description\n    \\item \\textbf{Contribution 2}: Brief description\n    \\item \\textbf{Contribution 3}: Brief description\n\\end{itemize}\n\n\\section{Thesis Organization}\n\nProvide a roadmap for the reader:\n\nChapter \\ref{ch:literature} reviews the relevant literature and positions our work within the existing body of knowledge.\n\nChapter \\ref{ch:methodology} presents our methodology and theoretical framework.\n\nChapter \\ref{ch:results} details our experimental results and analysis.\n\nChapter \\ref{ch:discussion} discusses the implications of our findings.\n\nChapter \\ref{ch:conclusion} concludes the thesis and suggests future research directions.\n\n\\chapter{Literature Review}\n\\label{ch:literature}\n\n\\section{Theoretical Background}\n\nReview the fundamental theories and concepts relevant to your work.\n\n\\subsection{Classical Approaches}\n\nDiscuss traditional methods and their limitations.\n\n\\subsection{Recent Developments}\n\nCover recent advances in the field, citing key papers \\cite{author2023}.\n\n\\section{Related Work}\n\n\\subsection{Approach A}\nDiscuss how others have approached similar problems...\n\n\\subsection{Approach B}\nAnother line of research has focused on...\n\n\\section{Gap Analysis}\n\nSynthesize the literature to clearly identify the gap your thesis fills.\n\n\\chapter{Methodology}\n\\label{ch:methodology}\n\n\\section{Research Design}\n\nDescribe your overall research approach and justify your choices.\n\n\\section{Theoretical Framework}\n\nPresent any theoretical models or frameworks you've developed.\n\n\\begin{definition}\nA \\emph{key concept} is defined as...\n\\end{definition}\n\n\\begin{theorem}\nUnder conditions X and Y, the following holds...\n\\end{theorem}\n\n\\begin{proof}\nWe proceed by induction...\n\\end{proof}\n\n\\section{Data Collection}\n\nIf applicable, describe your data sources and collection methods.\n\n\\section{Analysis Methods}\n\nDetail your analytical approaches, algorithms, or experimental procedures.\n\n\\chapter{Results}\n\\label{ch:results}\n\n\\section{Experimental Setup}\n\nDescribe your experimental environment, parameters, and implementation details.\n\n\\section{Main Results}\n\nPresent your findings with appropriate figures and tables.\n\n\\begin{figure}[h]\n\\centering\n\\includegraphics[width=0.8\\textwidth]{result1.png}\n\\caption{Main experimental results showing...}\n\\label{fig:main-results}\n\\end{figure}\n\n\\begin{table}[h]\n\\centering\n\\caption{Comparison of different approaches}\n\\label{tab:comparison}\n\\begin{tabular}{|l|c|c|c|}\n\\hline\n\\textbf{Method} & \\textbf{Metric 1} & \\textbf{Metric 2} & \\textbf{Metric 3} \\\\\n\\hline\nBaseline & 0.75 & 0.82 & 0.69 \\\\\nOur Method & \\textbf{0.89} & \\textbf{0.91} & \\textbf{0.85} \\\\\n\\hline\n\\end{tabular}\n\\end{table}\n\n\\section{Statistical Analysis}\n\nInclude any statistical validation of your results.\n\n\\section{Additional Experiments}\n\nPresent supplementary experiments that support your main findings.\n\n\\chapter{Discussion}\n\\label{ch:discussion}\n\n\\section{Interpretation of Results}\n\nExplain what your results mean in the context of your research questions.\n\n\\section{Implications}\n\n\\subsection{Theoretical Implications}\nHow do your findings advance theoretical understanding?\n\n\\subsection{Practical Implications}\nWhat are the real-world applications of your work?\n\n\\section{Limitations}\n\nHonestly discuss the limitations of your study:\n\\begin{itemize}\n    \\item Limitation 1 and its potential impact\n    \\item Limitation 2 and how it might be addressed\n    \\item Limitation 3 and future considerations\n\\end{itemize}\n\n\\section{Comparison with Prior Work}\n\nCompare your results with those reported in the literature.\n\n\\chapter{Conclusion}\n\\label{ch:conclusion}\n\n\\section{Summary of Contributions}\n\nRecapitulate your main contributions and findings.\n\n\\section{Answers to Research Questions}\n\nExplicitly answer each research question posed in Chapter 1.\n\n\\section{Future Work}\n\nSuggest directions for future research:\n\\begin{enumerate}\n    \\item Extension 1: Description\n    \\item Extension 2: Description\n    \\item New Direction: Description\n\\end{enumerate}\n\n\\section{Final Remarks}\n\nConclude with the broader impact and significance of your work.\n\n% Bibliography\n\\printbibliography[heading=bibintoc,title={References}]\n\n% Appendices\n\\appendix\n\n\\chapter{Additional Proofs}\n\\label{app:proofs}\n\nInclude lengthy mathematical proofs that would interrupt the main text.\n\n\\chapter{Implementation Details}\n\\label{app:implementation}\n\nProvide code snippets, algorithms, or technical details.\n\n\\begin{verbatim}\ndef main_algorithm(data):\n    # Implementation details\n    processed = preprocess(data)\n    result = analyze(processed)\n    return result\n\\end{verbatim}\n\n\\chapter{Supplementary Data}\n\\label{app:data}\n\nInclude additional tables, figures, or datasets.\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>

## University-Specific Formatting

### Page Setup Options

<LatexSource filename="formatting.tex" source={"% US Letter with 1\" margins\n\\usepackage[letterpaper,margin=1in]{geometry}\n\n% A4 with custom margins\n\\usepackage[a4paper,left=1.5in,right=1in,top=1in,bottom=1in]{geometry}\n\n% Double spacing (most common requirement)\n\\usepackage{setspace}\n\\doublespacing\n\n% Page numbers at bottom center\n\\usepackage{fancyhdr}\n\\pagestyle{fancy}\n\\fancyhf{}\n\\fancyfoot[C]{\\thepage}\n\\renewcommand{\\headrulewidth}{0pt}"} />

<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>

### Front Matter Components

<LatexSource filename="frontmatter.tex" source={"% Approval Page\n\\chapter*{Approval Page}\n\\thispagestyle{empty}\n\\begin{center}\nThis dissertation by YOUR NAME has been approved by:\\\\\n\\vspace{2cm}\n\n\\rule{0.5\\textwidth}{0.4pt}\\\\\nCommittee Chair Name, Ph.D.\\\\\n\\vspace{1cm}\n\n\\rule{0.5\\textwidth}{0.4pt}\\\\\nCommittee Member Name, Ph.D.\\\\\n\\vspace{1cm}\n\n\\rule{0.5\\textwidth}{0.4pt}\\\\\nExternal Examiner Name, Ph.D.\\\\\n\\vspace{2cm}\n\nDate: \\rule{0.3\\textwidth}{0.4pt}\n\\end{center}\n\n% Declaration of Originality\n\\chapter*{Declaration of Originality}\nI hereby declare that this thesis is my own work and effort..."} />

<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>

## Chapter Organization

### Using Separate Files

<LatexSource filename="main-modular.tex" source={"% main.tex\n\\documentclass[12pt]{book}\n% ... preamble ...\n\n\\begin{document}\n% Front matter\n\\include{frontmatter/titlepage}\n\\include{frontmatter/abstract}\n\\include{frontmatter/acknowledgments}\n\n\\tableofcontents\n\\listoffigures\n\\listoftables\n\n% Main chapters\n\\include{chapters/introduction}\n\\include{chapters/literature}\n\\include{chapters/methodology}\n\\include{chapters/results}\n\\include{chapters/discussion}\n\\include{chapters/conclusion}\n\n% Back matter\n\\printbibliography\n\\include{appendices/appendixA}\n\\include{appendices/appendixB}\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>

### Chapter File Example

<LatexSource filename="chapter-introduction.tex" source={"% chapters/introduction.tex\n\\chapter{Introduction}\n\\label{ch:introduction}\n\n\\section{Background}\nContent here...\n\n\\section{Motivation}\nMore content...\n\n% Note: Don't include \\begin{document} in chapter files"} />

<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>

## Bibliography Management

### Using BibLaTeX (Recommended)

<LatexSource filename="biblatex-setup.tex" source={"% In preamble\n\\usepackage[style=apa,backend=biber]{biblatex}\n\\addbibresource{references.bib}\n\n% Where you want the bibliography\n\\printbibliography[heading=bibintoc]"} />

<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>

### Sample Bibliography File

<CodeGroup>
  ```bibtex references.bib theme={null}
  @article{smith2023,
    author = {Smith, John and Doe, Jane},
    title = {Revolutionary Findings in Field X},
    journal = {Journal of Important Research},
    volume = {42},
    number = {3},
    pages = {123--145},
    year = {2023},
    doi = {10.1234/jir.2023.42.3.123}
  }

  @book{johnson2022,
    author = {Johnson, Sarah},
    title = {Comprehensive Guide to Topic Y},
    publisher = {Academic Press},
    year = {2022},
    edition = {3rd},
    address = {New York, NY}
  }

  @inproceedings{lee2023,
    author = {Lee, Kevin and Wang, Lisa},
    title = {Novel Approach to Problem Z},
    booktitle = {Proceedings of the International Conference},
    pages = {456--467},
    year = {2023},
    organization = {IEEE}
  }
  ```
</CodeGroup>

## Common Thesis Elements

### Equations and Theorems

<LatexSource filename="math-elements.tex" source={"% Numbered equation\n\\begin{equation}\n\\label{eq:main}\nf(x) = \\int_0^\\infty g(t) e^{-xt} dt\n\\end{equation}\n\n% Multi-line equation\n\\begin{align}\nH(X) &= -\\sum_{i=1}^n p_i \\log p_i \\\\\n     &= \\mathbb{E}[-\\log p(X)]\n\\end{align}\n\n% Theorem with proof\n\\begin{theorem}[Convergence]\n\\label{thm:convergence}\nUnder assumptions A1-A3, the algorithm converges\nto the global optimum with probability 1.\n\\end{theorem}\n\n\\begin{proof}\nLet $\\epsilon > 0$ be arbitrary...\n\\end{proof}"} />

<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=templates_thesis">
  <LatexPreview src="/images/rendered/templates-thesis-07/page-1.svg" alt="Compiled PDF page 1 from math-elements.tex" caption="Generated from the shown source with pdfLaTeX in the pinned LaTeXCloud TeX Live 2026 environment. The visible fragment is compiled inside the documented minimal article wrapper." width={595.276} height={841.89} />
</RenderedOutput>

### Algorithms

<LatexSource filename="algorithms.tex" source={"\\usepackage{algorithm}\n\\usepackage{algorithmic}\n\n\\begin{algorithm}\n\\caption{Main Processing Algorithm}\n\\label{alg:main}\n\\begin{algorithmic}[1]\n\\REQUIRE Input data $X$\n\\ENSURE Processed result $Y$\n\\STATE Initialize parameters $\\theta$\n\\WHILE{not converged}\n    \\STATE $\\theta \\leftarrow \\text{UpdateStep}(\\theta, X)$\n    \\IF{$\\|\\theta - \\theta_{old}\\| < \\epsilon$}\n        \\STATE \\textbf{break}\n    \\ENDIF\n\\ENDWHILE\n\\RETURN $Y = f(X, \\theta)$\n\\end{algorithmic}\n\\end{algorithm}"} />

<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>

## Formatting Tips

<Tip>
  **Essential Formatting Guidelines:**

  1. Check your university's specific requirements early
  2. Use consistent formatting throughout
  3. Number all pages except title page
  4. Include page numbers in TOC for all sections
  5. Ensure figures and tables are referenced in text
  6. Keep one backup version before major changes
</Tip>

### Common Requirements

| Element        | Common Requirement                      |
| -------------- | --------------------------------------- |
| Font           | Times New Roman 12pt                    |
| Spacing        | Double spaced                           |
| Margins        | 1" all sides (or 1.5" left for binding) |
| Page Numbers   | Bottom center or top right              |
| Chapter Titles | Bold, centered, or flush left           |
| Citations      | Consistent style throughout             |

## Troubleshooting

<Warning>
  **Common Issues:**

  * **Missing references**: Run BibTeX/Biber between LaTeX compilations
  * **Incorrect numbering**: Clear auxiliary files and recompile
  * **Overfull hboxes**: Adjust text or use `\sloppy` in problematic paragraphs
  * **Figure placement**: Use `[htbp]` for flexible positioning
</Warning>

## Compilation Workflow

```bash theme={null}
# For BibLaTeX
pdflatex thesis.tex
biber thesis
pdflatex thesis.tex
pdflatex thesis.tex

# For traditional BibTeX
pdflatex thesis.tex
bibtex thesis
pdflatex thesis.tex
pdflatex thesis.tex
```

## Additional Resources

<CardGroup cols={2}>
  <Card title="Thesis Guide" icon="university" href="/learn/latex/how-to/thesis-dissertation">
    Complete thesis writing guide
  </Card>

  <Card title="Citation Styles" icon="quote" href="/learn/latex/bibliography-citations">
    Guide to different citation formats
  </Card>

  <Card title="Figure Best Practices" icon="image" href="/learn/latex/figures/inserting-images">
    Creating publication-quality figures
  </Card>

  <Card title="Table Guidelines" icon="table" href="/learn/latex/tables/creating-tables">
    Professional table formatting
  </Card>
</CardGroup>

***

<Info>
  **Final Tip**: Start writing early, even if just outlines. LaTeX makes it easy to reorganize content as your thesis evolves. Focus on content first, formatting second.
</Info>

Good luck with your thesis! Remember to take regular breaks and celebrate small victories along the way.
