This is the only font that will maintain monospacing from the available font family. I formatted using the "Plain" syntax highlighter so that line numbers were created for reference purposes. Basic formatting<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN>
<SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">|</SPAN>_<SPAN class="punctuation token">{</SPAN> <SPAN class="punctuation token">[</SPAN>name<SPAN class="operator token">/</SPAN>num<SPAN class="punctuation token">]</SPAN> <SPAN class="punctuation token">[</SPAN>!s<SPAN class="punctuation token">,</SPAN> !r<SPAN class="punctuation token">,</SPAN> none<SPAN class="punctuation token">]</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">:</SPAN> format_spec<SPAN class="punctuation token">]</SPAN>_<SPAN class="operator token">|</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">|</SPAN>_<SPAN class="punctuation token">{</SPAN> vertical bar to denote start<SPAN class="punctuation token">,</SPAN> _ optional spaces
<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">}</SPAN>_<SPAN class="operator token">|</SPAN> vertical bar to denote end<SPAN class="punctuation token">,</SPAN> _ optional spaces
<SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN>
<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN>name<SPAN class="operator token">/</SPAN>num<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> empty<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">,</SPAN> number
<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN>!s <SPAN class="operator token">or</SPAN> !r<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> str <SPAN class="operator token">or</SPAN> repr format <SPAN class="operator token">or</SPAN> nothing
<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN>format<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> see examples <SPAN class="keyword token">in</SPAN> output
<SPAN class="number token">1</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>_<SPAN class="operator token">></SPAN><SPAN class="number token">15.</SPAN><SPAN class="number token">0f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> lead _<SPAN class="punctuation token">,</SPAN> right<SPAN class="punctuation token">,</SPAN> integer <SPAN class="operator token">|</SPAN>_________123456<SPAN class="operator token">|</SPAN>
<SPAN class="number token">2</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>_<SPAN class="operator token">></SPAN><SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> lead _<SPAN class="punctuation token">,</SPAN> right<SPAN class="punctuation token">,</SPAN> float <SPAN class="operator token">|</SPAN>_____123456<SPAN class="number token">.012</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">3</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>_<SPAN class="operator token">></SPAN><SPAN class="operator token">+</SPAN><SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> lead _<SPAN class="punctuation token">,</SPAN> right<SPAN class="punctuation token">,</SPAN> req<SPAN class="punctuation token">.</SPAN> sign<SPAN class="punctuation token">,</SPAN> float <SPAN class="operator token">|</SPAN>____<SPAN class="operator token">+</SPAN><SPAN class="number token">123456.012</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">4</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>_<SPAN class="operator token">></SPAN> <SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> lead _<SPAN class="punctuation token">,</SPAN> right<SPAN class="punctuation token">,</SPAN> opt<SPAN class="punctuation token">.</SPAN> sign<SPAN class="punctuation token">,</SPAN> float <SPAN class="operator token">|</SPAN>____ <SPAN class="number token">123456.012</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">5</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="operator token">></SPAN> <SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> no lead<SPAN class="punctuation token">,</SPAN> right<SPAN class="punctuation token">,</SPAN> opt<SPAN class="punctuation token">.</SPAN> sign<SPAN class="punctuation token">,</SPAN> float <SPAN class="operator token">|</SPAN> <SPAN class="number token">123456.012</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">6</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="operator token">></SPAN><SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> whatever<SPAN class="punctuation token">,</SPAN> float <SPAN class="operator token">|</SPAN> <SPAN class="number token">123456.012</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">7</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token"><</SPAN><SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> left<SPAN class="punctuation token">,</SPAN> float<SPAN class="punctuation token">,</SPAN> trailing space<SPAN class="punctuation token">(</SPAN>s<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="number token">123456.012</SPAN> <SPAN class="operator token">|</SPAN>
<SPAN class="number token">8</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token"><</SPAN> <SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> left<SPAN class="punctuation token">,</SPAN> space<SPAN class="punctuation token">(</SPAN>s<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> float<SPAN class="punctuation token">,</SPAN> spaces <SPAN class="operator token">|</SPAN> <SPAN class="number token">123456.012</SPAN> <SPAN class="operator token">|</SPAN>
<SPAN class="number token">9</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>_<SPAN class="operator token"><</SPAN> <SPAN class="number token">15.</SPAN><SPAN class="number token">3f</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> left<SPAN class="punctuation token">,</SPAN> space<SPAN class="punctuation token">(</SPAN>s<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> float<SPAN class="punctuation token">,</SPAN> __ <SPAN class="operator token">|</SPAN> <SPAN class="number token">123456.</SPAN>012____<SPAN class="operator token">|</SPAN>
<SPAN class="number token">10</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN>!s<SPAN class="punctuation token">:</SPAN><SPAN class="operator token"><</SPAN><SPAN class="number token">15</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> left<SPAN class="punctuation token">,</SPAN> string <SPAN class="operator token">|</SPAN><SPAN class="number token">123456.01234</SPAN> <SPAN class="operator token">|</SPAN>
<SPAN class="number token">11</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN>!s<SPAN class="punctuation token">:</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token"><</SPAN><SPAN class="number token">15</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> left<SPAN class="punctuation token">,</SPAN> string space<SPAN class="punctuation token">(</SPAN>s<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="number token">123456.01234</SPAN><SPAN class="operator token">**</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">12</SPAN> <SPAN class="operator token">|</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN>!s<SPAN class="punctuation token">:</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token">^</SPAN><SPAN class="number token">15</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> center<SPAN class="punctuation token">,</SPAN> lead<SPAN class="operator token">/</SPAN>trail <SPAN class="operator token">|</SPAN><SPAN class="operator token">*</SPAN><SPAN class="number token">123456.01234</SPAN><SPAN class="operator token">**</SPAN><SPAN class="operator token">|</SPAN>
<SPAN class="number token">13</SPAN> <SPAN class="operator token">|</SPAN>_<SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN>!s<SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">^</SPAN><SPAN class="number token">13</SPAN><SPAN class="punctuation token">}</SPAN>_<SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> lead<SPAN class="punctuation token">,</SPAN> center<SPAN class="punctuation token">,</SPAN> trail <SPAN class="operator token">|</SPAN>_123456<SPAN class="number token">.01234</SPAN> _<SPAN class="operator token">|</SPAN>
<SPAN class="number token">14</SPAN> <SPAN class="operator token">|</SPAN>_<SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN>!s<SPAN class="punctuation token">:</SPAN><SPAN class="operator token">*</SPAN><SPAN class="operator token"><</SPAN><SPAN class="punctuation token">}</SPAN>_<SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> no size<SPAN class="punctuation token">,</SPAN> lead ignored<SPAN class="punctuation token">,</SPAN> left <SPAN class="operator token">|</SPAN>_123456<SPAN class="punctuation token">.</SPAN>01234_<SPAN class="operator token">|</SPAN>
<SPAN class="number token">15</SPAN> <SPAN class="operator token">|</SPAN>_<SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">></SPAN><SPAN class="number token">5f</SPAN><SPAN class="punctuation token">}</SPAN>_<SPAN class="operator token">|</SPAN> <SPAN class="operator token">-</SPAN> float<SPAN class="punctuation token">,</SPAN> undersized <SPAN class="operator token">|</SPAN>_123456<SPAN class="punctuation token">.</SPAN>012340_<SPAN class="operator token">|</SPAN>
Fancy formatting
<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN>
Format elements are generated <SPAN class="keyword token">from</SPAN> field widths <SPAN class="operator token">and</SPAN> content<SPAN class="punctuation token">.</SPAN>
Some examples <SPAN class="keyword token">for</SPAN> <SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN> <SPAN class="number token">1234.5</SPAN> <SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN>
widths<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">8</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">10</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">12</SPAN><SPAN class="punctuation token">]</SPAN>
building<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN>
f <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN> <SPAN class="string token">"|_{{0!s:^{}}}_|"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>width<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> width <SPAN class="keyword token">in</SPAN> widths <SPAN class="punctuation token">]</SPAN>
txt <SPAN class="operator token">=</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>i <SPAN class="keyword token">for</SPAN> i <SPAN class="keyword token">in</SPAN> f<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN>txt<SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1234.5</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
formats<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'|_{0!s:^6}_|'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'|_{0!s:^8}_|'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'|_{0!s:^10}_|'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'|_{0!s:^12}_|'</SPAN><SPAN class="punctuation token">]</SPAN>
result<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN> <SPAN class="operator token">|</SPAN>_1234<SPAN class="punctuation token">.</SPAN>5_<SPAN class="operator token">|</SPAN><SPAN class="operator token">|</SPAN>_ <SPAN class="number token">1234.5</SPAN> _<SPAN class="operator token">|</SPAN><SPAN class="operator token">|</SPAN>_ <SPAN class="number token">1234.5</SPAN> _<SPAN class="operator token">|</SPAN><SPAN class="operator token">|</SPAN>_ <SPAN class="number token">1234.5</SPAN> _<SPAN class="operator token">|</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Comments welcome. |