创建一个在纸张边缘绘制矩形的宏

创建一个在纸张边缘绘制矩形的宏

我如何编写以下宏来在 XeLatex 中进行编译

使用无边框表格将论文分为两列(中间的 | 仅用于概念化目的。它将不可见)

  1. 纸张边缘应出现一个彩色矩形(实际上是桌子的右边缘,位于纸张的右边缘)

  2. 文本 1 应从矩形的右上角开始。文本 2 应出现在同一行,但出现在列的左侧

  3. 字体稍大一点的文本 3 应该出现在文本 1 和文本 4 的中间,相对于矩形的中间

  4. 文本 4 应出现在矩形底部附近

“描述”应该从矩形的末尾开始,从右侧开始,留出矩形的宽度。描述文本应该在下一行中跟随

垂直间距 6 pt

宏结束

这就是我想要实现的目标:

在此处输入图片描述

答案1

这是一个解决方案,带有一个带有 5 个参数的宏\rectonedge。它基于leftbar环境的修补版本,来自framed包和geometry包。如果需要,带有矩形的部分应该跨页:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{gillius2}
\usepackage[showframe,  verbose]{geometry}
\usepackage{lipsum, framed, xcolor, tabularx, setspace}

\makeatletter
\newenvironment{myleftbar}{%
\def\FrameCommand{\hskip-\Gm@lmargin\color{red}\vrule width\Gm@lmargin\color{black}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}
\makeatother

\newcommand\rectonedge[5]{%
\begin{myleftbar}
\noindent\begin{tabularx}{0.45\linewidth}{X@{}}
#1 \hfill #2\\[1cm]
\textbf{\LARGE#3} \\[1cm]
\textbf{\Large#4}
\end{tabularx}
\end{myleftbar}
\noindent\parbox{0.45\linewidth}{\bfseries\textcolor{red}{Description}\smallskip\\#5\vskip11pt}
\newline%
}%

\begin{document}

\sffamily

\rectonedge{text1}{text2}{TEXT3Bold}{Text4}{Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt tristique,
libero. Vivamus viverra fermentum felis.}
\lipsum[2]

\end{document} 

在此处输入图片描述

相关内容