Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am trying to typeset my thesis. I have to put predefined vertical space before and after some specific environments like equation and table. Since there are many instances of these environments I do not want to put space manually. I also do not want to define a new environment like

\newenvironment{equ}{\vspace{1cm}\begin{equation}}{\end{equation}\vspace{15mm}}

I think the above approach is ugly. I think I have to redefine the environments but

\renewenvironment{equation}{\vspace{1cm}\begin{equation}}{\end{equation}\vspace{15mm}}

does not work. What is the best way of setting space before and after some specific environments?

UPDATE

I found a solution.

share|improve this question
    
your redefinition does not work because you're nesting the environment you're redefining into its definition (equation)... besides both examples have the same definition... –  henrique Jul 7 '11 at 23:18
    
@henrique If I can find a way to shut down or suspend recursion, my problem will be solved. I think that this is a very basic problem but I cannot find any solution. And yes both examples have the same definition because that is what I want to accomplish. –  memin Jul 7 '11 at 23:46
    
I don't know if I understand what you mean by that... I suggest you check your class file to see how the equation environment is defined and then redefine it to add space (actually, the first approach seems ok). You can't define an environment that relies on itself. –  henrique Jul 8 '11 at 1:10
    
I am not experienced on these kind of modifications so I did not want to delve deeper into the code. I solved the problem for now using \let and \renewenvironemnt. But I will keep your approach in my mind for future reference. –  memin Jul 8 '11 at 2:03
    
Instead of an explicit \vspace{1cm} normally you should use one of the three standard LaTeX macros \smallskip, \medskip and \bigskip (or multiple of them). They are designed to fit the font size. However, I see that you are required to add a specific amount. In that case you shouldn't wonder when the result doesn't look good. –  Martin Scharrer Jul 8 '11 at 7:37

2 Answers 2

up vote 1 down vote accepted

I find a solution to the problem. Now I am using the following code:

\let\oldequation=\equation
\let\endoldequation=\endequation
\renewenvironment{equation}{\vspace{1cm}\begin{oldequation}}{\end{oldequation}\vspace{15mm}}

It is still ugly but it does the job and there are still equation environments present in the document. This also works for tables. However this code does not work if I remove the second line. I do not understand why it does not.

share|improve this answer

Try

\setlength{\abovedisplayskip}{1cm}
\setlength{\belowdisplayskip}{1cm}

You have to place these inside the document, i.e. after \begin{document} and before \end{document}.

You may further refer to http://www.eng.cam.ac.uk/help/tpl/textprocessing/squeeze.html

share|improve this answer
    
Thank you for the answer, but this can be only used for the equation and its float equivalent \abovecaptionskip seems to be modifying caption space. I generated a solution using the approach at the bottom of the same page. However, I cannot post the answer right now because of the time limitation. –  memin Jul 8 '11 at 1:58
    
I find that this works fine before \begin{document} as well. –  Andrew Mao Jan 31 at 20:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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