TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am triying to write my thesis in Latex. I want to create a title page. In my title page i have some space with the texts. I tried to give it with \vspace but it works between text not from top of the page. Can you suppose me a way to do this?

enter image description here

share|improve this question
    
Thank you @ChristianHupfer :) . I try it but it only create between two text but i want to give space from top of the page for every text or line. – Cengiz Görkem DENGİZ Jan 9 at 16:26
1  
(la)tex processes material in a stream; it doesn't start from the top of the page for each new line. although it's possible to make that happen, it's generally easier to determine how much space is required between lines to achieve the desired "drop", and specify that smaller \vspace where needed. – barbara beeton Jan 9 at 16:31
    
But this is a template. Sometime my text can be 2 or 3 lines. For example i want to start second text everytime from 10 cm below the top of the page. – Cengiz Görkem DENGİZ Jan 9 at 16:46
up vote 6 down vote accepted

In order to add space at the top of the page you have to say

\vspace*{3cm}

because the simple \vspace is removed at page breaks.

If you want precise positioning with respect to the page margins, you can use textpos. For instance

\documentclass{book}
\usepackage{textpos}

\newcommand{\fromtop}[1]{%
  \dimexpr-1in-\topskip-\topmargin-\headheight-\headsep+#1\relax
}
\newcommand{\fromleft}[1]{%
  \dimexpr-1in-\oddsidemargin+#1\relax
}

\begin{document}

\begin{titlepage}
\setlength{\parindent}{0pt}

\begin{textblock*}{0pt}(\fromleft{2cm},\fromtop{3cm})
\makebox[0pt][l]{Text at the top}
\end{textblock*}

\begin{textblock*}{\textwidth}(\fromleft{5cm},\fromtop{6.5cm})
\makebox[0pt][l]{Text in the middle}
\end{textblock*}

\begin{textblock*}{\textwidth}(\fromleft{3cm},\fromtop{9.5cm})
\makebox[0pt][l]{Text at the bottom}
\end{textblock*}

\end{titlepage}

\end{document}

enter image description here

Another example, for centering the texts with respect to the page borders:

\documentclass{book}
\usepackage{textpos}

\newcommand{\fromtop}[1]{%
  \dimexpr-1in-\topskip-\topmargin-\headheight-\headsep+#1\relax
}
\newcommand{\fromleft}[1]{%
  \dimexpr-1in-\oddsidemargin+#1\relax
}

\begin{document}

\begin{titlepage}
\setlength{\parindent}{0pt}

\begin{textblock*}{\paperwidth}(\fromleft{0cm},\fromtop{3cm})
\centering
Text at the top
\end{textblock*}

\begin{textblock*}{\paperwidth}(\fromleft{0cm},\fromtop{6.5cm})
\centering
Text in the middle\\
with new line
\end{textblock*}

\begin{textblock*}{\paperwidth}(\fromleft{0cm},\fromtop{9.5cm})
\centering
Text at the bottom\\
with new line
\end{textblock*}

\end{titlepage}

\end{document}

enter image description here

share|improve this answer
1  
while true, this only takes care of positioning the first line. – barbara beeton Jan 9 at 19:11
    
@barbarabeeton You're right. I have added a full solution, which does positioning with respect to the page borders, contrary to all others that have been presented. – egreg Jan 9 at 20:42
    
I try this. But i cant unerstand how can i insert a new line in one block. For example text \\ text \\ text . 3 text is in same block but the one under the other. And also how can i make it center position – Cengiz Görkem DENGİZ Jan 9 at 22:18
    
@CengizGörkemDENGİZ Your question didn't have those details. I added another example – egreg Jan 9 at 22:25
    
Thank you for your answer this also solved problem. And two more question. Can i include pragraph indent in this block. And can i change text width and line spacing for only one block. – Cengiz Görkem DENGİZ Jan 9 at 23:05

I find tikzpagenodes to be perfect for laying out title pages. Note, you need to run this twice.

\documentclass{article}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\usepackage{mwe}

\begin{document} 
\thispagestyle{empty}% I assume you don't want a page number
\begin{tikzpicture}[remember picture,overlay]
\draw[red] (current page text area.south west) rectangle (current page text area.north east);
\node[below,inner sep=0pt,text width=\textwidth] at ($(current page.north)+(0,-3cm)$)
  {Notice that 3 cm is actually above the text area.};
\node[below,inner sep=0pt,text width=\textwidth] at ($(current page.north)+(0,-6.5cm)$)
  {This should be 6.5 cm below the top of the page.};
\node[below,inner sep=0pt,text width=\textwidth] at ($(current page.north)+(0,-9.5cm)$)
  {This should be 9.5 cm below the top of the page.};
\end{tikzpicture}
\newpage
\end{document}

title page

share|improve this answer

The accepted answer is overcomplicated and with one potential bug. Try to write "Plus text text text" instead "Text text text" and think about the error message:).

What you need is something like this:

\newenvironment{mytextbox}[1]
    {\nointerlineskip \vbox to 0pt\bgroup\vskip#1\relax}
    {\vss\egroup}

Note: you need not to allocate special box, you need not to correct the vertical positions when \nointerlineskip is used.

share|improve this answer
    
I fixed the missing \relax bug in mine, thanks I always forget those. It's especially annoying in cases like \advance\mycounter1\ifnum\mycounter<10\dosomething\fi where the test happens with the old value... – Hood Chatham Jan 9 at 19:02

Try this:

\newbox\mybox
\newenvironment{mytextbox}[1]
    {\vskip-\baselineskip\setbox\mybox=\vbox\bgroup\vskip#1\relax}
    {\egroup\ht\mybox=0pt\box\mybox}

At the beginning of the environment it starts a box and puts the appropriate vertical space at the top of it. The body of the environment goes into the box, and then at the end it sets the height to zero and prints the box. You probably will need to end the page using \newpage.

Example:

\documentclass{article}
\newbox\mybox
\newenvironment{mytextbox}[1]
    {\vskip-\baselineskip\setbox\mybox=\vbox\bgroup\vskip#1}
    {\egroup\ht\mybox=0pt\box\mybox}

\begin{document}
\begin{mytextbox}{3cm}
Text text text Text text text Text text textText text textText text textText text text
Text text textText text text Text text textText text textText text text
\end{mytextbox}


\begin{mytextbox}{6.5cm}
Text text text Text text textText text textText text textText text textText text text
Text text text Text text textText text textText text text
\end{mytextbox}
\end{document} 

Edit: Thanks to Wipet for catching a dumb mistake in my code. I recommend anyone who wants to use this environment to use Wipet's better answer further down on this page.

share|improve this answer
    
Yes it worked. Thank you! But when i try to second text for 0 cm it add a baselineskip. Can i type {-\baselineskip + 5cm} or else. – Cengiz Görkem DENGİZ Jan 9 at 17:09
    
If you want to adjust everything up by a \baselineskip, replace the second line of the environment definition with: {\setbox\mybox=\vbox\bgroup\vskip-\baselineskip\vskip#1}. On my computer, it seems that the space is slightly less than a \baselineskip. – Hood Chatham Jan 9 at 17:10
    
If you try {0cm} for two textbox there are some space. So it is not top to top distance. – Cengiz Görkem DENGİZ Jan 9 at 17:19
    
I see, so you need to say {\vskip=-\baselineskip \setbox\mybox=\vbox\bgroup\vskip#1}. This makes it so that multiple 0pt boxes lie directly on top of each other. – Hood Chatham Jan 9 at 17:24
    
Yes can you fix it in example please. – Cengiz Görkem DENGİZ Jan 9 at 17:27
\documentclass{article}
\newbox\mybox
\newenvironment{mytextbox}[1]
{\vskip-\baselineskip\setbox\mybox=\vbox\bgroup\vskip#1}
{\egroup\ht\mybox=0pt\box\mybox}
\begin{document}
\begin{titlepage}
\begin{center}
\begin{mytextbox}{0.5cm}
    \textbf{asdf\\
    asdf ÜNİVERSİTESİ\\
    FEN BİLİMLERİ ENSTİTÜSÜ}
\end{mytextbox}
\begin{mytextbox}{4cm}
    \textbf{asdgd ANABİLİM DALI}
\end{mytextbox}
\begin{mytextbox}{7cm}
    \textbf{adfhdsh}
\end{mytextbox}
\begin{mytextbox}{12.5cm}
    \textbf{DOKTORA TEZİ}\\
\end{mytextbox}
\begin{mytextbox}{13.5cm}
    \textbf{asfsdgd}\\
    \textbf{124235}
\end{mytextbox}
\begin{mytextbox}{17cm}
    \textbf{Tezin Savunma Tarihi: 00.00.0000}
\end{mytextbox}
\begin{mytextbox}{20.5cm}
    \textbf{Tez Danışmanı: asgsdggf}
\end{mytextbox}    
\end{center}
\begin{mytextbox}{24cm}
 Bu Yüksek Lisans/Doktora Tez Çalışması sagfdfhgdh Üniversitesi………………’nolu Proje ile desteklenmiştir.
\end{mytextbox}
\end{titlepage}
\end{document} 

I typed this command and it worked. I dont understand wipet answer.

share|improve this answer
1  
The answer is low-quality. All you did was grab the definition of the accepted answer and included it in your use-case. It's adding unnecessary clutter to this post. – Werner Jan 9 at 19:30

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.