<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Saurabh Shah</title>
    <description>The latest articles on Forem by Saurabh Shah (@saurabh_shah).</description>
    <link>https://forem.com/saurabh_shah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3814318%2Fc73122e4-74e4-4890-9fa1-f1e82b5af02a.png</url>
      <title>Forem: Saurabh Shah</title>
      <link>https://forem.com/saurabh_shah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/saurabh_shah"/>
    <language>en</language>
    <item>
      <title>Generic LaTeX thesis templates don't meet Australian university requirements</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Tue, 21 Apr 2026 05:50:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/generic-latex-thesis-templates-dont-meet-australian-university-requirements-1bhd</link>
      <guid>https://forem.com/saurabh_shah/generic-latex-thesis-templates-dont-meet-australian-university-requirements-1bhd</guid>
      <description>&lt;p&gt;Most LaTeX thesis templates floating around online are built for US universities. Australian universities have different requirements: A4 paper (not US Letter), different front matter sequences, and thesis-by-publication formats that are much more common here than in the US.&lt;/p&gt;

&lt;p&gt;The front matter order alone is a frequent rejection reason. University of Melbourne requires one sequence; ANU requires a different one; most generic templates follow US convention, which matches neither.&lt;/p&gt;

&lt;p&gt;Thesis by publication (where your chapters are published papers with connecting text) adds another layer. Each paper was formatted for a different journal template (IEEE, Elsevier, Springer, etc.) and needs to be unified into a single thesis style with consistent formatting and either per-chapter or consolidated bibliographies.&lt;/p&gt;

&lt;p&gt;There's a &lt;a href="https://thelatexlab.com/thesis-formatting-australia/" rel="noopener noreferrer"&gt;PhD thesis formatting service for Australian universities&lt;/a&gt; that has worked with all Group of Eight institutions and knows the specific front matter requirements, Australian citation styles (APA 7th, Harvard, Vancouver), and thesis-by-publication formatting. They also confirm the service falls within IPEd guidelines, so you can declare it in your academic integrity statement.&lt;/p&gt;

</description>
      <category>phd</category>
      <category>thesis</category>
      <category>latex</category>
      <category>overleaf</category>
    </item>
    <item>
      <title>arXiv doesn't run BibTeX. That's why your references show as [?].</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Mon, 20 Apr 2026 04:49:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/arxiv-doesnt-run-bibtex-thats-why-your-references-show-as--55i0</link>
      <guid>https://forem.com/saurabh_shah/arxiv-doesnt-run-bibtex-thats-why-your-references-show-as--55i0</guid>
      <description>&lt;p&gt;When you compile locally: pdflatex → bibtex → pdflatex → pdflatex. arXiv runs pdflatex only. It skips BibTeX entirely.&lt;/p&gt;

&lt;p&gt;So if you upload your .bib file and expect arXiv to generate your bibliography, it won't. Every citation becomes [?]. Your paper technically "compiles" on their system but the reference list is broken.&lt;/p&gt;

&lt;p&gt;The fix: include the pre-compiled .bbl file in your upload. You generate it locally, then include it alongside your .tex. There is an extra wrinkle if you use biblatex: the .bbl format is version-sensitive and must match arXiv's current TeX Live distribution, otherwise you get cryptic errors inside the .bbl itself.&lt;/p&gt;

&lt;p&gt;The second most common failure is a hyperref option clash. arXiv injects its own hyperref, which conflicts with your \usepackage[options]{hyperref} call.&lt;/p&gt;

&lt;p&gt;If your arXiv submission keeps failing, the &lt;a href="https://thelatexlab.com/arxiv-latex-formatting/" rel="noopener noreferrer"&gt;arXiv LaTeX formatting service&lt;/a&gt; at The LaTeX Lab specifically handles these , .bbl generation, hyperref conflict resolution, figure format unification, and source cleanup (since arXiv makes your .tex publicly downloadable).&lt;/p&gt;

</description>
      <category>latex</category>
      <category>arxiv</category>
      <category>bibtex</category>
      <category>overleaf</category>
    </item>
    <item>
      <title>ACM camera-ready is harder than it looks. TAPS is why.</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Sun, 19 Apr 2026 03:42:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/acm-camera-ready-is-harder-than-it-looks-taps-is-why-209p</link>
      <guid>https://forem.com/saurabh_shah/acm-camera-ready-is-harder-than-it-looks-taps-is-why-209p</guid>
      <description>&lt;p&gt;Most publishers just want a .tex file. ACM has TAPS (The ACM Publishing System). It does not just compile your LaTeX. It generates both a PDF and an HTML5 version, checks package compatibility against a whitelist, validates accessibility, and enforces rules that Overleaf doesn't enforce.&lt;/p&gt;

&lt;p&gt;Common TAPS failures: using a package that's not on ACM's approved list (no error locally, rejected by TAPS), submitting the review format (manuscript, single-column with line numbers) instead of the camera-ready format (sigconf, two-column), missing or incorrectly placed rights management commands, and broken CCS concept descriptors.&lt;/p&gt;

&lt;p&gt;If your TAPS submission is failing and ACM support hasn't responded in time, there's an &lt;a href="https://thelatexlab.com/acm-latex-formatting/" rel="noopener noreferrer"&gt;ACM LaTeX formatting service&lt;/a&gt; that handles the full pipeline , sigconf, sigplan, acmsmall, rights block insertion, CCS concepts, and TAPS validation , with same-day turnaround for urgent cases.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>acm</category>
      <category>computerscience</category>
      <category>overleaf</category>
    </item>
    <item>
      <title>MDPI LaTeX: the Overleaf template is probably out of date</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Sat, 18 Apr 2026 06:40:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/mdpi-latex-the-overleaf-template-is-probably-out-of-date-1nbf</link>
      <guid>https://forem.com/saurabh_shah/mdpi-latex-the-overleaf-template-is-probably-out-of-date-1nbf</guid>
      <description>&lt;p&gt;MDPI updates their official LaTeX template (mdpi.cls) several times a year. The version on Overleaf's template gallery is almost always behind the version on MDPI's actual website.&lt;/p&gt;

&lt;p&gt;If you submit using the Overleaf version, MDPI's production team will ask you to reformat with the current template. That means updating the Definitions/ folder, adjusting frontmatter commands, and potentially fixing citation settings before your paper goes into production.&lt;/p&gt;

&lt;p&gt;Also worth knowing: not all MDPI journals use numbered citations. The social sciences and humanities journals (Administrative Sciences, Econometrics, Education Sciences, Humanities, and others) use author-date format. Using the wrong one is a common rejection reason.&lt;/p&gt;

&lt;p&gt;If you'd rather skip the template archaeology, there's an &lt;a href="https://thelatexlab.com/mdpi-latex-formatting/" rel="noopener noreferrer"&gt;MDPI LaTeX formatting service&lt;/a&gt; that always downloads from MDPI's site directly, not Overleaf, and verifies the citation style for your specific journal before starting.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>mdpi</category>
      <category>overleaf</category>
      <category>research</category>
    </item>
    <item>
      <title>Why your Elsevier LaTeX file compiles in Overleaf but fails on Editorial Manager</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Fri, 17 Apr 2026 09:39:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/why-your-elsevier-latex-file-compiles-in-overleaf-but-fails-on-editorial-manager-2aao</link>
      <guid>https://forem.com/saurabh_shah/why-your-elsevier-latex-file-compiles-in-overleaf-but-fails-on-editorial-manager-2aao</guid>
      <description>&lt;p&gt;Elsevier's Editorial Manager runs TeX Live 2022. Overleaf runs a newer version. That gap causes real problems.&lt;/p&gt;

&lt;p&gt;The three most common failures: your /images/ subfolder (EM requires a completely flat file structure), your .bib file labeled as "LaTeX source file" instead of "Manuscript" in the upload UI (EM ignores your bibliography entirely when labeled wrong), and elsarticle.cls version mismatches between your local install and EM's older distribution.&lt;/p&gt;

&lt;p&gt;None of these throw obvious errors. You just get a broken PDF and an error log that's hard to read.&lt;/p&gt;

&lt;p&gt;If you're stuck in this loop, &lt;a href="https://thelatexlab.com/elsevier-latex-formatting/" rel="noopener noreferrer"&gt;Elsevier-specific LaTeX formatting&lt;/a&gt; that tests for EM compatibility specifically , not just Overleaf , saves a lot of back and forth. They also handle the newer CAS templates (cas-sc, cas-dc) if your journal requires graphical abstracts or highlights.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>elsevier</category>
      <category>research</category>
      <category>overleaf</category>
    </item>
    <item>
      <title>The one Springer LaTeX mistake almost everyone makes</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Thu, 16 Apr 2026 13:37:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/the-one-springer-latex-mistake-almost-everyone-makes-48b2</link>
      <guid>https://forem.com/saurabh_shah/the-one-springer-latex-mistake-almost-everyone-makes-48b2</guid>
      <description>&lt;p&gt;Springer has six different bibliography style files (.bst). Each journal requires a specific one: spbasic, spmpsci, spphys, splncs04, and two sn-* variants for the newer Springer Nature template.&lt;/p&gt;

&lt;p&gt;Using the wrong one doesn't throw a compilation error. Your paper compiles fine. But the production editor will flag it and send it back. It's a silent problem that costs you time.&lt;/p&gt;

&lt;p&gt;Same story with the document class options in svjour3 , most journals require "smallextended" but the template defaults to "standard." Paper compiles, looks fine in Overleaf, wrong margins in production.&lt;/p&gt;

&lt;p&gt;If you're spending time on this instead of your research, there's a &lt;a href="https://thelatexlab.com/springer-latex-formatting/" rel="noopener noreferrer"&gt;Springer LaTeX formatting service&lt;/a&gt; that handles svjour3, sn-jnl, and LNCS , including verifying the correct .bst for your specific journal. Fixed price, 72 hours standard.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>springer</category>
      <category>academicwriting</category>
      <category>research</category>
    </item>
    <item>
      <title>German dissertation formatting: KOMA-Script, Promotionsordnung, and the Eidesstattliche Erklärung</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Wed, 15 Apr 2026 11:46:54 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/german-dissertation-formatting-koma-script-promotionsordnung-and-the-eidesstattliche-erklarung-pe7</link>
      <guid>https://forem.com/saurabh_shah/german-dissertation-formatting-koma-script-promotionsordnung-and-the-eidesstattliche-erklarung-pe7</guid>
      <description>&lt;p&gt;German dissertation formatting is governed by the Promotionsordnung, the doctoral regulations set at the faculty level, not the university level. The Promotionsordnung at TU Munich's Mechanical Engineering faculty has different requirements than TU Munich's Computer Science faculty. Generic LaTeX templates don't account for this.&lt;/p&gt;

&lt;p&gt;German academic LaTeX also uses KOMA-Script (scrreprt, scrbook) rather than the standard LaTeX classes. Most international templates are built on the standard classes and need significant reworking to be Promotionsordnung-compliant.&lt;/p&gt;

&lt;p&gt;The Eidesstattliche Erklärung (the statutory declaration of independent authorship) is the thing that trips people up most. The exact wording is legally prescribed by your faculty. Using wording from another faculty, or from a template that has not been updated recently, can get your submission sent back. Many universities have also added AI usage declarations in the last year or two.&lt;/p&gt;

&lt;p&gt;Kumulative Dissertationen (publication-based) add complexity: each included paper was formatted for a different journal template and needs to be unified into a single KOMA-Script document with Eigenanteilserklärungen and either a consolidated bibliography or per-chapter references.&lt;/p&gt;

&lt;p&gt;If you're navigating this, there's a &lt;a href="https://thelatexlab.com/dissertation-formatting-germany/" rel="noopener noreferrer"&gt;LaTeX dissertation formatting service for German universities&lt;/a&gt; that reads your faculty's actual Promotionsordnung, uses KOMA-Script natively, and generates PDF/A output where required for electronic submission and DNB archiving.&lt;/p&gt;

</description>
      <category>dissertation</category>
      <category>germany</category>
      <category>latex</category>
      <category>thesis</category>
    </item>
    <item>
      <title>Researchers lose 15 to 30 hours per paper on LaTeX formatting. It does not have to be that way.</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Wed, 15 Apr 2026 11:35:40 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/researchers-lose-15-to-30-hours-per-paper-on-latex-formatting-it-does-not-have-to-be-that-way-4mb0</link>
      <guid>https://forem.com/saurabh_shah/researchers-lose-15-to-30-hours-per-paper-on-latex-formatting-it-does-not-have-to-be-that-way-4mb0</guid>
      <description>&lt;p&gt;LaTeX formatting steals weeks from researchers. Learn how professional typesetting services get your paper submission-ready in 72 hours.&lt;br&gt;
You finish writing the paper. The research is solid. Then you spend two weeks fighting a .cls file you have never seen before, chasing a bibliography that will not compile, and getting a desk rejection because the margins were 2mm off from the journal spec.&lt;/p&gt;

&lt;p&gt;This is where most researchers lose their time. Not on the science, on the formatting.&lt;/p&gt;

&lt;p&gt;At The LaTeX Lab, we see this constantly. Researchers send us their Word drafts or rough .tex files, tell us the target journal, and get back a compiled, tested PDF in 48 to 72 hours with the source files included. We handle the template, the bibliography style, the figures, all of it.&lt;/p&gt;

&lt;p&gt;If you have a submission deadline and LaTeX is not your thing, &lt;a href="https://thelatexlab.com/latex-typesetting-services/" rel="noopener noreferrer"&gt;professional LaTeX typesetting&lt;/a&gt; is worth knowing about.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>research</category>
      <category>academia</category>
      <category>writing</category>
    </item>
    <item>
      <title>LaTeX for Academic Publishing: What Journals Actually Require (And What's Optional)</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Tue, 24 Mar 2026 02:37:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/latex-for-academic-publishing-what-journals-actually-require-and-whats-optional-4fhm</link>
      <guid>https://forem.com/saurabh_shah/latex-for-academic-publishing-what-journals-actually-require-and-whats-optional-4fhm</guid>
      <description>&lt;p&gt;A practical guide based on real journal submission experience - not the textbook version.&lt;/p&gt;

&lt;p&gt;"Submit in LaTeX" covers a lot of ground. Some journals require it strictly. Others accept Word but strongly prefer LaTeX. A few say "LaTeX preferred" and mean "we'll accept either but we'll reformat your Word document and it will look different from what you submitted."&lt;/p&gt;

&lt;p&gt;After handling LaTeX formatting for academic papers across IEEE, ACM, Springer, Elsevier, MDPI, and arXiv at &lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt;, here's what we actually know about what different publishers require, where submissions break, and what matters most.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Publishers Actually Require LaTeX
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Effectively mandatory:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IEEE&lt;/strong&gt; - all Transactions, Letters, and conference proceedings. IEEEtran is the required class. Submitting Word gets your paper reformatted by the editorial office, often with formatting that doesn't match what you intended.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ACM&lt;/strong&gt; - all venues using the acmart class (SIGCHI, SIGCOMM, PLDI, etc.). Their submission system accepts PDFs but the camera-ready requires the LaTeX source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;arXiv&lt;/strong&gt; - requires LaTeX source for most submissions. PDFs without source are accepted but flagged as lower confidence for reproduction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most mathematics journals&lt;/strong&gt; (AMS, SIAM) - LaTeX is the de facto standard; Word submission is unusual enough that editorial staff often struggle with it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Strong preference, not technically required:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Springer&lt;/strong&gt; - LNCS conference proceedings require LaTeX. Journal articles accept Word but the typesetting quality is noticeably different.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elsevier&lt;/strong&gt; - accepts Word for most journals but the &lt;code&gt;elsarticle&lt;/code&gt; LaTeX class is the production format. Authors who submit LaTeX go through less reformatting in production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Genuinely either/or:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MDPI&lt;/strong&gt; - accepts both. Their &lt;code&gt;mdpi.cls&lt;/code&gt; template is well-maintained and produces clean output, but Word submissions are handled with similar quality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PLOS ONE&lt;/strong&gt; - accepts Word or LaTeX. No strong preference either way.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Three Most Common Journal Template Mistakes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Loading packages the class file already loads
&lt;/h3&gt;

&lt;p&gt;Every journal class file loads a set of packages internally. When you add them again in your preamble, you get option clashes or redefinition warnings.&lt;/p&gt;

&lt;p&gt;The common offenders with &lt;code&gt;IEEEtran&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Don't load these separately with IEEEtran - it handles them:&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;cite&lt;span class="p"&gt;}&lt;/span&gt;        &lt;span class="c"&gt;% IEEEtran has its own citation handling&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;graphicx&lt;span class="p"&gt;}&lt;/span&gt;    &lt;span class="c"&gt;% already loaded&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;amsmath&lt;span class="p"&gt;}&lt;/span&gt;     &lt;span class="c"&gt;% load this one is fine, but check first&lt;/span&gt;

&lt;span class="c"&gt;% Same issue with elsarticle:&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;natbib&lt;span class="p"&gt;}&lt;/span&gt;      &lt;span class="c"&gt;% elsarticle loads natbib internally&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read your class file's documentation before adding packages.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Wrong citation style for the journal
&lt;/h3&gt;

&lt;p&gt;Every publisher has a required citation style. Getting it wrong is a desk rejection risk at some venues, and always requires a revision round.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% IEEE: numeric citations, sorted by appearance&lt;/span&gt;
&lt;span class="k"&gt;\bibliographystyle&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;IEEEtran&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% ACM (acmart class): handles citation style internally via class options&lt;/span&gt;
&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="na"&gt;[format=acmsmall, review=false, screen=true]&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;acmart&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% Springer LNCS: numeric, sorted by appearance&lt;/span&gt;
&lt;span class="k"&gt;\bibliographystyle&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;splncs04&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% Elsevier (author-year for most journals):&lt;/span&gt;
&lt;span class="k"&gt;\bibliographystyle&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;elsarticle-harv&lt;span class="p"&gt;}&lt;/span&gt;  &lt;span class="c"&gt;% Harvard author-year&lt;/span&gt;
&lt;span class="c"&gt;% or&lt;/span&gt;
&lt;span class="k"&gt;\bibliographystyle&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;elsarticle-num&lt;span class="p"&gt;}&lt;/span&gt;   &lt;span class="c"&gt;% numeric&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the journal's author guidelines - not the template README, the actual guidelines page. They often contradict each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Two-column float handling
&lt;/h3&gt;

&lt;p&gt;IEEE and ACM use two-column layouts. Figures and tables that span both columns need &lt;code&gt;figure*&lt;/code&gt; and &lt;code&gt;table*&lt;/code&gt; environments. Using &lt;code&gt;figure&lt;/code&gt; for a wide figure produces output that overflows into the second column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Single-column figure (fits in one column):&lt;/span&gt;
&lt;span class="nt"&gt;\begin{figure}&lt;/span&gt;[t]
  &lt;span class="k"&gt;\includegraphics&lt;/span&gt;&lt;span class="na"&gt;[width=\columnwidth]&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;fig1&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;\caption&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;Single-column figure.&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;\end{figure}&lt;/span&gt;

&lt;span class="c"&gt;% Full-width figure spanning both columns:&lt;/span&gt;
&lt;span class="nt"&gt;\begin{figure*}&lt;/span&gt;[t]
  &lt;span class="k"&gt;\includegraphics&lt;/span&gt;&lt;span class="na"&gt;[width=\textwidth]&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;fig2&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;\caption&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;Full-width figure spanning both columns.&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;\end{figure*}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;*&lt;/code&gt; variants can only be placed at the top or bottom of a page (&lt;code&gt;[t]&lt;/code&gt; or &lt;code&gt;[b]&lt;/code&gt;), not inline. This causes figures to float further than expected - usually fixed by adjusting the figure's position in the source relative to where you want it to appear.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Template Compliance" Actually Means in Practice
&lt;/h2&gt;

&lt;p&gt;Journal editorial offices run their own checks on submitted LaTeX. What they're looking for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Margins.&lt;/strong&gt; The class file handles this - don't override &lt;code&gt;\geometry&lt;/code&gt; settings unless the template documentation says to. Any margin change that makes the paper shorter (easier to read for reviewers) will be caught.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Font size.&lt;/strong&gt; Some conferences enforce 10pt strictly. &lt;code&gt;\small&lt;/code&gt; or &lt;code&gt;\footnotesize&lt;/code&gt; in the main body text is a flag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference format.&lt;/strong&gt; This is the most common reason for revision requests. A missing DOI field, an inconsistent journal name abbreviation, or conference papers formatted as journal articles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Figure resolution.&lt;/strong&gt; PDFs submitted to most venues should have figures at 300dpi minimum for raster images. Vector figures (PDF, EPS, SVG) don't have this issue - use them wherever possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  arXiv-Specific Notes
&lt;/h2&gt;

&lt;p&gt;arXiv has a few requirements that trip up first-time submitters:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All files in one directory.&lt;/strong&gt; arXiv's compiler expects your &lt;code&gt;.tex&lt;/code&gt;, &lt;code&gt;.bib&lt;/code&gt;, all figure files, and your &lt;code&gt;.cls&lt;/code&gt;/&lt;code&gt;.sty&lt;/code&gt; files in a flat directory or a simple zip. Nested subdirectories for figures sometimes cause compilation failures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No &lt;code&gt;\pdfoutput=1&lt;/code&gt;.&lt;/strong&gt; arXiv sets this itself. Including it in your preamble can cause conflicts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BibTeX, not BibLaTeX.&lt;/strong&gt; arXiv's compilation environment supports BibTeX with &lt;code&gt;bibtex&lt;/code&gt;. BibLaTeX with &lt;code&gt;biber&lt;/code&gt; is supported but less reliable. If you're targeting arXiv, test with the BibTeX backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;.bbl&lt;/code&gt; file.&lt;/strong&gt; If arXiv can't run BibTeX on your submission, it won't compile the bibliography. Submit the pre-compiled &lt;code&gt;.bbl&lt;/code&gt; file alongside your &lt;code&gt;.tex&lt;/code&gt; to guarantee bibliography output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/latex-for-professional-publications/" rel="noopener noreferrer"&gt;LaTeX for Professional Publications: Why It's the Standard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/ieee-latex-template-formatting/" rel="noopener noreferrer"&gt;How to Format a Paper for IEEE Using LaTeX (Step-by-Step)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/common-latex-compilation-errors/" rel="noopener noreferrer"&gt;10 Most Common LaTeX Compilation Errors and How to Fix Them&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt; handles LaTeX formatting for journal and conference submissions - IEEE, ACM, Springer, Elsevier, MDPI, arXiv, and 100+ other templates. If you need a submission-ready &lt;code&gt;.tex&lt;/code&gt; file formatted to your exact journal's spec, &lt;a href="https://thelatexlab.com/latex-typesetting-services/" rel="noopener noreferrer"&gt;get a quote here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>latex</category>
      <category>devjournal</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The LaTeX Compilation Errors That Waste the Most Time (And How to Fix Them Fast)</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Mon, 23 Mar 2026 01:10:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/the-latex-compilation-errors-that-waste-the-most-time-and-how-to-fix-them-fast-1mpp</link>
      <guid>https://forem.com/saurabh_shah/the-latex-compilation-errors-that-waste-the-most-time-and-how-to-fix-them-fast-1mpp</guid>
      <description>&lt;p&gt;The errors we see most often after fixing hundreds of broken LaTeX projects - with exact fixes.&lt;/p&gt;

&lt;p&gt;LaTeX error messages are famously unhelpful. The line number is wrong, the message describes a symptom not a cause, and the actual problem is three packages up in the preamble.&lt;/p&gt;

&lt;p&gt;After fixing compilation errors across hundreds of academic papers and journal submissions at &lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt;, we've mapped which errors waste the most time and what actually fixes them. Here's the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;code&gt;! Undefined control sequence&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The most common error in LaTeX. It means you've used a command that LaTeX doesn't recognise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The three actual causes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing package.&lt;/strong&gt; You used &lt;code&gt;\textcolor{red}{text}&lt;/code&gt; but forgot &lt;code&gt;\usepackage{xcolor}&lt;/code&gt;. The fix is always in the preamble - find the package that defines the command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Fix: add the right package&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;xcolor&lt;span class="p"&gt;}&lt;/span&gt;     &lt;span class="c"&gt;% for \textcolor&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;amsmath&lt;span class="p"&gt;}&lt;/span&gt;    &lt;span class="c"&gt;% for \text, \align, \DeclareMathOperator&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;booktabs&lt;span class="p"&gt;}&lt;/span&gt;   &lt;span class="c"&gt;% for \toprule, \midrule, \bottomrule&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Typo in command name.&lt;/strong&gt; &lt;code&gt;\beginn{itemize}&lt;/code&gt; instead of &lt;code&gt;\begin{itemize}&lt;/code&gt;. Check the exact spelling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command defined in a class file you're not loading.&lt;/strong&gt; Common with journal templates - you copied a snippet from a paper that uses &lt;code&gt;\IEEEauthorblockN{}&lt;/code&gt; but you're not using &lt;code&gt;IEEEtran&lt;/code&gt;. Either load the right class or find the equivalent command in your class.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;code&gt;! Missing $ inserted&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;LaTeX encountered a math symbol outside of math mode. Usually happens in one of three situations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Problem 1: Underscore in text&lt;/span&gt;
The variable x&lt;span class="p"&gt;_&lt;/span&gt;1 is defined as...   &lt;span class="c"&gt;% ← _ triggers math mode error&lt;/span&gt;

&lt;span class="c"&gt;% Fix:&lt;/span&gt;
The variable &lt;span class="p"&gt;$&lt;/span&gt;&lt;span class="nb"&gt;x&lt;/span&gt;&lt;span class="p"&gt;_&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;$&lt;/span&gt; is defined as...

&lt;span class="c"&gt;% Problem 2: Math command in text&lt;/span&gt;
The value is &lt;span class="k"&gt;\alpha&lt;/span&gt; degrees.         &lt;span class="c"&gt;% ← \alpha only works in math mode&lt;/span&gt;

&lt;span class="c"&gt;% Fix:&lt;/span&gt;
The value is &lt;span class="p"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;\alpha&lt;/span&gt;&lt;span class="p"&gt;$&lt;/span&gt; degrees.

&lt;span class="c"&gt;% Problem 3: Underscore in a label or filename&lt;/span&gt;
&lt;span class="k"&gt;\label&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;eq:result&lt;span class="p"&gt;_&lt;/span&gt;final&lt;span class="p"&gt;}&lt;/span&gt;              &lt;span class="c"&gt;% ← fine in labels, but check captions&lt;/span&gt;
&lt;span class="k"&gt;\caption&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;Result&lt;span class="k"&gt;\_&lt;/span&gt;comparison&lt;span class="p"&gt;}&lt;/span&gt;         &lt;span class="c"&gt;% ← escape underscores in text contexts&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The line number reported in this error is almost always wrong - LaTeX reports where it gave up, not where you made the mistake. Search backward from the reported line.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Package Conflicts (&lt;code&gt;Option clash for package X&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;This one is almost always caused by the same package being loaded twice with different options, either by you or by the class file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;! LaTeX Error: Option clash for package xcolor.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% The problem - you load it one way:&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="na"&gt;[dvipsnames]&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;xcolor&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% The class file loads it another way internally:&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;xcolor&lt;span class="p"&gt;}&lt;/span&gt;  &lt;span class="c"&gt;% no options&lt;/span&gt;

&lt;span class="c"&gt;% Fix - load the package BEFORE the class, or use:&lt;/span&gt;
&lt;span class="k"&gt;\PassOptionsToPackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;dvipsnames&lt;span class="p"&gt;}{&lt;/span&gt;xcolor&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;IEEEtran&lt;span class="p"&gt;}&lt;/span&gt;  &lt;span class="c"&gt;% now the class inherits your options&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;\PassOptionsToPackage&lt;/code&gt; command is the correct tool for resolving option clashes when you can't modify the class file.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;code&gt;! File 'X.sty' not found&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;A package isn't installed in your TeX distribution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On Overleaf:&lt;/strong&gt; this almost never happens - Overleaf has a near-complete TeX Live installation. If you see it on Overleaf, the package name is probably misspelled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On a local install:&lt;/strong&gt; the package needs to be installed via your TeX package manager.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# TeX Live (Linux/Mac):&lt;/span&gt;
tlmgr &lt;span class="nb"&gt;install &lt;/span&gt;packagename

&lt;span class="c"&gt;# MiKTeX (Windows):&lt;/span&gt;
&lt;span class="c"&gt;# Use the MiKTeX Package Manager GUI, or:&lt;/span&gt;
mpm &lt;span class="nt"&gt;--install&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;packagename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;tlmgr&lt;/code&gt; says the package doesn't exist, check CTAN - the package may have been renamed or merged into another package.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;code&gt;Runaway argument&lt;/code&gt; / &lt;code&gt;Paragraph ended before \X was complete&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This usually means an unmatched brace or a blank line inside a command that doesn't allow it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Common cause 1: Missing closing brace&lt;/span&gt;
&lt;span class="k"&gt;\textbf&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;Some important text   &lt;span class="c"&gt;% ← no closing }&lt;/span&gt;

&lt;span class="c"&gt;% Common cause 2: Blank line inside \footnote or \caption&lt;/span&gt;
&lt;span class="k"&gt;\caption&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;This is a table showing
         the results.           &lt;span class="c"&gt;% ← blank line here breaks the argument&lt;/span&gt;

&lt;span class="c"&gt;% Fix:&lt;/span&gt;
&lt;span class="k"&gt;\caption&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;This is a table showing the results.&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use your editor's brace-matching feature to find the unmatched brace. In Overleaf, the bracket highlighting will show you where the match is missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. BibTeX Errors That Don't Show Up Until You've Fixed Everything Else
&lt;/h2&gt;

&lt;p&gt;BibTeX errors are separate from LaTeX compilation errors and show up in the &lt;code&gt;.blg&lt;/code&gt; log file, not the main log. Common ones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight bibtex"&gt;&lt;code&gt;&lt;span class="c"&gt;Warning--missing journal in Jones2021&lt;/span&gt;
&lt;span class="c"&gt;Warning--empty author in Smith2022&lt;/span&gt;
&lt;span class="c"&gt;I was expecting a `,' or a `}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first two are missing required fields - BibTeX will still compile but the bibliography entry will be malformed. Fix them in your &lt;code&gt;.bib&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;The third means a syntax error in your &lt;code&gt;.bib&lt;/code&gt; file - usually a missing comma between fields or an unescaped special character:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight bibtex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Problem: unescaped &amp;amp; in journal name&lt;/span&gt;
&lt;span class="c"&gt;journal = {Transactions on Systems &amp;amp; Control}&lt;/span&gt;

&lt;span class="c"&gt;% Fix:&lt;/span&gt;
&lt;span class="c"&gt;journal = {Transactions on Systems \&amp;amp; Control}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Always check the &lt;code&gt;.blg&lt;/code&gt; file after a full compile. LaTeX can report zero errors while your bibliography is silently malformed.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. &lt;code&gt;Overfull \hbox&lt;/code&gt; Warnings (The One You Should Actually Fix)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Overfull \hbox&lt;/code&gt; is a warning, not an error - LaTeX tells you text is sticking out into the margin. Most people ignore these. You shouldn't, because journals check for them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Common cause: a URL or long word that can't break&lt;/span&gt;
&lt;span class="k"&gt;\url&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;https://verylongdomainname.com/with/a/very/long/path/to/something&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% Fix 1: allow URL line breaks&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;url&lt;span class="p"&gt;}&lt;/span&gt;   &lt;span class="c"&gt;% or hyperref, which includes url&lt;/span&gt;

&lt;span class="c"&gt;% Fix 2: for a long word, add a discretionary hyphen:&lt;/span&gt;
super&lt;span class="k"&gt;\-&lt;/span&gt;cali&lt;span class="k"&gt;\-&lt;/span&gt;fragi&lt;span class="k"&gt;\-&lt;/span&gt;listic  &lt;span class="c"&gt;% LaTeX can break at these points&lt;/span&gt;

&lt;span class="c"&gt;% Fix 3: use \sloppy locally for a paragraph that won't cooperate:&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\sloppy&lt;/span&gt; This paragraph has a very long URL that LaTeX can't break nicely. &lt;span class="k"&gt;\par&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Fastest Debug Workflow
&lt;/h2&gt;

&lt;p&gt;When you have multiple errors, don't try to fix them all at once. LaTeX errors cascade - one missing brace causes 40 downstream errors. The workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fix only the &lt;strong&gt;first&lt;/strong&gt; error in the log&lt;/li&gt;
&lt;li&gt;Recompile&lt;/li&gt;
&lt;li&gt;Repeat&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Also: comment out everything except the preamble and one paragraph, confirm it compiles, then add content back in sections. Binary search is faster than reading 200 error lines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/common-latex-compilation-errors/" rel="noopener noreferrer"&gt;Full guide to LaTeX compilation errors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/how-to-convert-word-to-latex/" rel="noopener noreferrer"&gt;Word to LaTeX conversion - why automated tools fail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/ieee-latex-template-formatting/" rel="noopener noreferrer"&gt;How to format a paper for IEEE in LaTeX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;If you're past the point of debugging and have a deadline tomorrow, &lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt; offers emergency LaTeX error fixing - 24–48 hour turnaround, with a plain-English explanation of what went wrong. &lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;Get a quote here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>latex</category>
      <category>debugging</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>PDF to LaTeX Conversion: Why It's Hard and What Actually Works</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Sun, 22 Mar 2026 09:30:00 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/pdf-to-latex-conversion-why-its-hard-and-what-actually-works-3ba2</link>
      <guid>https://forem.com/saurabh_shah/pdf-to-latex-conversion-why-its-hard-and-what-actually-works-3ba2</guid>
      <description>&lt;p&gt;&lt;em&gt;Why automated PDF to LaTeX tools produce unusable output - and the right approach for academic documents.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;PDF to LaTeX is a harder problem than Word to LaTeX, and it's worth understanding why before you spend time trying to automate it.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://thelatexlab.com/pdf-to-latex/" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt;, PDF conversions make up a significant portion of the projects we handle - researchers who only have a final PDF of their paper, no original source file. Here's what we've learned about where the process breaks and what to do about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why PDFs Are a Poor Source for LaTeX Reconstruction
&lt;/h2&gt;

&lt;p&gt;A PDF is a rendering format. It stores instructions for placing glyphs on a page at precise coordinates. It does not store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Semantic structure (what is a heading vs. body text)&lt;/li&gt;
&lt;li&gt;Mathematical relationships (what is a fraction, what is a subscript, what is an operator)&lt;/li&gt;
&lt;li&gt;Table structure (where rows and columns begin and end)&lt;/li&gt;
&lt;li&gt;Bibliography metadata (author, journal, DOI - just the rendered string)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a PDF to LaTeX converter processes a document, it's reverse-engineering rendered output back into structural markup. For plain body text, this works tolerably. For everything else, it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Automated PDF to LaTeX Tools Actually Produce
&lt;/h2&gt;

&lt;p&gt;Take a simple display equation rendered in a PDF - say, a fraction inside a summation. In the PDF, this is a set of glyph positions: a sigma character at coordinate (x1, y1), a fraction bar at (x2, y2), numerator glyphs above it, denominator below. There's no metadata saying "this is a summation with lower limit n=0 and upper limit N."&lt;/p&gt;

&lt;p&gt;An automated converter has to guess the mathematical structure from the spatial arrangement of glyphs. For simple equations it sometimes guesses correctly. For anything involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nested fractions&lt;/li&gt;
&lt;li&gt;Matrix environments&lt;/li&gt;
&lt;li&gt;Aligned multi-line derivations&lt;/li&gt;
&lt;li&gt;Custom operators or symbols&lt;/li&gt;
&lt;li&gt;Subscripts and superscripts on top of each other&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...the output ranges from wrong to completely absent. The equation either gets skipped, rendered as an image extracted from the PDF, or reconstructed incorrectly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% What pdf2latex-style tools give you for a complex equation:&lt;/span&gt;
&lt;span class="k"&gt;\includegraphics&lt;/span&gt;&lt;span class="na"&gt;[width=0.8\textwidth]&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;eq&lt;span class="p"&gt;_&lt;/span&gt;extracted&lt;span class="p"&gt;_&lt;/span&gt;01.png&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c"&gt;% Or worse, nothing at all.&lt;/span&gt;

&lt;span class="c"&gt;% What the equation actually needs to be:&lt;/span&gt;
&lt;span class="nt"&gt;\begin{equation}&lt;/span&gt;
  &lt;span class="k"&gt;\hat&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;y&lt;span class="p"&gt;}&lt;/span&gt; = &lt;span class="k"&gt;\sum&lt;/span&gt;&lt;span class="p"&gt;_{&lt;/span&gt;n=0&lt;span class="p"&gt;}^{&lt;/span&gt;N&lt;span class="p"&gt;}&lt;/span&gt; w&lt;span class="p"&gt;_&lt;/span&gt;n &lt;span class="k"&gt;\cdot&lt;/span&gt; &lt;span class="k"&gt;\phi\!\left&lt;/span&gt;(&lt;span class="k"&gt;\frac&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;x - &lt;span class="k"&gt;\mu&lt;/span&gt;&lt;span class="p"&gt;_&lt;/span&gt;n&lt;span class="p"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\sigma&lt;/span&gt;&lt;span class="p"&gt;_&lt;/span&gt;n&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\right&lt;/span&gt;)
&lt;span class="nt"&gt;\end{equation}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Tables: Even Harder Than Equations
&lt;/h2&gt;

&lt;p&gt;Table reconstruction from PDF is genuinely unsolved as an automated problem. The PDF stores each cell's text as positioned glyphs - it has no concept of rows, columns, or cell boundaries except as inferred from whitespace.&lt;/p&gt;

&lt;p&gt;For simple two-column tables with clear spacing, automated tools produce something usable. For tables with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Merged cells (colspan/rowspan)&lt;/li&gt;
&lt;li&gt;Ruled lines between specific rows&lt;/li&gt;
&lt;li&gt;Multi-line cell content&lt;/li&gt;
&lt;li&gt;Rotated headers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...the output is a jumbled list of strings, not a table. We've never seen an automated tool handle a &lt;code&gt;longtable&lt;/code&gt; or a &lt;code&gt;tabularx&lt;/code&gt; with multi-line cells correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Text Layer Problem on Scanned PDFs
&lt;/h2&gt;

&lt;p&gt;If the PDF was produced by scanning a physical document, there's an additional layer: OCR. Scanned PDFs don't have a text layer at all - they're images. Any text extraction first requires OCR, which introduces its own error rate.&lt;/p&gt;

&lt;p&gt;For academic documents with domain-specific notation, OCR error rates on equations are high. A scanned fraction is frequently OCR'd as something like &lt;code&gt;H/2&lt;/code&gt; when it should be &lt;code&gt;\hbar / 2&lt;/code&gt; - visually similar characters, semantically different.&lt;/p&gt;

&lt;p&gt;If you're working from a scanned PDF, the realistic path is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OCR the document with a high-accuracy engine (ABBYY FineReader or similar)&lt;/li&gt;
&lt;li&gt;Manually verify all equations and symbols against the original&lt;/li&gt;
&lt;li&gt;Reconstruct the LaTeX from scratch using the OCR output as a reference&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's no shortcut here that produces submission-ready output.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Right Approach Looks Like
&lt;/h2&gt;

&lt;p&gt;For academic documents, the only reliable approach to PDF to LaTeX is semi-manual reconstruction:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extract clean body text from the PDF (where the text layer exists)&lt;/li&gt;
&lt;li&gt;Read every equation directly from the PDF and typeset it in LaTeX math mode from scratch&lt;/li&gt;
&lt;li&gt;Reconstruct every table in &lt;code&gt;booktabs&lt;/code&gt; format from scratch&lt;/li&gt;
&lt;li&gt;Extract and rebuild the bibliography as a &lt;code&gt;.bib&lt;/code&gt; file - either from the PDF's reference list or by looking up each reference in CrossRef/Google Scholar to get clean metadata&lt;/li&gt;
&lt;li&gt;Apply the journal or university template and compile&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's time-intensive precisely because the hard parts can't be automated. But the output is a properly structured &lt;code&gt;.tex&lt;/code&gt; file that compiles cleanly - not a pile of image fallbacks with broken formatting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/word-to-latex/" rel="noopener noreferrer"&gt;Word to LaTeX Conversion: Why Automated Tools Fail on Academic Papers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/common-latex-compilation-errors/" rel="noopener noreferrer"&gt;10 Most Common LaTeX Compilation Errors and How to Fix Them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/latex-for-professional-publications/" rel="noopener noreferrer"&gt;LaTeX for Professional Publications: Why It's the Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://thelatexlab.com" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt; handles PDF to LaTeX conversion for academic papers - every equation typeset in math mode from scratch, tables rebuilt, bibliography reconstructed as clean BibTeX. &lt;a href="https://thelatexlab.com/pdf-to-latex/" rel="noopener noreferrer"&gt;Get a quote here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>latex</category>
      <category>pdf</category>
      <category>academic</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why Word to LaTeX Conversion Breaks (And What to Do About It)</title>
      <dc:creator>Saurabh Shah</dc:creator>
      <pubDate>Sat, 21 Mar 2026 10:21:29 +0000</pubDate>
      <link>https://forem.com/saurabh_shah/why-word-to-latex-conversion-breaks-and-what-to-do-about-it-5aip</link>
      <guid>https://forem.com/saurabh_shah/why-word-to-latex-conversion-breaks-and-what-to-do-about-it-5aip</guid>
      <description>&lt;p&gt;A technical look at why automated tools fail on academic papers — and what actually works.&lt;/p&gt;

&lt;p&gt;If you've ever tried to convert a Word document to LaTeX using Pandoc or an online converter, you already know how this ends. The text comes through fine. Everything else doesn't.&lt;/p&gt;

&lt;p&gt;We've handled hundreds of Word to LaTeX conversion projects at &lt;a href="https://thelatexlab.com/word-to-latex/" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt; — IEEE papers, Springer submissions, Elsevier articles, conference proceedings. The same failure modes show up every time. Here's what's actually going wrong under the hood.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Pandoc Fails on Academic Papers
&lt;/h2&gt;

&lt;p&gt;Pandoc is genuinely impressive for what it does. But the way it handles equations reveals a core limitation: it converts Word's OOXML math format to LaTeX by pattern-matching, not by understanding mathematical structure.&lt;/p&gt;

&lt;p&gt;The result is that simple inline equations often convert correctly. Anything structurally complex — nested fractions, matrix environments, multi-line align blocks, custom operators — gets either mangled or exported as an image fallback. You end up with this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% What Pandoc gives you for a matrix equation:&lt;/span&gt;
&lt;span class="k"&gt;\includegraphics&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;eq&lt;span class="p"&gt;_&lt;/span&gt;img&lt;span class="p"&gt;_&lt;/span&gt;01.png&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% What it should be:&lt;/span&gt;
&lt;span class="nt"&gt;\begin{equation}&lt;/span&gt;
&lt;span class="k"&gt;\mathbf&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;A&lt;span class="p"&gt;}&lt;/span&gt; = &lt;span class="nt"&gt;\begin{bmatrix}&lt;/span&gt; a&lt;span class="p"&gt;_{&lt;/span&gt;11&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; a&lt;span class="p"&gt;_{&lt;/span&gt;12&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;\\&lt;/span&gt; a&lt;span class="p"&gt;_{&lt;/span&gt;21&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; a&lt;span class="p"&gt;_{&lt;/span&gt;22&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;\end{bmatrix}&lt;/span&gt;
&lt;span class="nt"&gt;\end{equation}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Image fallbacks technically compile, but they fail journal submission checks — most publishers require equations in proper math mode, not embedded images.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Table Problem Is Worse
&lt;/h2&gt;

&lt;p&gt;Word tables store alignment, merging, and cell padding in a proprietary format that has no clean LaTeX equivalent. Pandoc's output for a moderately complex table typically looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="c"&gt;% Pandoc table output — broken alignment:&lt;/span&gt;
&lt;span class="nt"&gt;\begin{longtable}&lt;/span&gt;[]&lt;span class="p"&gt;{&lt;/span&gt;@&lt;span class="p"&gt;{}&lt;/span&gt;lll@&lt;span class="p"&gt;{}}&lt;/span&gt;
Name &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; Value &lt;span class="k"&gt;\\&lt;/span&gt; &lt;span class="c"&gt;% ← empty cell where merged cell was&lt;/span&gt;
&lt;span class="nt"&gt;\end{longtable}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A properly formatted academic table should use booktabs with \toprule, \midrule, and \bottomrule. Pandoc doesn't output booktabs by default, and even with the --no-highlight flag it doesn't reconstruct merged cells correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bibliography: The Silent Failure
&lt;/h2&gt;

&lt;p&gt;This is the one that costs the most time. Pandoc exports citations as plain text — it doesn't produce a .bib file. If your Word document uses Zotero or Mendeley for citations, those come through as formatted strings, not structured BibTeX entries.&lt;/p&gt;

&lt;p&gt;Which means you're left manually recreating every entry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight bibtex"&gt;&lt;code&gt;&lt;span class="c"&gt;% What you need:&lt;/span&gt;
&lt;span class="nc"&gt;@article&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;Smith2023&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Smith, John and Doe, Jane}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{A Study of X}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;journal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Nature}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2023}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;volume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{12}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;pages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{45--67}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;doi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{10.1038/s41586-023-00001-x}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;% What Pandoc gives you in the .tex file:&lt;/span&gt;
&lt;span class="c"&gt;Smith, J., &amp;amp; Doe, J. (2023). A Study of X. \textit{Nature}, 12, 45–67.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a paper with 30–50 references, rebuilding the bibliography from scratch is a 2–3 hour job on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Clean Word to LaTeX Conversion Actually Looks Like
&lt;/h2&gt;

&lt;p&gt;For a properly converted academic paper, you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every equation typeset in LaTeX math mode — $...$ for inline, \begin{equation} or align for display&lt;/li&gt;
&lt;li&gt;Tables rebuilt in booktabs format with correct column alignment&lt;/li&gt;
&lt;li&gt;Bibliography as a complete .bib file with proper entry types (@article, @inproceedings, &lt;a class="mentioned-user" href="https://dev.to/book"&gt;@book&lt;/a&gt;) and all required fields&lt;/li&gt;
&lt;li&gt;Journal template applied and verified — IEEEtran, acmart, elsarticle, llncs, etc.&lt;/li&gt;
&lt;li&gt;The whole thing compiled and tested before you touch it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automated tools handle the first bullet partially on a good day. They don't touch the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Actual Time Cost of DIY Conversion
&lt;/h2&gt;

&lt;p&gt;Here's what a realistic Word to LaTeX conversion looks like if you do it yourself on a 15-page IEEE paper with 25 equations, 4 tables, and 30 citations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run Pandoc, fix encoding issues - 30 min&lt;/li&gt;
&lt;li&gt;Re-typeset broken equations by hand - 3–4 hrs&lt;/li&gt;
&lt;li&gt;Rebuild tables in booktabs - 1–2 hrs&lt;/li&gt;
&lt;li&gt;Rebuild bibliography as BibTeX - 2–3 hrs&lt;/li&gt;
&lt;li&gt;Apply IEEEtran template, fix conflicts - 1–2 hrs&lt;/li&gt;
&lt;li&gt;Debug compilation errors - 1–2 hrs&lt;/li&gt;
&lt;li&gt;Total - 8–14 hrs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not an edge case — that's a typical paper. For researchers on submission deadlines, it's a significant hidden cost.&lt;/p&gt;

&lt;p&gt;Further Reading&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/how-to-convert-word-to-latex/" rel="noopener noreferrer"&gt;How to Convert Word to LaTeX: The Complete Guide (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/common-latex-compilation-errors/" rel="noopener noreferrer"&gt;10 Most Common LaTeX Compilation Errors and How to Fix Them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thelatexlab.com/blog/ieee-latex-template-formatting/" rel="noopener noreferrer"&gt;How to Format a Paper for IEEE Using LaTeX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://thelatexlab.com/" rel="noopener noreferrer"&gt;The LaTeX Lab&lt;/a&gt; offers professional Word to LaTeX conversion for academic papers — equations in proper math mode, tables rebuilt, bibliography in clean BibTeX, journal template applied and tested in Overleaf. Standard delivery in 72 hours. &lt;a href="https://thelatexlab.com/word-to-latex/" rel="noopener noreferrer"&gt;Get a quote here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>latex</category>
      <category>programming</category>
      <category>academic</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
