Synopsis:

\line(x_run,y_rise){travel}

Draw a line. It slopes such that it vertically rises `y_rise` for every horizontal `x_run`. The `travel` is the total horizontal change—it is not the length of the vector, it is the change in *x*. In the special case of vertical lines, where (`x_run`,`y_rise`)=(0,1), the `travel` gives the change in *y*.

This draws a line starting at coordinates (1,3).

\put(1,3){\line(2,5){4}}

For every over 2, this line will go up 5. Because `travel` specifies that this goes over 4, it must go up 10. Thus its endpoint is *(1,3)+(4,10)=(5,13)*. In particular, note that * travel=4* is not the length of the line, it is the change in

The arguments `x_run` and `y_rise` are integers that can be positive, negative, or zero. (If both are 0 then LaTeX treats the second as 1.) With `\put(`

, if `x_init`,`y_init`){\line(`x_run`,`y_rise`){`travel`}}`x_run` is negative then the line’s ending point has a first coordinate that is less than `x_init`. If `y_rise` is negative then the line’s ending point has a second coordinate that is less than `y_init`.

If `travel` is negative then you get ```
LaTeX Error: Bad \line or
\vector argument.
```

Standard LaTeX can only draw lines with a limited range of slopes because these lines are made by putting together line segments from pre-made fonts. The two numbers `x_run` and `y_rise` must have integer values from -6 through 6. Also, they must be relatively prime, so that `(x_run,y_rise)` can be (2,1) but not (4,2) (if you choose the latter then instead of lines you get sequences of arrowheads; the solution is to switch to the former). To get lines of arbitrary slope and plenty of other shapes in a system like `picture`

, see the package `pict2e` (https://ctan.org/pkg/pict2e). Another solution is to use a full-featured graphics system such as TikZ, PSTricks, MetaPost, or Asymptote.

© 2007–2018 Karl Berry

Public Domain Software

http://latexref.xyz/_005cline.html