10

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?

  • 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 '13 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. – NictraSavios Dec 9 '13 at 8:41
13

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.

  • 2
    Documentation Please :)! – NictraSavios Dec 8 '13 at 19:54
6
\usepackage{calc}

...

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

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

  • Not trying to centre the header. – NictraSavios Dec 8 '13 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 '13 at 19:56
  • Haha I checked it out, it wasn't what I wanted. Thank you though – NictraSavios Dec 9 '13 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.