我想要制作这样的标题页:
\setuphead[title][style={\ss\bfd},align=middle]
\definemakeup[titlepage][align=middle]
\starttext
\startfrontmatter
\startmakeup[titlepage]
\title{My very awesome title}
{\ss\tfa Author Name}
\stopmakeup
\stopfrontmatter
\stoptext
根据文档,makeup
默认情况下文本垂直居中。然而,事实似乎并非如此:
标题距离垂直居中还差得很远。我做错了什么?
答案1
您使用了错误的命令。该\title
命令在 ConTeXt 中创建了一个未编号的章节(与 LaTeX 不同,在 LaTeX 中您以这种方式设置文档标题)。
据我所知,没有像\maketitle
ConTeXt 那样的预定义机制,所以你必须自己制作标题页。为了仍然具有某种抽象,你可以定义样式来保存要应用于文本的视觉修饰符。
\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
附录:我仍然认为核心中没有文档标题机制,但有 Wolfgang 的第三方模块title
。
\usemodule[title]
\starttext
\startfrontmatter
\startstandardmakeup
\placetitle
[
title={My very awesome title},
author={Author Name},
date=\currentdate,
]
\stopstandardmakeup
\stopfrontmatter
\stoptext
答案2
正如 Henri Menke 所解释的那样,ConTeXt 不提供排版文档标题的默认机制。假定编写者(或用于排版期刊文章的模块的模块编写者)负责提供适当的机制。
为了生成文档标题,我使用了\startdocument
和\stopdocument
宏,它们可用于设置 pdf 元数据。例如,如果您编译以下文档:
\setupinteraction[state=start]
\startdocument
[
metadata:title=A sample document,
metadata:author=Some author,
metadata:keyword=ConTeXt example,
]
A sample document
\stopdocument
然后pdfinfo filename.pdf
给出:
标题:示例文档 关键字:ConTeXt 示例 作者:某作者 创建者:LuaTeX + ConTeXt MkIV 制作人:LuaTeX-1.0.0 创建日期:2016 年 10 月 6 日星期四 20:28:56 修改日期:2016 年 10 月 6 日星期四 20:28:56 标签: 没有 形 式: 无 页数:1 加密:否 页面尺寸:595.276 x 841.89 pts (A4) 页面腐烂:0 文件大小:5964 字节 已优化:否 PDF 版本:1.7
理想情况下,我喜欢使用相同的界面来生成标题页。为此,我只需将 的键设置为before
生成\setupdocument
标题页的设置。例如,要生成所需的标题页:
\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 ... \stopdocument
代码片段将生成标题页和设置 pdf 元数据。以下是完整的最小示例:
\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