Kein Autor, keine Lücke

15 views
Skip to first unread message

Friedrich Vosberg

unread,
Dec 16, 2021, 5:29:13 PM12/16/21
to
Wie vermeidet man den vertikalen Abstand zwischen dem Titel und dem Datum?

\documentclass{article}
\title{Titel}
%\author{not given}
\date{Datum}
\begin{document}
\maketitle
\end{document}

Ignatios Souvatzis

unread,
Dec 20, 2021, 8:10:09 AM12/20/21
to
Hab ich mal gemacht. Meine Lösung war meiner Erinnerung
nach folgende. (Falls sonst kein \date angegeben worden
wäre, \author{\today} verwenden.)

\documentclass{article}
\title{Titel}
\author{Datum}
\date{}
\begin{document}
\maketitle
\end{document}


--
A medium apple... weighs 182 grams, yields 95 kcal, and contains no
caffeine, thus making it unsuitable for sysadmins. - Brian Kantor

Marcus Gloeder

unread,
Dec 23, 2021, 7:09:51 AM12/23/21
to
Hallo alle zusammen,

gerade habe ich folgendes getestet:

\documentclass{article}
\begin{document}
\title{Titel}
\date{\vspace{-24pt}Datum}
\maketitle
\end{document}

Es funktioniert auch andersherum:

\documentclass{article}
\begin{document}
\title{Titel\vspace{-24pt}}
\date{Datum}
\maketitle
\end{document}

Wichtig dabei ist, dass \title und \date nicht in der Präambel, sondern im
Dokument verwendet werden, weil der Abstandsbefehl in der Präambel nicht
verwendet werden kann. Außerdem ist folgendes völlig wirkungslos:

\documentclass{article}
\begin{document}
\title{Titel}
\vspace{-24pt}
\date{Datum}
\maketitle
\end{document}

Wahrscheinlich wird hier der Abstandsbefehl durch \maketitle einfach
ignoriert.

Die Lösung von Ignatios:

\documentclass{article}
\title{Titel}
\author{Datum}
\date{}
\begin{document}
\maketitle
\end{document}

hat meiner Ansicht nach den Nachteil, dass dann zwar nicht mehr zwischen
Titel und Datum, sehr wohl aber zwischen Datum und Fließtext ein
zusätzlicher Abstand auftaucht (der an der Stelle nur weniger auffällig
ist).

Viele Grüße
Marcus

--
PMs an: m.gl...@gmx.de

Ulrich Diez

unread,
Dec 23, 2021, 3:07:04 PM12/23/21
to
Friedrich Vosberg schrieb:
\show\maketitle ergibt bei mir unter Verwedung der Dokumentklasse article:

> \maketitle=\long macro:
->\par \begingroup \renewcommand \thefootnote {\@fnsymbol \c@footnote }\def \@m
akefnmark {\rlap {\@textsuperscript {\normalfont \@thefnmark }}}\long \def \@ma
kefntext ##1{\parindent 1em\noindent \hb@xt@ 1.8em{\hss \@textsuperscript {\nor
malfont \@thefnmark }}##1}\if@twocolumn \ifnum \col@number =\@ne \@maketitle \e
lse \twocolumn [\@maketitle ]\fi \else \newpage \global \@topnum \z@ \@maketitl
e \fi \thispagestyle {plain}\@thanks \endgroup \setcounter {footnote}{0}\global
\let \thanks \relax \global \let \maketitle \relax \global \let \@maketitle \r
elax \global \let \@thanks \@empty \global \let \@author \@empty \global \let \
@date \@empty \global \let \@title \@empty \global \let \title \relax \global \
let \author \relax \global \let \date \relax \global \let \and \relax

\show\@maketitle ergibt:

\@maketitle=macro:
->\newpage \null \vskip 2em\begin {center}\let \footnote \thanks {\LARGE \@titl
e \par }\vskip 1.5em{\large \lineskip .5em\begin {tabular}[t]{c}\@author \end {
tabular}\par }\vskip 1em{\large \@date }\end {center}\par \vskip 1.5em.

Man könnte also bspw \@maketitle so umdefinieren, dass geprüft wird, ob \author
angegeben wurde und nur in diesem Fall die entsprechenden vertikalen Abstände
setzen:


\documentclass{article}

\makeatletter
\@ifdefinable\saved@author{\let\saved@author=\@author}%
\newcommand\CheckAuthor{%
\ifx\@author\saved@author
\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi
}%
\renewcommand\@maketitle{%
\newpage\null\vskip 2em %
\begin{center}%
\let\footnote\thanks
{\LARGE\@title\par}%
\vskip 1.5em %
\CheckAuthor{%
{%
\large
\lineskip .5em\begin{tabular}[t]{c}\@author\end{tabular}\par
}%
\vskip 1em %
}{\@author}% <- erzeugt Warnmeldung wenn \author nicht angegeben wurde.
{\large\@date}%
\end{center}%
\par\vskip1.5em %
}%
\makeatother

\title{Titel}
%\author{Me, myself and I}
\date{Datum}
\begin{document}
\maketitle
\end{document}

Ich hoffe, dieses Posting kommt an, ohne dass Google Groups die
Zeileneinrückungen im Quelltext kaputtmacht.

Für Rückmeldung, ob der Code mit eingerückten Zeilen angezeigt
wird, wäre ich dankbar.

Mit freundlichem Gruß

Ulrich

Ulrich Diez

unread,
Dec 23, 2021, 3:36:16 PM12/23/21
to
Marcus Gloeder schrieb:

> gerade habe ich folgendes getestet:
>
> \documentclass{article}
> \begin{document}
> \title{Titel}
> \date{\vspace{-24pt}Datum}
> \maketitle
> \end{document}
>
> Es funktioniert auch andersherum:
>
> \documentclass{article}
> \begin{document}
> \title{Titel\vspace{-24pt}}
> \date{Datum}
> \maketitle
> \end{document}
>
> Wichtig dabei ist, dass \title und \date nicht in der Präambel, sondern im
> Dokument verwendet werden, weil der Abstandsbefehl in der Präambel nicht
> verwendet werden kann.

Ob der Abstandsbefehl in der Präambel verwendbar ist, sei dahingestellt.
Aber man kann ihn problemlos auch dann im Argument von
\title bzw \date _angeben_, wenn man \title bzw \date in der Präambel
angibt, denn so oder so wird er erst innerhalb der document-Umgebung
_ausgeführt_, wenn LaTeX das \maketitle-Makro expandiert.

Bei mir funktionieren alle vier Varianten:

\documentclass{article}
\begin{document}
\title{Titel}
\date{\vspace{-24pt}Datum}
\maketitle
\end{document}


\documentclass{article}
\begin{document}
\title{Titel\vspace{-24pt}}
\date{Datum}
\maketitle
\end{document}

\documentclass{article}
\title{Titel\vspace{-24pt}}
\date{Datum}
\begin{document}
\maketitle
\end{document}

\documentclass{article}
\title{Titel}
\date{\vspace{-24pt}Datum}
\begin{document}
\maketitle
\end{document}

> Außerdem ist folgendes völlig wirkungslos:
>
> \documentclass{article}
> \begin{document}
> \title{Titel}
> \vspace{-24pt}
> \date{Datum}
> \maketitle
> \end{document}
>
> Wahrscheinlich wird hier der Abstandsbefehl durch \maketitle einfach
> ignoriert.

\title definiert das interne Makro \@title um.
\date definiert das interne Makro \@date um.
\author definiert das interne Makro \…@author um.

\maketitle setzt den Titel unter Verwendung dieser Makros
und bekommt gar nicht mit, dass da zwischen den
Umdefinier-Anweisungen noch ein \vspace{-24pt}
herumschwirrt, welches, weil es ganz am Anfang der Seite
kommt, eh als "discardable glue" wieder entfernt wird.

Insofern braucht \maketitle den Abstandsbefehl nicht mal
zu ignorieren, weil er völlig unabhängig von \maketitle
dasteht und völlig unabhängig von \maketitle am Seitenanfang
keine Auswirkungen hat.

Wenn Du Auswirkungen am Seitenanfang sehen möchtest, nehme
die "gesternte" Variante, also \vspace*{-24pt} anstatt \vspace{-24pt} .

Die Auswirkung, die Du sehen wirst, ist, dass der Titel erst
nach einer leeren Seite kommt:

\maketitle führt im einspaltigen Textsatz unter anderem
\newpage aus.

Und da \vspace*{...}, also vertikaler Abstand, der mit der
gesternten Variante erzeugt wird, an Seitenanfängen nicht
entfernt wird, ist auf der Seite schon was drauf, nämlich ein
vertikaler Abstand. Also ergibt \maketitle -> \newpage, dass
die Seite, auf der schon was drauf ist, nämlich der durch
\vspace* erzeugte vertikale Abstand, ausgegeben wird, und
dann auf einer neuen Seite der Titel gesetzt wird.

Mit freundlichem Gruß

Ulrich

Ignatios Souvatzis

unread,
Dec 24, 2021, 7:40:08 AM12/24/21
to
Marcus Gloeder wrote:

> gerade habe ich folgendes getestet:

> \date{\vspace{-24pt}Datum}

Wieso 24pt, und nicht 23pt oder 25pt?

(Kurz: das ist abhaengig von benutztem Font etc.)

-is

Olaf Meltzer

unread,
Dec 24, 2021, 1:12:38 PM12/24/21
to
Am 23.12.21 um 21:07 schrieb Ulrich Diez:
Sieht so aus, als ob es korrekt übermittelt wurde -- und es funktioniert
wie beabsichtigt.

Frohe Weihnachten -- Olaf Meltzer

Marcus Gloeder

unread,
Dec 24, 2021, 6:53:16 PM12/24/21
to
Am 24.12.21 13:00, schrieb Ignatios Souvatzis:
>Wieso 24pt, und nicht 23pt oder 25pt?
>
>(Kurz: das ist abhaengig von benutztem Font etc.)

Natürlich. Das ist auch nur ein Beispiel, das zeigt, wie es generell gehen
kann. Welche Einstellung Du nimmst hängt einerseits von Deinem Dokument und
andererseits von Deinem Gefühl für Abstände ab.


Hast Du auch die Postings von Ulrich Diez gelesen?

> -is

Viele Grüße und frohe Weihnachten

Ulrich Diez

unread,
Dec 26, 2021, 10:33:31 AM12/26/21
to
Ignatios Souvatzis schrieb:
> Marcus Gloeder wrote:
>
> > gerade habe ich folgendes getestet:
> > \date{\vspace{-24pt}Datum}
>
> Wieso 24pt, und nicht 23pt oder 25pt?
>
> (Kurz: das ist abhaengig von benutztem Font etc.)

Es ist richtig, dass es vom Font abhängt.

Es ist auch richtig, dass die Angabe 24pt bei diesem speziellen
Fall einigermaßen passt. ;-)

Bei der Dokumentklasse article wird durch \maketitle
bzw \@maketitle die Autorangabe in \large gesetzt.
Danach wird auf die normale Schriftgröße
zurückgeschaltet und ein vertikaler Abstand der Höhe 1em
gesetzt,

Wenn \author nicht angegeben wird, bekommt man
bei Verwendung von article also einen vertikalen Abstand,
der wegen der leeren Zeile mit der leeren Angabe des Autors
der Summe aus dem Basislinienabstand bei Schriftgröße \large
und 1em der Schriftgröße \normalsize entspricht.
Sowohl der Basislinienabstand als auch 1em hängen
von der jeweiligen Schriftart und der jeweiligen Schriftgröße
ab.
1em entspricht der Breite eines Gevierts, welche
wiederum häufig annähernd der Breite des Großbuchstabens
M und der Breite eines Geviertstriches und häufig gleichzeitig
auch der Schriftgröße selbst entspricht.

Unter den bei der Dokumentklasse article geltenden
Standardbedingungen, also ohne Änderung der
Schriftart und ohne Angabe einer Schriftgrößen-
Option im \documentclass-Befehl, beträgt der
Basislinienabstand bei Schriftgröße \large 14pt,
und die Länge 1em bei normaler Schriftgröße (10pt)
wird umgerechnet auf die Einheit 1pt durch
\showthe\dimexpr 1em\relax mit
10.00002pt angegeben, was in diesem Fall also
tatsächlich in etwa der Schriftgröße selbst (10pt)
entspricht.
Das macht zusammen also ungefähr einen vertikalen
Abstand der Länge 14pt + 10pt = 24pt. :->

Man könnte also auf die Idee kommen, in Richtung der
von Markus Gloeder anheimgestellten Vorgehensweise
etwas in der folgenden Art zu basteln:

\documentclass{article}
\title{Titel}
%\author{Me, myself and I}
%\date{Datum}
\date{{\large\vskip-\baselineskip\normalsize\vskip-1em}Datum}
\begin{document}
\maketitle
\end{document}

Aber das halte ich nicht für empfehlenswert, denn dabei
rutscht die Sequenz
{\large\vskip-\baselineskip\normalsize\vskip-1em}
in die Definition des internen \@date-Befehls mit
hinein, sodass man diesen nur noch an einer ganz
bestimmten Stelle im \@maketitle-Befehl verwenden kann,
um das Datum auszugeben.
An anderen Stellen kann man ihn dann nicht mehr
verwenden, weil man an anderen Stellen vemutlich eher
nicht möchte, dass die Datumsangabe (unter Umständen
mal fröhlich den Absatz beendet und in den vertikalen
Modus umschaltet und) vertikal nach oben verschoben

Ulrich Diez

unread,
Dec 26, 2021, 10:40:23 AM12/26/21
to
Olaf Meltzer schrieb:
> Am 23.12.21 um 21:07 schrieb Ulrich Diez:
[...]
> > Ich hoffe, dieses Posting kommt an, ohne dass Google Groups die
> > Zeileneinrückungen im Quelltext kaputtmacht.
> >
> > Für Rückmeldung, ob der Code mit eingerückten Zeilen angezeigt
> > wird, wäre ich dankbar.
> Sieht so aus, als ob es korrekt übermittelt wurde -- und es funktioniert
> wie beabsichtigt.

Danke für die Rückmeldung.

Dann macht google-groups derzeit Zeileneinrückungen im
Code also nicht schon beim Abschicken sondern erst beim
Anzeigen von Postings kaputt.

> Frohe Weihnachten -- Olaf Meltzer

Danke. Desgleichen. :-)

Mit freundlichem Gruß

Ulrich
Reply all
Reply to author
Forward
0 new messages