2

I'm trying to design a title page for an interview. I'd like to feature on the page the title, the interviewee, an introduction text… all on a column based layout.

I tried several things: columnsetareas, pseudo-columns, etc. At the moment, the best option seems to go for layers and frames. Here is where I am:

\setuplayout[grid=yes] \showgrid

\setuplayout
[columndistance=12pt,
columns=3]

\starttext

\definelayer [text] \setupbackgrounds [text] [background=text]


\setlayerframed[text]
[column=3,line=3]
[align=normal,frame=off,strut=no, width=\layoutcolumnwidth]
{\startlines[before=\vss,after=\vss]
Here comes some text.
\stoplines}


\stoptext

Among several things, I don't manage to align a frame at the bottom of the page (that would grow from bottom to top). Also, I get a slight padding in my frames around the text (even with frame=off).

This is a Scribus mockup of what I'd like to achieve:

Scribus mockup

Any hints?

Thanks a lot.

2
  • How important is the vertical grid in this case? I would probably use MetaFun and just position frames at the right places, but not vertically adjusted to some grid.
    – mickep
    Jan 20 at 16:07
  • Yes, grid snapping would be pretty cool :)
    – Alex
    Jan 20 at 22:32

1 Answer 1

3

I do not understand the grid part here. I'd just placed the text where I thought it looked fine. After all, it is just the title page, right?

In the example below you get something to play with. Note that

  • we use a strut for the font size 10pt (set on 15pt), but not for the bigger sizes (test it!).
  • we have set up font sizes that have an interlinespace that is an integer multiple of the 15pt.
  • we have used location=low. This seems to be the correct way to "anchor on bottom".

This is very sensitive to small perturbations, so ...

\setuppapersize[A4,landscape]

\definebodyfontenvironment
  [10pt]
  [interlinespace=15pt]

\setupbodyfont[10pt]

\definefont
  [myfontone]
  [Serif*default at 20pt]
  [line=30pt]

\definefont
  [myfonttwo]
  [Serif*default at 25pt]
  [line=30pt]

\definefont
  [myfontthree]
  [SerifBold*default at 90pt]
  [line=120pt]

% To use the page area in the example
\setuplayout[tight]

\setuplayout
  [grid=yes,
   columns=4,
   columndistance=10pt]

\showgrid
\showstruts

\definelayer
  [text] 

\setupbackgrounds
  [text]
  [background=text]

% To use to step down a certain
% number of lines. 
\starttexdefinition LayoutLineOffset #1
  \the\dimexpr\topskip-\strutht+#1\lineheight-\lineheight\relax
\stoptexdefinition


\startbuffer[zero]
Typesetting on the grid involves arranging text and images in a structured layout using a grid system. This approach helps to create a consistent and balanced design, and can also aid in the responsive design of a website or publication. It is commonly used in print design and digital design, such as web design and user interface design. However, it also has its drawbacks. One of the main limitations is that it can restrict the flexibility in the design, as elements must conform to the grid structure. 
\stopbuffer

\startbuffer[one]
This can make it difficult to create asymmetrical or diagonal compositions and may result in a lack of visual interest or creativity in the design. When not used effectively, the grid can also make the design look rigid or unbalanced. 
\stopbuffer

\startbuffer[two]
Finally, if the grid is overused, it can become too formulaic or predictable in the layout, leading to a lack of creativity and uniqueness in the design.
\stopbuffer

\startbuffer[three]
No grid!
\stopbuffer


\starttext

\setlayerframed
  [text]
  [y=\LayoutLineOffset{1},
   x=\layoutcolumnoffset{4}]
  [align=verytolerant,
   offset=overlay,
   location=top,
   width=\layoutcolumnwidth]
  {\begstrut \getbuffer[zero] \endstrut}


{\myfontone\setupinterlinespace
\setlayerframed
  [text]
  [y=\LayoutLineOffset{12},
   x=\layoutcolumnoffset{2}]
  [align=verytolerant,
   offset=overlay,
   width=\dimexpr2\layoutcolumnwidth+\layoutcolumndistance\relax,
   location=low]
  {\getbuffer[one]}%\begstrut \getbuffer[one] \endstrut}
}


{\myfonttwo\setupinterlinespace
\setlayerframed
  [text]
  [y=\LayoutLineOffset{19},
   x=\layoutcolumnoffset{1}]
  [align=verytolerant,
   offset=overlay,
   width=\dimexpr2\layoutcolumnwidth+\layoutcolumndistance,
   location=low]
  {\getbuffer[two]}%\begstrut \getbuffer[two] \endstrut}
}

{\myfontthree\setupinterlinespace
\setlayerframed
  [text]
  [y=\LayoutLineOffset{1},
   x=\layoutcolumnoffset{1}]
  [align=verytolerant,
   offset=overlay,
   width=\dimexpr3\layoutcolumnwidth+2\layoutcolumndistance,
   location=low]
  {\getbuffer[three]}%\begstrut \getbuffer[three] \endstrut}
}

\null% Since other stuff is put in layers...

\stoptext

Stuff on the grid

3
  • 1
    Thanks a lot! Very very helpful :)
    – Alex
    Jan 24 at 21:10
  • Wouldn't it be better to do the font changes inside the \setlayerframed using foregroundstyle key rather than changing the font outside the layer? Note that you can also use line=2, column=3 etc instead of doing calculations based on x and y values.
    – Aditya
    Jan 25 at 18:44
  • I think I tried that, but that I could not get it to respect the grid. If you get it working, I encourage you to add that as an answer, since that would indeed be a nicer way.
    – mickep
    Jan 25 at 19:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .