며칠 전 저는 상황에 맞게 장 제목을 사용자 정의하는 방법에 대해 질문했습니다(여기). @mickep이 답변을 제공했지만 내 질문은 그다지 적절하지 않았습니다.
이는 Typograph 저널 Vol 01(2014)의 표지와 @nochedeespectros라는 별명을 가진 인스타그램 사용자의 디자인을 기반으로 한 것입니다.
그것을 달성하기 위해 이번에는 이 답변의 코드를 가지고 놀았습니다.이것
결과는
\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
개요:
한 장을 자세히 살펴보면 다음과 같습니다.