Трехколоночная строка с фиксированной шириной для первого столбца на базовой сетке

Трехколоночная строка с фиксированной шириной для первого столбца на базовой сетке

Я пытаюсь отформатировать заголовки работ в резюме так, чтобы они соответствовали следующим ограничениям:

  • выравнивается по левому краю company nameи занимает фиксированную ширину, например 2,5 см.
  • Все они job titlesвыровнены друг относительно друга.
  • Годы выровнены по правому краю \textwidth.
  • Текст располагается на базовой сетке.

Вот так:

Work Experience

Bar Company        Job Title                 2017-present
Job description....

Foo Company        Job Title                    2015-2017
Job description....

Это возможно с помощью таблицы, как описано вТри столбца фиксированной ширины для записи резюме. Проблема с таблицей в том, что ее сложнее выровнять по базовой сетке, чем при использовании однострочного абзаца.

Вот что я хочу написать:

\hbox to 4cm {Bar Company} Job Title \hfill 2017-present

Полный контекст и MWE:

Я использую Context с базовой сеткой из двух столбцов. \WorkHeadingи \WorkHeadingTableсоответствующие команды.

\setuppapersize[letter]
\setuplayout[grid=yes]

\define\GoldenRatio{0.61996}
\defineparagraphs[GoldenColumns][n=2]
\setupparagraphs[GoldenColumns][1][width=\GoldenRatio\textwidth]
\define[3]\WorkHeading{#1 -- #2 \hfill #3}

\starttexdefinition WorkHeadingTable #1#2#3
  \startembeddedxtable[option=stretch,loffset=-1.8pt,roffset=-2.1pt]
    \startxrow
      \startxcell[width=4cm] #1 \stopxcell
      \startxcell #2 \stopxcell
      \startxcell \hfill #3 \stopxcell
    \stopxrow
  \stopembeddedxtable
\stoptexdefinition

\showgrid
\showframe

\starttext
\startGoldenColumns
Elon Musk
\blank[3*line]

Work Experience

\WorkHeading{Tesla}{CEO}{2016-present}
\startitemize
\item Nunc eleifend leo vitae magna. Mauris ac felis vel velit tristique
  imperdiet.  Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,
  vitae placerat urna tortor vitae lacus.
\item Aliquam feugiat tellus ut neque.
\stopitemize

\WorkHeadingTable{Solar City}{CEO}{2012-present}
\startitemize
\item Nunc eleifend leo vitae magna. Aenean in sem ac leo mollis blandit.
\item Donec at pede.
\stopitemize

\GoldenColumns
[email protected]
\blank[3*line]
Rockets

Praesent augue. Nam vestibulum accumsan nisl.  Donec at pede.Praesent fermentum
tempor tellus.
\stopGoldenColumns
\stoptext

Минимальный рабочий пример (Context Mkiv)

решение1

Таблица на данном этапе не нужна и кажется излишней. Вы уже сами предложили решение, а именно

\hbox to 4cm {Bar Company} Job Title \hfill 2017-present

Затем вы заметили, что это разделяется на строки. Причина этого в том, что в TeX блок не начинает новый абзац. Hbox будет добавлен к существующему вертикальному списку, и только буква J«Job Title« начнет абзац. Поэтому вам придется вручную начать абзац перед блоком. Вы можете сделать это, указав либо \dontleavehmodeили, если вы хотите подавить блок отступа (в случае, если у вас ненулевой \parindent), с помощью \noindent.

Кроме того, я предполагаю, что вы хотели бы выровнять содержимое hbox по левому краю. Этого можно легко добиться, вставив заполняющий клей справа от содержимого, т. е. \hbox to 4cm{Bar Company\hfil}. В противном случае межсловное пространство будет растянуто так, что содержимое заполнит все поле, что, вероятно, нежелательно в данном случае. (Кроме того, вы получите сообщение в журнале о неполном заполнении hbox).

\setuppapersize[letter]
\setuplayout[grid=yes]

\define\GoldenRatio{0.61996}
\defineparagraphs[GoldenColumns][n=2]
\setupparagraphs[GoldenColumns][1][width=\GoldenRatio\textwidth]
\define[3]\WorkHeading{%
  \dontleavehmode
  \hbox to 4cm{#1\hfil} #2 \hfill #3}

\showgrid
\showframe

\starttext
\startGoldenColumns
Elon Musk
\blank[3*line]

Work Experience

\WorkHeading{Tesla}{CEO}{2016-present}
\startitemize
\item Nunc eleifend leo vitae magna. Mauris ac felis vel velit tristique
  imperdiet.  Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,
  vitae placerat urna tortor vitae lacus.
\item Aliquam feugiat tellus ut neque.
\stopitemize

\WorkHeading{Solar City}{CEO}{2012-present}
\startitemize
\item Nunc eleifend leo vitae magna. Aenean in sem ac leo mollis blandit.
\item Donec at pede.
\stopitemize

\GoldenColumns
[email protected]
\blank[3*line]
Rockets

Praesent augue. Nam vestibulum accumsan nisl.  Donec at pede.Praesent fermentum
tempor tellus.
\stopGoldenColumns
\stoptext

введите описание изображения здесь

Связанный контент