5

I have a document such as the following:

\documentclass{article}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{todonotes}
\usepackage[english]{babel}
\usepackage{showframe}
\begin{document}
\lipsum[1]
And now I have som\todo{Correct this word at some point}~real paragraph
\lipsum[1]
\end{document}

This renders something like this screenshot (not inlined because it's a bit large)

I want to make room for margin notes in a way that does not alter the text reflow. Ideally, that would mean scaling down the fonts as well as the margins, proportionally so that the inner space for text is invariant.

That is not just \usepackage[scale=0.75]{geometry}, which does not take into account the font size.

I have not found any package or answer related to this that answers this question generally (without regard to the specific paper size and making the operations manually), and I think it would be useful for preparing camera-ready reviews, with the increased space very useful for notes.

I don't mind whether the answer increases the horizontal page size (i.e., no longer A4, letter or whatever) or scales down the objects in the document.

UPDATE: A correct answer to this question should be general enough for most documentclasses (think springer, IEEEtran, book, memoir or whatever) without regard to specific margins or measurements manually set by geometry or otherwise.

Here is a concept of what I would want rendered (of course, the text in the margin notes should be a bit smaller, but that is really the least concern).

changed render

  • Normal a4paper is 297x210mm. Would it be alright to just increase the papersize and the right margin? For instance change \usepackage[paperheight=297mm, paperwidth=210mm, left=20mm,right=20mm, top=30mm, bottom=30mm]{geometry}to \usepackage[paperheight=297mm, paperwidth=310mm, left=20mm,right=120mm, top=30mm, bottom=30mm]{geometry}? – Tom Bombadil Nov 10 '15 at 19:17
  • That may work for a4paper, but how can I make it general for any paper size (without having to print all those variables if I change the paper size)? – ssice Nov 10 '15 at 19:22
  • What's the point of editing this to specify what you would count as a correct answer when you've accepted an answer which is, by those criteria, incorrect? I'm not encouraging you to unaccept that answer. Adding a bunch of criteria after people have spent time answering is hardly unproblematic. (I would not have posted my answer given the updated question.) In any case, what you are asking for is, I think, not the kind of thing which an answer here can reasonably be expected to provide. That is, it should be a new question, but that question is probably not reasonably answerable. – cfr Nov 11 '15 at 12:25
  • I am sorry about the confusion. I wanted to post the question as it is now, and it seems I was not right at specifying it down the first time. Thus, I updated it to reflect my original thoughts. The accepted answer is easy to understand enough to adapt it to any such environment (IMHO). And I mistook typeclasses for documentclasses. – ssice Nov 11 '15 at 22:32
4

You can use \addtolength to change the the margins accordingly. In the example, 100mm are added.

Code

\documentclass{article}
\usepackage[inner=10mm, outer=30mm, a4paper, twoside]{geometry}

\newdimen\extramargin
% === change this as you like ===
\extramargin=100mm
% ===============================

% === automatically change lengths
\addtolength{\paperwidth}{\extramargin}
\addtolength{\evensidemargin}{\extramargin}
\addtolength{\marginparwidth}{\extramargin}

\usepackage{todonotes}

% === just for blindtext
\usepackage{lipsum}

\begin{document}
\lipsum[1]\todo{Important business that need to be taken care of.}

\lipsum[2]\todo{Important business that need to be taken care of. Important business that need to be taken care of.}

\lipsum

\lipsum[1]\todo{Important business that need to be taken care of. Important business that need to be taken care of. Important business that need to be taken care of.}

\lipsum[2]\todo{Important business that need to be taken care of. Important business that need to be taken care of. Important business that need to be taken care of. Important business that need to be taken care of.}

\lipsum[3-5]
\end{document}

Output

enter image description here

  • Thanks. I think I will go with this approach. You can also add that if your document is twocolumn, you have to \addtolength{\paperwidth}{\extramargin} twice (and I found that it is much easier than dividing on the other lendths). – ssice Nov 11 '15 at 11:24
3

Unsupported, dangerous and not recommended; it does 90% photographic reduction.

\documentclass{article}
\mag=900
% use US letter paper, if you prefer
\paperwidth=21truecm
\paperheight=29.7truecm
%
\hoffset=-1truecm
\marginparwidth=6cm

\usepackage{lipsum}
\usepackage{todonotes}
\usepackage[english]{babel}

\begin{document}
\lipsum[1]
And now I have som\todo{Correct this word at some point}~real paragraph
\lipsum[1]
\end{document}

Not compatible with geometry, I'm afraid.

enter image description here

  • This will change the text reflow, because it's not an exact ratio, and if it were it would be hardcoded, so not general enough for the question stated. – ssice Nov 11 '15 at 11:26
  • @ssice You're wrong about the text reflow. – egreg Nov 11 '15 at 11:29
  • I am sorry, you are right. Although it does not seem as easy to deal with if we were to typeset at twocolumn, would it? – ssice Nov 11 '15 at 11:32
  • @ssice It was just a proof of concept and your question didn't address a very important aspect regarding what cases you were considering, which you added much later. I'm afraid that a general answer does not exist and I'm not going into further research about the topic. – egreg Nov 11 '15 at 11:36
  • sure, good enough for simple cases anyway. The trick here seems to use truecm as the measurement unit for the paper (given a known paper size) instead of regular cm so that \mag does not alter that dimension if I understood correctly. – ssice Nov 11 '15 at 11:39
2

You can tell geometry to use a different paper size to layout the text block, thus changing the margins etc.

For example, if your original document is on A5 paper:

A5

then using physical paper of size A4 will increase the margins and the area available for your notes:

A5 on A4

Code:

% \documentclass[a5paper]{article}
% \usepackage[showframe]{geometry}
\documentclass[a4paper]{article}
\usepackage[showframe,layout=a5paper]{geometry}
\usepackage{lipsum}
\usepackage{todonotes}
\begin{document}
\lipsum[1]
And now I have som\todo{Correct this word at some point}~real paragraph
% And now I have som~real paragraph
\lipsum[1]
\end{document}
  • However, this alone does not allow for both-side margin notes (e.g. in a twocolumn document) – ssice Nov 11 '15 at 11:22
  • Well, that criterion wasn't part of your question. Your example included only a single note and your described use-case in no way suggested a need for margin notes on both sides or, for that matter, a document with two column layout. Obviously you can add e.g. centering to geometry to get it to equalise the margins. In fact, I rather guessed somebody would do this. I just meant this example to illustrate the basic strategy. – cfr Nov 11 '15 at 12:16
  • Sure. Just pointing out it's more limited in applicability than other answers. – ssice Nov 11 '15 at 12:17

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.