ConTeXt で水平線と複数のテキスト要素を使用した派手なタイトル/見出しを作成する

ConTeXt で水平線と複数のテキスト要素を使用した派手なタイトル/見出しを作成する

次のようなタイトルを作成したいと思います。

_________________________________________________________________________________
|                             |                                    | Sufix      |
| Prefix unwrapped (CAPS)     | Unwrapped title (Small Caps)       | wraped     |
|                             |                                    | as needed  |
=================================================================================
        Ba ba                                  Ba ba
•     Sub text 1     •   Sub text 2   •      Sub text 3       •    Sub text 4   •
          Ba                                Black Sheep

次の条件を満たす必要があります:

  • ページいっぱいに広がる
  • 色付き下線(=)
  • 上、左、右、真ん中に問題はありません(|、_)
  • 区切り文字 (•) で区切られたサブテキスト。区切り文字は中央揃えまたは上揃えで、最適なサイズに調整されます。

これまで私が行ったことは次のとおりです (タイトル/ヘッダーの最初の部分):

\define[3]\TITLE{\midaligned{\framed[frame=off,align=middle,bottomframe=on,framecolor=blue]
                                {\inframed[frame=off]{{\tfa\WORD#1}: {\tfb\sc#2}}\inframed[frame=off]{{\tfa, #3}}}}}

しかし、これでは望ましい結果は得られません。

どうすればいいのですか?

答え1

仕様を完全に理解していないので、繰り返し回答してみたいと思います。

  • の幅を想定していますPrefix + Title < \textwdith。そうでない場合は、これら 2 つのうちの 1 つも折り返す必要があります。
  • 垂直方向にどのように揃えるかはPrefix明確ではありません。私は中央揃えを選択しました(これはConTeXtで呼ばれます)Titlelohi

概念的には、最も簡単な方法はテーブルを使用することです。したがって、基本的なマクロは次のようになります。

\define[3]\TITLE
  {\startTABLE[setups=table:title]
      \NC #1 \NC #2 \NC #3 \NC \NR
    \stopTABLE}

ここで必要なのは、table:title適切なフォーマットを取得するための設定を定義することだけです。これは次のように実行できます。

\startsetups table:title
  \setupTABLE[each][each][frame=off,bottomframe=on,rulethickness=2bp]
  \setupTABLE[column][1][style=WORD, align=lohi]
  \setupTABLE[column][2][style=\sc,  align=lohi]
  \setupTABLE[column][3][align={hyphenated,tolerant}]
\stopsetups

それでおしまい!

出力を含む完全なコードは次のとおりです。

\startsetups table:title
  \setupTABLE[each][each][frame=off,bottomframe=on,rulethickness=2bp]
  \setupTABLE[column][1][style=WORD, align=lohi]
  \setupTABLE[column][2][style=\sc,  align=lohi]
  \setupTABLE[column][3][align={hyphenated,tolerant}]
\stopsetups

\define[3]\TITLE
  {\startTABLE[setups=table:title]
      \NC #1 \NC #2 \NC #3 \NC \NR
    \stopTABLE}

\showframe % To visualize the page frame
\starttext

\TITLE{prefix}{Unwrapped title}{\dorecurse{5}{A very long text\space}}

\stoptext

これにより

ここに画像の説明を入力してください

上部フレームとサイドフレームは、\showframeテーブルがページ境界の端まで拡張されていることを示すためだけのものです。

関連情報