Title not vertically centered in ConTeXt
As Henri Menke explained, ConTeXt does not provide a default mechanism for typesetting document titles. It is assumed that the writer (or a module writer, for modules used to typeset journal articles) is responsible for providing an appropriate mechanism.
To generate titles for my documents, I hook into the \startdocument
and \stopdocument
macros, which can be used to setup pdf metadata. For example, if you compile the following document:
\setupinteraction[state=start]
\startdocument
[
metadata:title=A sample document,
metadata:author=Some author,
metadata:keyword=ConTeXt example,
]
A sample document
\stopdocument
then pdfinfo filename.pdf
gives:
Title: A sample document Keywords: ConTeXt example Author: Some author Creator: LuaTeX + ConTeXt MkIV Producer: LuaTeX-1.0.0 CreationDate: Thu Oct 6 20:28:56 2016 ModDate: Thu Oct 6 20:28:56 2016 Tagged: no Form: none Pages: 1 Encrypted: no Page size: 595.276 x 841.89 pts (A4) Page rot: 0 File size: 5964 bytes Optimized: no PDF version: 1.7
Ideally, I like to use the same interface to generate the title page as well. To do so, I simply set the before
key of \setupdocument
to a setup that generates the title page. For example, to generate the titlepage that you want:
\startsetups document:title
\startstandardmakeup[align=middle]
{\ss\bfd\setupinterlinespace
\documentvariable{metadata:title} \endgraf}
\blank[big]
{\ss\tfb\setupinterlinespace
\documentvariable{metadata:author} \endgraf}
\blank[medium]
{\ss\tf\setupinterlinespace
\documentvariable{metadata:date} \endgraf}
\stopstandardmakeup
\stopsetups
\setupdocument[before=\setups{document:title}]
Then, the above \startdocument ... \stopdocument
snippet will generate the title page and set the pdf metadata. Here is the complete minimal example:
\setupinteraction[state=start]
\startsetups document:title
\startstandardmakeup[align=middle]
{\ss\bfd\setupinterlinespace
\documentvariable{metadata:title} \endgraf}
\blank[big]
{\ss\tfb\setupinterlinespace
\documentvariable{metadata:author} \endgraf}
\blank[medium]
{\ss\tf\setupinterlinespace
\documentvariable{metadata:date} \endgraf}
\stopstandardmakeup
\stopsetups
\setupdocument[before=\setups{document:title}]
\startdocument
[
metadata:title=A sample document,
metadata:author=Some author,
metadata:keyword=ConTeXt example,
metadata:date=\currentdate,
]
A sample document
\stopdocument
You are using the wrong command. The \title
command creates an unnumbered chapter in ConTeXt (contrary to LaTeX where you set the document title this way).
To my knowledge, there is no predefined mechanism like \maketitle
in ConTeXt, so you have to make up the titlepage on your own. To still have some kind of abstraction you can define styles to hold the visual modifiers to be applied to the text.
\definemakeup[titlepage][align=middle]
\definealternativestyle[titlestyle][\ss\bfd][]
\definealternativestyle[authorstyle][\ss\tfa][]
\starttext
\startfrontmatter
\startmakeup[titlepage]
\titlestyle{My very awesome title}
\blank[big]
\authorstyle{Author Name}
\stopmakeup
\stopfrontmatter
\stoptext
Addendum: I still think there is no mechanism for document titles in the core but there is Wolfgang's third party module title
.
\usemodule[title]
\starttext
\startfrontmatter
\startstandardmakeup
\placetitle
[
title={My very awesome title},
author={Author Name},
date=\currentdate,
]
\stopstandardmakeup
\stopfrontmatter
\stoptext