有没有更简单的方法来“角框”一段文本?

有没有更简单的方法来“角框”一段文本?

我编写了一个 LaTeX2e 和 expl3 的大杂烩来产生以下效果:

输出

我所拥有的是丑陋的意识形态不正确。我正在寻找一种更好的方法来做同样的事情。我认为棺材在这里会派上用场,但我不确定如何将它们组合在一起。

\documentclass{article}
\usepackage{xparse,xcolor}

\ExplSyntaxOn
\box_clear_new:N \g_jakecv_group_start_box
\hbox_set:Nn \g_jakecv_group_start_box
 {
  \makebox[0pt]{\rule[-40.5pt]{1mm}{\dimexpr40.5pt+1mm\relax}}
  \makebox[0pt][l]{\rule{\dimexpr\textwidth+3mm\relax}{1mm}}
 }

\NewDocumentCommand \Position { mmmm } {
  \group_begin:
  \color{black!20!white}
  \smash{\raisebox{1ex}{
      \hspace{\dimexpr -1ex - 1mm\relax}
      \box_use:N \g_jakecv_group_start_box}}
  \group_end:
  \group_begin:
  \par\noindent\large #1 \quad #2 \newline
  \group_end:
  #3 \newline #4
}

\ExplSyntaxOff

\begin{document}
\Position{2020--2025}{Some Position Title}{Some Super Long Organization Name}{Some City, BC}
\end{document}

答案1

棺材绝对是正确的答案!将这些东西按照相对位置组合在一起正是这个包的用途。

输出

无需任意测量,无需猜测:

\documentclass{article}
\usepackage{xparse,xcolor}

\ExplSyntaxOn
\coffin_new:N \l_jakecv_position_info_coffin

\NewDocumentCommand \Position { mmmm } {
  \group_begin:
  \vcoffin_set:Nnn \l_jakecv_position_info_coffin {\textwidth} {
    \group_begin:
    \par\noindent\large #1 \quad #2 \newline
    \group_end:
    #3 \newline #4
  }
  \hcoffin_set:Nn \l_tmpa_coffin {
    \color{black!20!white}
    \rule{1mm} { \dim_eval:n { 4mm +
        \coffin_ht:N \l_jakecv_position_info_coffin }}
  }
  \coffin_attach:NnnNnnnn
    \l_jakecv_position_info_coffin {l}{B}
    \l_tmpa_coffin {r}{b}
    {-3mm}{0pt}

  \hcoffin_set:Nn \l_tmpa_coffin {
    \color{black!20!white}
    \rule{\dim_eval:n { 4mm + \textwidth }}{1mm}
  }
  \coffin_attach:NnnNnnnn
    \l_jakecv_position_info_coffin {l}{t}
    \l_tmpa_coffin {l}{b}
    {-4mm}{3mm}

  \coffin_typeset:Nnnnn \l_jakecv_position_info_coffin {l}{t}{0pt}{0pt}
  \group_end:
}

\ExplSyntaxOff

\begin{document}
\Position{2020--2025}{Some Position Title}{Some Super Long Organization Name}{Some City, BC}
\end{document}

相关内容