6

TeX newbie. I want to position the reference fields line in scrlttr2 to where the "supplemental data" is usually displayed (in the top right hand corner, below the header).

I figured it would be as easy as

\makeatletter
\@setplength{refvpos}{\useplength{locvpos}}
\@setplength{refhpos}{\useplength{lochpos}}
\@setplength{refwidth}{\useplength{locwidth}}
\makeatother

but that doesn't work, the reference field line is rendered right at the top of the document. Any help would be greatly appreciated! I'm working on an invoice template.

1 Answer 1

7
  • Vertical position: Obviously locvpos has a value of 0 pt with your style, which is common for many letter styles. You could set it yourself or use toaddrvpos instead.

  • Horizontal position: refhpos means a distance from the left paper edge, but lochpos from the right paper edge. So you would have to calculate, substracting lochpos and locwidth from \paperwidth to get your new refwidth.

  • Width: You can simply use locwidth as you did, perhaps the option refline=narrow could be useful for you in addition.

Since you design the template yourself, you don't have to use predefined values, you could set your own.

Example:

\documentclass[refline=narrow]{scrlttr2}
\setkomavar{yourref}{Z7H88}
\setkomavar{yourmail}{10/28/2011}
\setkomavar{myref}{A124}
\setkomavar{customer}{42}
\setkomavar{invoice}{I-2011-22}
\setkomavar{date}{11/01/2011}
\usepackage{calc}
\makeatletter
\@setplength{refvpos}{\useplength{toaddrvpos}}
\@setplength{refhpos}{\paperwidth-7cm}
\@setplength{refwidth}{3cm}
\makeatother
\begin{document}
\begin{letter}{Reader}
\opening{Dear reader,}
\closing{Yours Sincerely}
\end{letter}
\end{document}

enter image description here

Another approach

You could use

\setkomavar{location}{...}

to use the location field while designing your own reference fields block therein, not using the predefined reference fields. So you don't have to change position and width.

9
  • Fantastic, thank you! Exactly what I needed.
    – slurms
    Nov 1, 2011 at 11:38
  • @NickSandford So you could click on the arrow and checkmark on the left of the answer for upvoting and accepting ;-)
    – Stefan Kottwitz
    Nov 1, 2011 at 11:47
  • It says I need a certain amount of reputation to do that haha, first post and everything :). I'm almost there, and when I am I will. For the second approach, is there somewhere I can view how the current reference line is rendered, so that I can use that as a template for setting the location variable?
    – slurms
    Nov 1, 2011 at 11:51
  • @NickSandford: You can't upvote (click on the arrow) yet, but you can accept (click on the checkmark).
    – lockstep
    Nov 1, 2011 at 11:53
  • Ah, righto. Didn't notice that! Thanks.
    – slurms
    Nov 1, 2011 at 11:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .