LaTeX - Adding a varying amount of horizontal spacing to the beginning of each new line in a sequence

41,367

Solution 1

I am fairly sure you want to typeset your examples with a fixed-width font, in which case, you should probably use verbatim environment. Even better, you could use fancyvrb package, which gives you a Verbatim environment, and allows you control over captioning, coloring, font size/shapes, etc. You can even make blanks more visible by showing them:

\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[showspaces=true,fontsize=\small]
GAGTAATCCTTCACTTCAAGGCCAGTCTTCACATCTCATCAGA
ACATCTCA
 ACATCTCA
  ACATCTCA
    ACATCTCA
\end{Verbatim}
\end{document}

Solution 2

Just use \hspace*{5mm} (i.e. the starred form) which works fine at the beginning of a line.

Solution 3

For this, I always add an "empty" object to the beginning of the line, e.g.

${}$\hspace{5em}Foo

it's not beautiful, but serves the purpose.

Solution 4

I would simply use the listings package and do the indention with spaces or tabs. I suppose that you are using the typewriter font anyway to get letters with a non-relative width.

Share:
41,367
Feanor
Author by

Feanor

Updated on February 07, 2020

Comments

  • Feanor
    Feanor over 4 years

    I'm using LaTeX for an algorithms assignment and I need to show the steps for Horspool's algorithm for string matching similar to what is shown in the textbook. The way it demonstrates the algorithm is showing how the pattern shifts along the text for each failed comparison, with each shift on a new line. The pattern is shown below the text with appropriate horizontal spacing indicating which letters are being compared.

    Here is an example of what it would look like with a DNA sequence:

    GAGTAATCCTTCACTTCAAGGCCAGTCTTCACATCTCATCAGA
    ACATCTCA
     ACATCTCA
      ACATCTCA
        ACATCTCA
    

    I've poked around on several LaTeX references. I tried using \hspace to add the spacing at the beginning of each line, then adding \hfill after the pattern and before creating a newline. I'm not getting any errors, but there is no space being added at the front. The line is being filled correctly.

    Is there another way to add the space to the beginning of each line, or another way to format this?