{"id":27215,"date":"2025-11-02T00:37:07","date_gmt":"2025-11-02T00:37:07","guid":{"rendered":"https:\/\/www.robertandrews.net\/songs\/?p=27215"},"modified":"2025-11-02T00:50:24","modified_gmt":"2025-11-02T00:50:24","slug":"formatting-tips","status":"publish","type":"post","link":"https:\/\/www.robertandrews.net\/songs\/formatting-tips\/","title":{"rendered":"Formatting Tips"},"content":{"rendered":"<style type=\"text\/css\">\n\t\t@page { size: 8.5in 11in; margin: 0.79in }<br \/>\t\tp { line-height: 115%; margin-bottom: 0.1in; background: transparent }<br \/>\t\th1 { margin-bottom: 0.08in; background: transparent; page-break-after: avoid }<br \/>\t\th1.western { font-family: \"Liberation Serif\", serif; font-size: 24pt; font-weight: bold }<br \/>\t\th1.cjk { font-family: \"Songti SC\"; font-size: 24pt; font-weight: bold }<br \/>\t\th1.ctl { font-family: \"Arial Unicode MS\"; font-size: 24pt; font-weight: bold }<br \/>\t\th2 { margin-top: 0.14in; margin-bottom: 0.08in; background: transparent; page-break-after: avoid }<br \/>\t\th2.western { font-family: \"Liberation Serif\", serif; font-size: 18pt; font-weight: bold }<br \/>\t\th2.cjk { font-family: \"Songti SC\"; font-size: 18pt; font-weight: bold }<br \/>\t\th2.ctl { font-family: \"Arial Unicode MS\"; font-size: 18pt; font-weight: bold }<br \/>\t\th3 { margin-top: 0.1in; margin-bottom: 0.08in; background: transparent; page-break-after: avoid }<br \/>\t\th3.western { font-family: \"Liberation Serif\", serif; font-size: 14pt; font-weight: bold }<br \/>\t\th3.cjk { font-family: \"Songti SC\"; font-size: 14pt; font-weight: bold }<br \/>\t\th3.ctl { font-family: \"Arial Unicode MS\"; font-size: 14pt; font-weight: bold }<br \/>\t\tpre { font-family: \"Liberation Mono\", monospace; font-size: 10pt; background: transparent }<br \/>\t\tstrong { font-weight: bold }<br \/>\t\tcode { font-family: \"Liberation Mono\", monospace }<br \/>\t<\/style>\n<h2 class=\"western\">Observed Formatting Problems<\/h2>\n<h3 class=\"western\">Problem Songs (Poor Formatting)<\/h3>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>&#8220;Beth I Hear you<\/strong><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>&#8220;Wonderful Lily&#8221;<\/strong><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>&#8220;Unicorn Song, The&#8221;<\/strong> &#8211; Multiple<\/p>\n<\/li>\n<\/ul>\n<h3 class=\"western\">Well-Formatted Songs<\/h3>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>&#8220;Lady&#8221;<\/strong><\/p>\n<\/li>\n<li><strong>&#8220;Achy Breaky Heart&#8221;<\/strong> &#8211; Excellent<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"western\">Root Causes of Formatting Anomalies<\/h2>\n<h3 class=\"western\">1. <strong>Missing <\/strong><strong><code>&lt;pre&gt;<\/code><\/strong><strong><br \/>\nTags<\/strong><\/h3>\n<p>Songs without proper preformatted text tags lose their spacing and<br \/>\nline structure during HTML-to-PDF conversion.<\/p>\n<h2>Use Tags<\/h2>\n<ul>\n<li><span style=\"white-space: pre-wrap; font-size: 14pt;\">&lt;pre&gt;&lt;span style=&#8221;font-family: trebuchet ms, geneva, sans-serif;&#8221;&gt;&lt;span style=&#8221;font-size: 14pt; font-weight: 900;&#8221;&gt;<\/span><\/li>\n<li><span style=\"font-size: 14pt;\">Close with\u00a0 &lt;\/span&gt;&lt;\/span&gt;&lt;\/pre&gt;<\/span><\/li>\n<li>&nbsp;<br \/>\n<h3 class=\"western\">2. <strong>Inconsistent Line Break Usage<\/strong><\/h3>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Single <code>&lt;br&gt;<\/code><br \/>\ntags vs. double <code>&lt;br&gt;&lt;\/br&gt;<\/code><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Mix of <code>&lt;br&gt;<\/code> and<br \/>\nparagraph breaks<\/p>\n<\/li>\n<li>Missing line breaks between sections<\/li>\n<\/ul>\n<h3 class=\"western\">3. <strong>Whitespace Not Preserved<\/strong><\/h3>\n<p>HTML collapses multiple spaces by default. Without proper<br \/>\npreservation, chord positioning above lyrics fails.<\/p>\n<h3 class=\"western\">4. <strong>Inconsistent Section Separators<\/strong><\/h3>\n<p>Some songs use dashes (<code>\u2013 \u2013 \u2013 \u2013<\/code>), others use<br \/>\nnothing, creating visual inconsistency.<\/p>\n<hr \/>\n<h2 class=\"western\">Critical Formatting Rules<\/h2>\n<h2 class=\"western\">The WordPress HTML Template (MANDATORY STRUCTURE)<\/h2>\n<p>Use this exact structure for <strong>every song post<\/strong>:<\/p>\n<pre><code>&lt;pre style=\"font-family: 'trebuchet ms, geneva, sans-serif; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-wrap: break-word;\"&gt;<\/code> <code>[SONG TITLE]<\/code> <code>Artist: [ARTIST NAME]<\/code> <code>Key: [KEY] | Capo: [POSITION] | Difficulty: [LEVEL]<\/code> <span style=\"font-size: 14pt;\">Have everything exactly as you want it to print inside the &lt;PRE&gt; tags.\r\n\r\n&lt;\/pre&gt;<\/span><\/pre>\n<hr \/>\n<p><strong style=\"white-space: normal;\">Why each attribute matters:<\/strong><\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>font-family: 'trebuchet ms, geneva, sans-serif;'<\/code><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>Consistent look and feel.<\/code><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>If monospace spacing is essential, use 'Courier New'<\/code><code><br \/>\nmonospace<\/code> &#8211; Ensures fixed-width characters for chord<br \/>\nalignment<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>font-size: 14px<\/code> &#8211;<br \/>\nReadable size that fits well on page<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>line-height: 1.6<\/code> &#8211;<br \/>\nProper spacing between lines<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>white-space: pre-wrap<\/code><br \/>\n&#8211; Preserves spaces while allowing text wrapping<\/p>\n<\/li>\n<li><code>word-wrap: break-word<\/code> &#8211; Prevents long words from<br \/>\nbreaking layout<\/li>\n<\/ul>\n<hr \/>\n<h3 class=\"western\">Rule 3: Section Separators<\/h3>\n<p>Use this exact separator between all sections:<\/p>\n<pre style=\"margin-bottom: 0.2in;\"><code>================================================================================<\/code><\/pre>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Exactly 80 equals signs<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">One blank line before<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">One blank line after<\/p>\n<\/li>\n<li>Creates clear visual separation<\/li>\n<\/ul>\n<hr \/>\n<h3 class=\"western\">Rule 4: Chord Positioning<\/h3>\n<p>Chords must be positioned using <strong>spaces only<\/strong> (not<br \/>\ntabs):<\/p>\n<p>\u2705 <strong>CORRECT:<\/strong><\/p>\n<pre><code>    C                 Dm<\/code> <code>Beth I hear you callin'<\/code> <code>       Em           Am    G<\/code> <code>But I can't come home right now<\/code><\/pre>\n<p>\u274c <strong>WRONG:<\/strong><\/p>\n<pre><code>C       Dm<\/code> <code>Beth I hear you callin'<\/code> <code>Em      Am      G<\/code> <code>But I can't come home right now<\/code><\/pre>\n<p><strong>Method:<\/strong> Count spaces to position chords directly<br \/>\nabove where they change in the lyric line.<\/p>\n<hr \/>\n<h3 class=\"western\">Rule 5: Blank Lines for Readability<\/h3>\n<p>Use blank lines strategically:<\/p>\n<pre><code>[VERSE 1]<\/code> <code>                    \u2190 1 blank line after section header<\/code> <code>    C                 Dm<\/code> <code>Beth I hear you callin'<\/code> <code>       Em           Am    G<\/code> <code>But I can't come home right now<\/code> <code>                    \u2190 1 blank line between chord\/lyric pairs<\/code> <code>    F              G<\/code> <code>Me and the boys are playin'<\/code><\/pre>\n<hr \/>\n<h3 class=\"western\">Rule 6: Section Header Format<\/h3>\n<p>Headers should be in square brackets with consistent<br \/>\ncapitalization:<\/p>\n<pre><code>[INTRO]<\/code> <code>[VERSE 1]<\/code> <code>[VERSE 2]<\/code> <code>[PRE-CHORUS]<\/code> <code>{ CHORUS }<\/code> <code>[BRIDGE]<\/code> <code>[INSTRUMENTAL]<\/code> <code>[OUTRO]<\/code> <code>[FINAL VERSE]<\/code><\/pre>\n<hr \/>\n<h2 class=\"western\">WordPress Editor Settings<\/h2>\n<h3 class=\"western\">Block Editor (Gutenberg)<\/h3>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Add a Custom HTML block<\/strong><br \/>\n(not a paragraph block)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Click the three dots (\u22ee) in the<br \/>\nblock toolbar<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Select &#8220;Edit as HTML&#8221;<\/p>\n<\/li>\n<li>Paste your formatted song content<\/li>\n<\/ol>\n<h3 class=\"western\">Classic Editor<\/h3>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Click the &#8220;Text&#8221; tab<br \/>\n(not &#8220;Visual&#8221;)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Paste your formatted song content<\/p>\n<\/li>\n<li><strong>NEVER<\/strong> switch back to Visual editor after<br \/>\npasting<\/li>\n<\/ol>\n<h3 class=\"western\">Critical Warning<\/h3>\n<p>\u26a0\ufe0f <strong>NEVER use the Visual Editor after adding your<br \/>\nformatted song content<\/strong><\/p>\n<p>The Visual Editor will:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Strip your <code>&lt;pre&gt;<\/code><br \/>\ntags<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Collapse multiple spaces<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Remove line breaks<\/p>\n<\/li>\n<li>Destroy chord alignment<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"western\">Quality Control Checklist<\/h2>\n<p>Before publishing any song post, verify:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Entire song is wrapped in<br \/>\n<code>&lt;pre&gt;<\/code> tags with proper style attributes<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] All sections separated by<br \/>\n80-character separator lines<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Chords positioned with spaces<br \/>\n(no tabs)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Section headers in square<br \/>\nbrackets<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Consistent blank line spacing<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Song metadata at top (Title,<br \/>\nArtist, Key, Capo, Difficulty)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">[ ] Preview in WordPress shows<br \/>\nproper formatting<\/p>\n<\/li>\n<li>[ ] Test PDF generation shows proper spacing<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"western\">Testing Your Format<\/h2>\n<h3 class=\"western\">Step 1: Visual Inspection in WordPress<\/h3>\n<p>After saving as draft, check that:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Chords appear directly above their<br \/>\ncorresponding lyrics<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Lines don&#8217;t run together<\/p>\n<\/li>\n<li>Sections are clearly separated<\/li>\n<\/ul>\n<h3 class=\"western\">Step 2: PDF Test Generation<\/h3>\n<p>Generate a test PDF with just 1-2 songs:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Chords should remain above lyrics<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">No text should run together<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Section separators should be clear<\/p>\n<\/li>\n<li>Page breaks should not split chord\/lyric pairs<\/li>\n<\/ul>\n<h3 class=\"western\">Step 3: Font Rendering Test<\/h3>\n<p>View the PDF at 100% zoom:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">All characters should be same<br \/>\nwidth (monospace)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Vertical alignment should be<br \/>\nperfect<\/p>\n<\/li>\n<li>No characters should overlap<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"western\">Common Mistakes and Solutions<\/h2>\n<h3 class=\"western\">Mistake 1: Copying from Tab Sites<\/h3>\n<p><strong>Problem:<\/strong> Copying from Ultimate Guitar or similar<br \/>\nsites often includes hidden formatting.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Copy text to Notepad or TextEdit<br \/>\nfirst<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">This strips all formatting<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Then apply the template structure<\/p>\n<\/li>\n<li>Position chords manually with spaces<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Mistake 2: Using Word Processors<\/h3>\n<p><strong>Problem:<\/strong> Copying from Microsoft Word or Google<br \/>\nDocs includes formatting codes.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Use plain text editor (Notepad,<br \/>\nTextEdit, VS Code)<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Save as .txt file<\/p>\n<\/li>\n<li>Copy from .txt into WordPress HTML editor<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Mistake 3: Tab Characters<\/h3>\n<p><strong>Problem:<\/strong> Tab characters appear as spaces but have<br \/>\nvariable width.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Search and replace all tabs with<br \/>\nspaces in text editor<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">In most editors: Find <code>\\t<\/code>,<br \/>\nReplace with 4 spaces<\/p>\n<\/li>\n<li>Manually adjust chord positions after replacement<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Mistake 4: Smart Quotes<\/h3>\n<p><strong>Problem:<\/strong> Curly quotes (<code>\"<\/code> <code>\"<\/code><br \/>\n<code>'<\/code> <code>'<\/code>) from word processors cause issues.<\/p>\n<p><strong>Solution:<\/strong> Search and replace:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\"><code>\"<\/code> and <code>\"<\/code><br \/>\n\u2192 <code>\"<\/code><\/p>\n<\/li>\n<li><code>'<\/code> and <code>'<\/code> \u2192 <code>'<\/code><\/li>\n<\/ul>\n<hr \/>\n<h3 class=\"western\">Mistake 5: Special Dashes<\/h3>\n<p><strong>Problem:<\/strong> Em-dashes (\u2014) and en-dashes (\u2013)<br \/>\ninstead of hyphens.<\/p>\n<p><strong>Solution:<\/strong> Replace all with standard hyphen-minus<br \/>\n(<code>-<\/code>)<\/p>\n<hr \/>\n<h2 class=\"western\">Template Examples<\/h2>\n<h3 class=\"western\">Example 1: Simple Song Format<\/h3>\n<pre><code>&lt;pre style=\"font-family: 'Courier New', monospace; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-wrap: break-word;\"&gt;<\/code> <code>WONDERWALL<\/code> <code>Artist: Oasis<\/code> <code>Key: Em | Capo: 2nd fret | Difficulty: Beginner<\/code> <code>================================================================================<\/code> <code>[INTRO]<\/code> <code>Em7  G  Dsus4  A7sus4  (x2)<\/code> <code>================================================================================<\/code> <code>[VERSE 1]<\/code> <code>Em7              G<\/code> <code>Today is gonna be the day<\/code> <code>           Dsus4                A7sus4<\/code> <code>That they're gonna throw it back to you<\/code> <code>Em7               G<\/code> <code>By now you should've somehow<\/code> <code>  Dsus4              A7sus4<\/code> <code>Realized what you gotta do<\/code> <code>================================================================================<\/code> <code>{ CHORUS }<\/code> <code>        C        D           Em<\/code> <code>Because maybe, you're gonna be the one that saves me<\/code> <code>    C    D      Em<\/code> <code>And after all<\/code> <code>        C    D    Em<\/code> <code>You're my wonderwall<\/code> <code>================================================================================<\/code> <code>&lt;\/pre&gt;<\/code><\/pre>\n<h3 class=\"western\">Example 2: Song with Comments<\/h3>\n<pre><code>&lt;pre style=\"font-family: 'Courier New', monospace; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-wrap: break-word;\"&gt;<\/code> <code>LET IT BE<\/code> <code>Artist: The Beatles<\/code> <code>Key: C | Capo: None | Difficulty: Easy<\/code> <code>================================================================================<\/code> <code>[INTRO]<\/code> <code>C  G  Am  F  C  G  F  C<\/code> <code>================================================================================<\/code> <code>[VERSE 1]<\/code> <code>      C           G<\/code> <code>When I find myself in times of trouble<\/code> <code>Am          F<\/code> <code>Mother Mary comes to me<\/code> <code>C                G              F    C<\/code> <code>Speaking words of wisdom, let it be<\/code> <code>*Note: Play G gently on \"wisdom\"*<\/code> <code>================================================================================<\/code> <code>[CHORUS - REPEAT 2X]<\/code> <code>        F  C           G<\/code> <code>Let it be, let it be<\/code> <code>        Am       F<\/code> <code>Let it be, let it be<\/code> <code>        C              G              F    C<\/code> <code>Whisper words of wisdom, let it be<\/code> <code>================================================================================<\/code> <code>&lt;\/pre&gt;<\/code><\/pre>\n<hr \/>\n<h2 class=\"western\">Advanced Formatting<\/h2>\n<h3 class=\"western\">Handling Long Lines<\/h3>\n<p>If a line of chords or lyrics exceeds 80 characters:<\/p>\n<pre><code>C                    G                    Am<\/code> <code>This is a very long line of lyrics that needs to continue on and on<\/code> <code>F                    C                    G<\/code> <code>And it keeps going even longer than you might expect<\/code><\/pre>\n<p>The <code>word-wrap: break-word<\/code> in your style will handle this<br \/>\nautomatically.<\/p>\n<hr \/>\n<h3 class=\"western\">Multiple Chord Changes Per Syllable<\/h3>\n<p>When chords change rapidly:<\/p>\n<pre><code>    C  C\/B  Am  Am\/G<\/code> <code>The chord changes are quick here<\/code><\/pre>\n<p>Use double space between chords when they&#8217;re very close together.<\/p>\n<hr \/>\n<h3 class=\"western\">Instrumental Breaks with Notation<\/h3>\n<pre><code>[INSTRUMENTAL - 8 bars]<\/code> <code>| C    | G    | Am   | F    |<\/code> <code>| C    | G    | F    | C    |<\/code> <code>*Guitar solo over verse progression*<\/code><\/pre>\n<hr \/>\n<h2 class=\"western\">Troubleshooting Guide<\/h2>\n<h3 class=\"western\">Issue: Chords Don&#8217;t Align in PDF<\/h3>\n<p><strong>Diagnosis:<\/strong> Using proportional font or missing<br \/>\n<code>&lt;pre&gt;<\/code> tags<\/p>\n<p><strong>Fix:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Ensure <code>&lt;pre&gt;<\/code><br \/>\ntag includes <code>font-family: 'Courier New', monospace<\/code><\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Verify all chords positioned with<br \/>\nspaces (no tabs)<\/p>\n<\/li>\n<li>Check that font-family is being preserved in PDF generation<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Issue: Text Runs Together<\/h3>\n<p><strong>Diagnosis:<\/strong> Line breaks being stripped during<br \/>\nconversion<\/p>\n<p><strong>Fix:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Verify content is inside <code>&lt;pre&gt;<\/code><br \/>\ntags<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Check that <code>white-space:<br \/>\npre-wrap<\/code> is in style attribute<\/li>\n<li>Ensure line breaks exist in source (view HTML)<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Issue: Sections Not Separated<\/h3>\n<p><strong>Diagnosis:<\/strong> Missing or inconsistent separators<\/p>\n<p><strong>Fix:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Add exactly 80 equals signs<br \/>\nbetween sections<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Ensure blank line before and after<br \/>\neach separator<\/p>\n<\/li>\n<li>Use consistent separator throughout song<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Issue: Special Characters Garbled<\/h3>\n<p><strong>Diagnosis:<\/strong> Encoding issues or smart quotes<\/p>\n<p><strong>Fix:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Replace all smart quotes with<br \/>\nstraight quotes<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Replace special apostrophes with<br \/>\nstandard <code>'<\/code><\/p>\n<\/li>\n<li>Ensure WordPress post is saved with UTF-8 encoding<\/li>\n<\/ol>\n<hr \/>\n<h3 class=\"western\">Issue: Inconsistent Font Size<\/h3>\n<p><strong>Diagnosis:<\/strong> Multiple font-size declarations or<br \/>\nmissing style<\/p>\n<p><strong>Fix:<\/strong><\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Set font-size once in <code>&lt;pre&gt;<\/code><br \/>\ntag style attribute<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Remove any internal <code>&lt;span&gt;<\/code><br \/>\ntags with size declarations<\/p>\n<\/li>\n<li>Test that 14px renders properly in both WordPress and PDF<\/li>\n<\/ol>\n<hr \/>\n<h2 class=\"western\">Automation Tips<\/h2>\n<h3 class=\"western\">Text Editor Macros<\/h3>\n<p>Create macros in your text editor for:<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0in;\">Adding <code>&lt;pre&gt;<\/code><br \/>\nwrapper with full style<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Adding section separators<\/p>\n<\/li>\n<li>Converting tabs to spaces<\/li>\n<\/ul>\n<h3 class=\"western\">Example VS Code Snippet<\/h3>\n<pre><code>{<\/code> <code>  \"Song Template\": {<\/code> <code>    \"prefix\": \"song\",<\/code> <code>    \"body\": [<\/code> <code>      \"&lt;pre style=\\\"font-family: 'Courier New', monospace; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-wrap: break-word;\\\"&gt;\",<\/code> <code>      \"${1:SONG TITLE}\",<\/code> <code>      \"Artist: ${2:Artist Name}\",<\/code> <code>      \"Key: ${3:C} | Capo: ${4:None} | Difficulty: ${5:Beginner}\",<\/code> <code>      \"\",<\/code> <code>      \"================================================================================\",<\/code> <code>      \"\",<\/code> <code>      \"[VERSE 1]\",<\/code> <code>      \"\",<\/code> <code>      \"$0\",<\/code> <code>      \"\",<\/code> <code>      \"================================================================================\",<\/code> <code>      \"&lt;\/pre&gt;\"<\/code> <code>    ]<\/code> <code>  }<\/code> <code>}<\/code><\/pre>\n<hr \/>\n<h2 class=\"western\">WordPress Bulk Update<\/h2>\n<p>If you need to fix multiple existing posts:<\/p>\n<h3 class=\"western\">Manual Method<\/h3>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Open each post in HTML edit mode<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Select all content<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Wrap in proper <code>&lt;pre&gt;<\/code><br \/>\ntag with styles<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Add section separators if missing<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Fix chord spacing with spaces<\/p>\n<\/li>\n<li>Save and test PDF generation<\/li>\n<\/ol>\n<h3 class=\"western\">Programmatic Method (Advanced)<\/h3>\n<p>If you have database access, you can create a SQL script to:<\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\">Add <code>&lt;pre&gt;<\/code><br \/>\nwrapper to all posts in specific category<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\">Standardize section separators<\/p>\n<\/li>\n<li>Bulk test PDF generation<\/li>\n<\/ol>\n<p>\u26a0\ufe0f <strong>Always backup database before bulk updates<\/strong><\/p>\n<hr \/>\n<h2 class=\"western\">Final Recommendations<\/h2>\n<h3 class=\"western\">DO<\/h3>\n<p>\u2705 Always use the complete <code>&lt;pre&gt;<\/code> tag with all<br \/>\nstyle attributes \u2705 Position chords with spaces only \u2705 Use<br \/>\nconsistent 80-character separators \u2705 Test PDF output before<br \/>\npublishing \u2705 Keep a template file to copy from \u2705 Use plain text<br \/>\neditor for initial formatting<\/p>\n<h3 class=\"western\">DON&#8217;T<\/h3>\n<p>\u274c Ever use WordPress Visual Editor after adding formatted<br \/>\ncontent \u274c Use tabs for positioning chords \u274c Copy directly from<br \/>\nword processors \u274c Mix different formatting styles within a song \u274c<br \/>\nForget to include metadata (Artist, Key, Capo) \u274c Skip the quality<br \/>\ncontrol checklist<\/p>\n<hr \/>\n<h2 class=\"western\">Summary<\/h2>\n<p>The key to consistent, professional-looking song chord sheets in<br \/>\nyour PDF e-books is:<\/p>\n<ol>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Structural Consistency<\/strong><br \/>\n&#8211; Same HTML structure for every song<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Proper Tag Usage<\/strong><br \/>\n&#8211; Complete <code>&lt;pre&gt;<\/code> tag with all style attributes<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Monospace Font<\/strong> &#8211;<br \/>\nEnsures chord alignment<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Space-Based Positioning<\/strong><br \/>\n&#8211; Never tabs<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0in;\"><strong>Clear Separators<\/strong><br \/>\n&#8211; Visual section breaks<\/p>\n<\/li>\n<li><strong>Testing<\/strong> &#8211; Always verify in PDF before final<br \/>\npublication<\/li>\n<\/ol>\n<p>By following this guide exactly, you will eliminate all formatting<br \/>\nanomalies and produce professional-quality PDF songbooks from your<br \/>\nWordPress posts.<\/p>\n<hr \/>\n<p><strong>Document Version:<\/strong> 1.0<br \/>\n<strong>Last Updated:<\/strong><br \/>\nNovember 1, 2025<br \/>\n<strong>For:<\/strong> E-Book Maker WordPress<br \/>\nPlugin v1.0.6+<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Observed Formatting Problems Problem Songs (Poor Formatting) &#8220;Beth I Hear you &#8220;Wonderful Lily&#8221; &#8220;Unicorn Song, The&#8221; &#8211; Multiple Well-Formatted Songs &#8220;Lady&#8221; &#8220;Achy Breaky Heart&#8221; &#8211; Excellent Root Causes of Formatting Anomalies 1. Missing &lt;pre&gt; Tags Songs without proper preformatted text tags lose their spacing and line structure during HTML-to-PDF conversion. &hellip; <span class=\"more-button\"><a href=\"https:\/\/www.robertandrews.net\/songs\/formatting-tips\/\" class=\"more-link\">CLICK TO VIEW SONG<span class=\"screen-reader-text\">Formatting Tips<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[],"class_list":["post-27215","post","type-post","status-publish","format-standard","hentry","category-information"],"_links":{"self":[{"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/posts\/27215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/comments?post=27215"}],"version-history":[{"count":0,"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/posts\/27215\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/media?parent=27215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/categories?post=27215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robertandrews.net\/songs\/wp-json\/wp\/v2\/tags?post=27215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}