ConTeXt 将图像插入标题中

ConTeXt 将图像插入标题中

我需要在 ConTeXt 的页眉中插入三幅图像,并在页脚中插入具体信息。

LaTeX 中的等效代码片段是:

\usepackage{fancyhdr}
\renewcommand{\title}[1]{\gdef\@title{#1}\gdef\mytitle{#1}}
\title{Page}
\pagestyle{fancy}
\setlength\headheight{48pt}
\lhead{\includegraphics[height=1.5cm]{Soft-in_logo}}
\rhead{\includegraphics[height=1.5cm]{SQS_ISO_logo\includegraphics[height=1.5cm]{IQNet_logo}}
\rfoot{Page \thepage\ of \pageref{LastPage}}
\cfoot{\currfilename}
\lfoot{\mytitle}

我也想在页眉之后和页脚之前添加一行(LaTeX 代码片段不会这样做)。

注意:我是一个完全的 ConTeXt 新手,我正在努力赶上。

答案1

这可能让你走上正轨。你可以使用设置命令来定义页眉和页脚命令,然后分别使用适当的页眉或页脚命令应用它们。

我把页面布局(边距等)留给了您,但弄清楚并不难,因为 ConTeXt wiki 页面非常具有描述性。

\setuppagenumbering[alternative=singlesided]

\def\title{Test}

\setupheadertexts[\setups{simplehead}]
\setupfootertexts[\setups{simplefoot}]

\startsetups[simplehead]
  \externalfigure[example-image.pdf][height=1.5cm]
  \hfill
  \externalfigure[example-image.pdf][height=1.5cm]
\stopsetups
\startsetups[simplefoot]
  \rlap{\title}
  \hfill
  \jobname
  \hfill
  \llap{Page \pagenumber\ of \lastpagenumber}
\stopsetups

\starttext
Test
\page
Quack
\stoptext

答案2

这是一个与 TeXnician 稍有不同的解决方案:

\setuppagenumbering[location=]
\useMPlibrary[dum]

\definemeasure[headerheight][1.5cm]
\definemeasure[ruledistance][5pt]

\setuplayout
  [header=\measure{headerheight},
   headerdistance=2\measure{ruledistance},
   footerdistance=2\measure{ruledistance},
   footer=\lineheight,
   height=middle,
  ]

\defineexternalfigure[header][height=\measure{headerheight}]

\setupheadertexts[{\externalfigure[logo-1.pdf][header]}]
                 [{\externalfigure[logo-2.pdf][header]}]
\setupfootertexts[\jobname]
\setupfootertexts[title][Page \pagenumber\ of \lastpagenumber]

\setupbackgrounds[header][text][bottomframe=on, frameoffset=\measure{ruledistance}]
\setupbackgrounds[footer][text][topframe=on,    frameoffset=\measure{ruledistance}]

\starttext
\starttitle[title=My sample document]
Test
\page
Quack
\stoptitle
\stoptext

一些评论:

  • 我定义measures 表示在文档中多次使用的长度。
  • 我用来defineexternalfigure指定多个图形共享的图形设置。
  • 我使用两个参数版本,\setupheadertexts[][]而不是手动对齐。这与 fancyhdr 包的本质类似。
  • marking当前的会title自动存储为title。因此您无需定义新的宏来存储其值。也可以使用 来检索它\getmarking[title]

相关内容