文脈に応じて章のタイトルをカスタマイズする

文脈に応じて章のタイトルをカスタマイズする

数日前、私は文脈に応じて章のタイトルをカスタマイズすることについて質問しました(ここ)。@mickep が回答をくれましたが、私の質問はあまり適切ではありませんでした。

私の目的はこのようなものを手に入れることですここに画像の説明を入力してください

これは、Typograph journal Vol 01 (2014) の表紙と、@nochedeespectros というニックネームの Instagram ユーザーによるデザインに基づいています。

それを達成するために、今回はこの回答のコードで遊んでいましたこれ

結果は

\mainlanguage[es] % Idioma = Español

\setuppapersize[A4] % Tamaño del papel

\setupbodyfont
[modern,12pt] % Fuente = Latin Modern, 12 puntos


%\setuphead % Formato de los capítulos
%[chapter]
%[style=\bfc]

\startsetups[titles_table]
    \setupTABLE[r][each][align=lohi,frame=off]
\setupTABLE[2][ leftframe=on,loffset=5mm,rulethickness=2pt,framecolor=darkred,background=color,backgroundcolor=red 
]
\stopsetups

\define[2]\titlesT{%
\bTABLE[setups=titles_table]
    \bTR
         \bTD[nr=2] #1 \hspace[oneem] \eTD  \bTD  #2\eTD    
                                                         \eTR
    \bTR
                                  \bTD \setupinterlinespace[small]\placecontent\eTD
                                                                                   \eTR    
\eTABLE
}

\definehspace[oneem][-.50 em]
\starttexdefinition MyNumberChapterCommand #1
    \tfe #1
    % {\tfe #1}% Test this instead of the one above
    % #1% Test this if the numberstyle is enabled
    \hspace[oneem]
    %\blackrule[
    %    height=\strutheight,% I changed \lineheight to \strutheight
    %    depth=\strutdepth,
    %    width=2pt,
    %    color=darkred,
    %]
\stoptexdefinition


% \definebodyfont[12pt][rm][tfe=Serif at 36pt]
\definefontsize[e]
\definebodyfontenvironment[default][e=8]% 8*12=108

\setuphead[chapter][
    numbercommand=\MyNumberChapterCommand,
    command=\titlesT,
    style=\bfc,
    page=no,%Just to have them on the same page here   
    % numberstyle={\definedfont[Serif*default at 36pt]},
]


\setuphead[section] [textstyle=\bf, numberstyle=\bf]

\definehead[paragraph][subsubsubsection]
\setuphead [paragraph]
           [
             number=no, % To imitate LaTeX
             textdistance=0pt,
             commandafter={\quad\bullet\quad\null},
             alternative=text,
             style=\tf,
          ]

\definehead[contenttitle][title]
\setuphead[contenttitle][page=no]

\starttext

 \startfrontmatter
\contenttitle{\headtext{content}}
\placecontent
\stopfrontmatter

\startbodymatter

\chapter{Here start}
\section{The first section}
\subsection{The first subsection}
\input khatt-en

\subsection{The second subsection}
\input khatt-en

\section{The second section}
\subsection{Another subsection}
\input khatt-en

\chapter{Another chapter}
\section{More sections}
\subsection{More subsections}
\input khatt-en

\stopbodymatter
\stoptext

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

問題はいくつかあります:

  • 左の縦線を、章番号の上(最初の画像のように)に来るように左に動かすことができません。

  • ミニ目次のフォント サイズを小さくすることができませんでした。(本文のフォント サイズが 12pt の場合、ミニ目次のフォント サイズは 10pt または 9pt にすることを検討してください。) ただし、本文のフォント サイズが 11pt に変更された場合に備えて、いくつかの基準を適用できるようにしておきたいと思います。

  • ドキュメントで提案されているような行間隔を設定できませんでした。

    \start

    \setupinterlinespace[small]

    \placecontent

    \stop

  • このコードでは、冒頭の目次のタイトルも影響を受けます。現時点では、目次のタイトルのデフォルト スタイルを確認できればよいと思います。目次については別のカスタマイズを考えていますが、その場合は別の機会に説明します。

  • セクションのみを含むミニ目次を生成することができませんでした (オプションを使用してもcriterium=section)。

  • \setuplabeltext[chapter=Chapter~]最初の画像のように、章タイトルのラベル ( ) を章タイトルの上に表示できませんでした。

  • 章番号のベースとミニ目次のベースを一致させる方法がわかりません。また、章番号の上部が章タイトルのラベルの上部と一致します。

  • このカスタマイズのサイズは、一般的に、各章のセクション数によって決まることに気付きました。そうであれば、各章で、関係する可能性のあるさまざまなフォント サイズをカスタマイズできるコマンドを作成すると便利ではないでしょうか。

PD: 赤色はあくまでもガイドとして表示されています。白色を使用して最初の画像の効果を実現するのが目的です。英語は私の母国語ではないので、必要な情報をすべて提供し、自分の考えを適切に表現できたことを願っています。

答え1

よりシンプルなソリューションで更新

コンテンツに応じて数値を増やしたいので、MetaFun を使用します。今回はレイヤーなしですが、垂直距離を補正する必要がないのが利点です。

\setupbodyfont[bonum]

% We do not set the chapterlabel but use our own
\mainlanguage[es]
\setuplabeltext[es][mychapter=Capítulo]

% The table of contents
\definecombinedlist[MyContent]

\setupcombinedlist
  [MyContent]
  [list={section},
   criterium=chapter]

\setuplist[section][
  alternative=c,
  width=2em,
  style={\switchtobodyfont[7pt]\setupinterlinespace[line=9pt]},
]

\startuseMPgraphic{MyChapterGraphic}
  picture toc, num ;
  % You can play with the width, offset, fontsizes and so on.
  toc := textext("\unframed[width=8cm,align=normal,offset=5mm,leftframe=on,rulethickness=1pt]
                  {%
                  {\switchtobodyfont[18pt]\labeltext{mychapter}}\blank[small]
                  {\switchtobodyfont[28pt] \MPtext{2}}\blank[big]
                  \placecombinedlist[MyContent]
                  }") ;
  toc := toc shifted (-llcorner toc) ;
  num := textext("\MPtext{1}") ;
  num := num ysized 0.8(ypart ulcorner toc) ;
  num := num shifted (-llcorner num) ;
  % The 0.55 decides how much to shift the number left, we shift 55%
  % The 0.1 here satisfies 2*0.1+0.8=1, where 0.8 is the number above
  num := num shifted (-0.55(xpart lrcorner num), 0.1(ypart ulcorner toc) ) ;
  % The 10cm is just to make sure that we are off so that we do not cut to the left of the number
  clip num to ((-10cm,0) -- (0,0) -- ulcorner toc -- (-10cm, ypart ulcorner toc) -- cycle) ;
  draw toc ;
  draw num ;
  % This midaligns the content
  currentpicture := currentpicture xshifted 0.5(TextWidth - xpart lrcorner toc - xpart llcorner num) ;
  setbounds currentpicture to unitsquare xyscaled (TextWidth, ypart urcorner toc) ;
\stopuseMPgraphic

\define[2]\MyChapterCommand{%
  \setnostrut% Try without (and add \showstruts to see)
  \setMPtext{1}{#1}%
  \setMPtext{2}{#2}%
  \useMPgraphic{MyChapterGraphic}
}

\setuphead
  [chapter]
  [header=high,
   command=\MyChapterCommand,
   numberstyle=\bf,
   textstyle=\bf]

\starttext

\dorecurse{10}{
  \chapter[title={Level #1}]
  \dorecurse{#1}{
    \section[title={Sublevel ##1}]
    \subsection[title={A subsection}]
    \samplefile{ward}
  }
}

\stoptext

概要:

概要

1 つの章を詳しく見てみましょう。

1章

関連情報