15

What I want to do is calculate the actual size between the edge of the paper, and my header. \evenmarginsize and \oddmarginsize do not do this.

\settowidth{\msize}{((\paperwidth - \textwidth)/2)}

Doesn't seem to work, how can this be done?

2
  • 1. You don't say which edge of the paper. On first reading, because you are talking about the header, I thought the top edge. 2. The commands \evenmarginsize and \oddmarginsize don't exist. Perhaps you meant \oddsidemargin and \evensidemargin. 3. \settowidth takes a piece of text and calculates its width. For what you want, use \setlength and you need the calc package to use algebraic notation. 4. One more thing: supply a compilable file that shows what you tried.
    – Dan
    Dec 9, 2013 at 3:13
  • 1) The left hand side, when I first tried this I didn't think it mattered. 2) Yes, those are the correct commands. My memory mixed them up. 3) Below is a solution without calc. 4) Didn't need to. Oh, and one more thing, calm the attitude Mr. Keyboard Warrior. Dec 9, 2013 at 8:41

2 Answers 2

21

Use the e-TeX structure:

\newlength{\msize}
\setlength{\msize}{\dimexpr(\paperwidth-\textwidth)/2\relax}

The macro \settowidth is used with finding the width of a portion of text such as in:

 \newlength{\mytextwidth}
 \settowidth{\mytextwidth}{This is some text whose width I'm measuring}

The documentation can be found by running texdoc etex from the command line. Amoung other things, e-TeX provides several nice commands to facilitate calculations using \dimexpr, \numexpr, and several other flavors. Since I've discovered these, I find I don't use the calc package that much anymore.

1
  • 3
    Documentation Please :)! Dec 8, 2013 at 19:54
10
\usepackage{calc}

...

\setlength{\msize}{0.5\paperwidth-0.5\textwidth}

However, I recommend you looking at the hcentering option of the package geometry.

3
  • Not trying to centre the header. Dec 8, 2013 at 19:55
  • Well, you obviously do some calculation of the page geometry. I only suggest that you might have a look at the package above, because you might save yourself a lot of time not doing something that has been done before ;)
    – yo'
    Dec 8, 2013 at 19:56
  • Haha I checked it out, it wasn't what I wanted. Thank you though Dec 9, 2013 at 8:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.