标题未在 ConTeXt 中垂直居中

标题未在 ConTeXt 中垂直居中

我想要制作这样的标题页:

\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 中您以这种方式设置文档标题)。

据我所知,没有像\maketitleConTeXt 那样的预定义机制,所以你必须自己制作标题页。为了仍然具有某种抽象,你可以定义样式来保存要应用于文本的视觉修饰符。

\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

相关内容