Strona tytułowa powinna być prosta i czytelna! To zdanie twórcy LaTeX-a wzięli sobie głęboko do serca, ponieważ standardowy kod służący tworzeniu jej a przedstawiony poniżej tworzy dokładnie 3 linijki widoczne jeszcze niżej:
\documentclass[12pt,a4paper,titlepage]{report}
\author{Maciej Mucha}
\title{Badanie układu całkującego.} \begin{document} \maketitle ....
No delikatnie mówiąc nie rzuca na kolana to to. A przecież mogło by wyglądać na przykład o tak:
Jak zmusić LaTeX-a, aby po podaniu mu w standardowy sposób autora, tytułu i daty wygenerował powyższą stronę? Wbrew pozorom – to bardzo proste.
Ogólne wprowadzenie
Jak wiemy (a przynajmniej powinniśmy) LaTeX udostępnia nam polecenie \maketitle, które generuje stronę tytułową. Tytułową czyli taką, która nie jest numerowana i nie zawiera nagłówka oraz stopki (No i jest na niej tytuł… Tak tylko przypominam). Aby móc się wkopać w to polecenie, musimy zrozumieć jak ono działa, a działa bardzo prosto. Kiedy my wykonujemy polecenie \maketitle, LaTeX zagląda (ja też zaglądnąłem – wy nie musicie) do pliku ze stylem dokumentu (report, article etc.), gdzie to polecenie jest zdefiniowane mniej więcej w taki sposób:
\newcommand\maketitle{\begin{titlepage} sratatata \@author sratatata \@date sratatata \@thanks sratatata \@title sratatata \end{titlepage}}
Co to oznacza? A to, że istnieje środowisko titlepage, wewnątrz którego wpisujemy po prostu na chama treść strony tytułowej, korzystając ze “zmiennych” które zamieniają się potem na autora itp… I to środowisko zapewnia nam:
- Brak numeru strony (ściśle mówiąc strona ta ma numer 1 (niewyświetlany). Następna strona również ma nr 1)
- Brak nagłówka i stopki
- Przejście na następną stronę po zakończeniu generowania strony tytułowej
I dokładnie taki sposób my stworzymy własny “styl” tworzenia strony tytułowej. Za pomocą polecenie \renewcommand zredefiniujemy (zamienimy na swoje) polecenie \maketitle.
Z czego można korzystać tworząc treść strony tytułowej?
Redagowanie s.t. nie różni się niczym od normalnego redagowania dokumentu. W zasadzie można używać wszystkiego, Najczęściej jednak będziemy korzystać z:
- Żonglerki wielkościami czcionek. Nie będę tu tłumaczył jak to działa. Jeżeli ktoś już czyta ten artykuł to chyba wie mniej-więcej na czym polega LaTeX.
- Odstępy pionowe tworzone za pomocą polecenia \vspace
- Linie poziome tworzone za pomocą \rule
- Pogrubienia, kursywy
- polecenia \@author, \@title, \@date, \@thanks – do wyświetlenia wartości pobranych przez polecenia \author, \title, \date, \thanks umieszczone przed \maketitle. Przypominam, że brak daty uzyskujemy za pomocą \date{\empty}}
Kod i wytłumaczenie niektórych aspektów
\documentclass[12pt,a4paper,notitlepage]{report}
\usepackage{polski}
\usepackage[T1]{fontenc}
\usepackage[cp1250]{inputenc}
\usepackage[top=2cm, bottom=2cm, left=3cm, right=3cm]{geometry}
\makeatletter
\newcommand{\linia}{\rule{\linewidth}{0.4mm}}
\renewcommand{\maketitle}{\begin{titlepage}
\vspace*{1cm}
\begin{center}\small
Uniwersytet warszawski\\
Wydział Fizyki\\
Raport z pracowni elektronicznej
\end{center}
\vspace{3cm}
\noindent\linia
\begin{center}
\LARGE \textsc{\@title}
\end{center}
\linia
\vspace{0.5cm}
\begin{flushright}
\begin{minipage}{5cm}
\textit{\small Autor:}\\
\normalsize \textsc{\@author} \par
\end{minipage}
\vspace{5cm}
{\small Praca wykonana pod przewodnictwem:}\\
dr Tomasz Słupiński
\end{flushright}
\vspace*{\stretch{6}}
\begin{center}
\@date
\end{center}
\end{titlepage}%
}
\makeatother
\author{Maciej Mucha }
\title{Badanie układów cyfrowych}
\begin{document}
\maketitle
\end{document}
- \makeatletter, \makeatother – Jak widać w kodzie użyliśmy paru poleceń, w których nazwie znalazła się “@”. Jest to niedozwolone, i samo użycie takiego polecenia generuje błąd. Aby temu zapobiec musimy uprzedzić LaTeX-a, że małpka to też literka. Służy do tego pierwsze z użytych poleceń. Drugie natomiast przywraca wszystko do normy
- \vspace – odstęp pionowy. Gwiazdka oznacza, iż odstęp będzie działał nawet jeśli jest pierwszym lub ostatnim odstępem na stronie.
- \newcommand{\linia}{\rule{\linewidth}{0.4mm}} – tworzymy sobie polecenie pomocnicze, wstawiające poziomą linię szeroką na 0.4mm a długą od prawego do lewego marginesu.
- \noindent – W tym miejscu linia zaczyna nowy akapit, a więc tworzy się wcięcie i linia się przesuwa w prawo. Polecenie to usuwa wcięcie.
- \minipage o szerokości 5cm – cały minipage jest wyrównany do prawej strony. Tekst w nim natomiast wyrównany jest do jego lewego brzegu a więc zaczyna się 5 cm od prawego marginesu strony. Taki Trik.
- \vspace*{\stretch{6}} – duuży pionowy odstęp. Na tyle duży, że wystaje poza kraniec strony. Wyświetlenie daty znajduje się jeszcze dalej, ale LaTeX nie pozwala na wywalenie jednej linijki poza stronę, a więc efektem jest data wyrównana do dolnego marginesu.
Generalnie jak widać daje to wiele swobody a do tego jest bardzo proste. Zachęcam więc do oddawania raportów z ładnymi stronami tytułowymi, bo to co robi nam LaTeX własnoręcznie to gniot jednym słowem.
Pozdrawiam
Much
adres |
vac:
3 Oct 2009 @ 13:06
Hej dzięki za dokładny opis, w końcu zrobiłem jakąś fajną stronę tytułową do swojej pracy mgr. Wcześniej próbowałem różnych gotowych stylów, klas, ale wszystko to dawało mizerne efekty i kupę błędów.
Twoje rozwiązanie jest proste, ładne i jasne.
pozdro!
Mat:
16 Feb 2010 @ 16:20
Dzięki 🙂 Właśnie tego szukałem!
Seb:
31 May 2010 @ 16:32
Jak zrobić aby ustawienia co do marginesów odnosiły się tylko do strony tytułowej a nie do dalszej części pracy?
praca magisterska w tex na mac os x « Rofrol blog:
3 Feb 2011 @ 13:24
[…] by default no way to put a picture on the title page or cover page that is produced by maketitle, rozwiązanie1, rozwiązanie2 17. LaTeX na morony.pl 18. Podstawy LaTeX-a 19. Wprowadzenie do tworzenia […]
Maciek:
19 Jun 2011 @ 13:36
A jak wstawić np logo uczelni?
Strona tytułowa w Latex’ie » Paweł Mazur:
5 May 2012 @ 23:37
[…] posłuży nam niejednokrotnie. Z tych nieco ciekawszych sam doszukałem się już gotowego rozwiązania, odpowiadającego moim oczekiwaniom. Mimo wszystko nie obyło się bez drobnych […]
Monika:
24 May 2013 @ 12:09
Bardzo dziękuję, znalazłam tu wszystko co było mi potrzebne. Pozdrawiam serdecznie!
KP:
4 Jun 2015 @ 16:07
Nie wiem czemu, ale mi nie wyszło 🙁 Prześledziłem jednak krok po kroku wprowadzając swoje poprawki i wyszło 🙂
Studentka:
4 Dec 2015 @ 10:25
Nie widzi mi polskich znaków…