带有右括号的列

带有右括号的列

我想按照附图所示排列我的框架。但是,尽管有这个想法,但我不知道该怎么做。请帮帮我。

左右列不需要框架。我在这里使用框架是为了更好地理解我想要实现的目标。

在此处输入图片描述

答案1

选择哪种解决方案在很大程度上取决于您希望在何种情况下使用这种安排。由于我不清楚这一点,我选择了一种使用tcolorbox包的高度可定制的变体:

\documentclass{article}

\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{decorations.pathreplacing}

\usepackage{lipsum}

\newtcolorbox{twocolbox}[1]{
    empty,
    left*=0pt,
    right*=25pt,
    sidebyside,
    sidebyside align=top,
    sidebyside gap=15pt,
    overlay={
        \draw[decorate, decoration={brace}] 
            ([xshift=-15pt, yshift=-10pt]frame.north east) -- 
            ([xshift=-15pt, yshift=10pt]frame.south east) 
            node[midway, xshift=10pt, rotate=-90, font=\large] {#1};
    }
}

\begin{document}

\lipsum[3]

\begin{twocolbox}{Methods}

Random Text in Left Column

\lipsum[1]

\tcblower

Random Text in Right Column

\lipsum[2]

\end{twocolbox}

\lipsum[3]

\end{document}

在此处输入图片描述


由于您可以使用 Ti 的全部范围这里有 Z 魔法,可以很容易地为括号着色或将其画得更粗或使其在数学模式下看起来更像括号(为此您还需要加载库calligraphy):

\usetikzlibrary{decorations.pathreplacing, calligraphy}

% [...]

\newtcolorbox{twocolbox}[1]{
    empty,
    left*=0pt,
    right*=25pt,
    sidebyside,
    sidebyside align=top,
    sidebyside gap=15pt,
    overlay={
        \draw[decorate, decoration={calligraphic brace}, pen colour={blue}, very thick] 
            ([xshift=-15pt, yshift=-10pt]frame.north east) -- 
            ([xshift=-15pt, yshift=10pt]frame.south east) 
            node[midway, xshift=10pt, rotate=-90, font=\large] {#1};
    }
}

在此处输入图片描述

答案2

这是一个使用并排minipage环境的解决方案。第一个(外部)小页面包含第二对并排的“内部”小页面,其中包含逐项列表。第二个外部小页面用于容纳旋转后的字符串“方法”。

在此处输入图片描述

\documentclass{article} % or some other suitable class
\usepackage{ragged2e} % for \RaggedRight macro
\usepackage{enumitem} % for \newlist and \setlist macros
\newlist{myitemize}{itemize}{1} % create a bespoke itemize-like list env.
\setlist[myitemize,1]{label=\textbullet,left=0pt,nosep,
            before={\begin{minipage}[t]{\linewidth}\RaggedRight},
            after={\strut\end{minipage}}}
\usepackage{graphicx} % for \rotatebox macro
\usepackage{lipsum}   % filler text

\begin{document}
\hrule % just to illustrate width of text block
\begin{center}
$\left.
\begin{minipage}{0.7\textwidth}     % outer minipage (choose a suitable width)
%% sum of widths of two "inner" minipages and of \hspace instr. should equal `1\linewidth`. 
\begin{minipage}[t]{0.5\linewidth}  % first inner minipage
\begin{myitemize}
\item \lipsum[2][1-3] % filler text
\item \lipsum[3][1-3] % more filler text
\end{myitemize}
\end{minipage}%                     % end of first inner minipage
\hspace{0.05\linewidth}%
\begin{minipage}[t]{0.45\linewidth} % second inner minipage
\begin{myitemize}
\item \lipsum[3][1-3]
\item \lipsum[2][1-3]
\end{myitemize}
\end{minipage}%                     % end of second inner minipage
\end{minipage}                      % end of outer minipage
\hspace{1em}
\right\}$
\hspace{1em}
\begin{minipage}{0.04\textwidth}    % encase \rotatebox instruction in another minipage
\rotatebox{-90}{\huge Methods}
\end{minipage}
\end{center}
\end{document}

答案3

您应该定义自己的环境,以免原始代码污染文档。选择一个比 更好的名称foo

\documentclass{article}
\usepackage{graphicx}

\usepackage{lipsum}

\newsavebox{\foobox}
\newlength{\foowidth}
\newlength{\foowidthaux}
\newenvironment{foo}[1]
 {%
  \begin{flushleft}
  \sbox{\foobox}{\rotatebox[origin=Bc]{-90}{\LARGE#1}}%
  \settowidth{\foowidthaux}{%
    $\Biggr\rbrace\,\usebox{\foobox}$%
    \hspace{2\arraycolsep}%
  }%
  \setlength{\foowidth}{\dimexpr(\textwidth-\foowidthaux)/2\relax}%
  $\left.\kern-\nulldelimiterspace
  \begin{array}{@{}ll@{}}
  \begin{minipage}[t]{\foowidth}
 }
 {%
  \end{minipage}
  \end{array}
  \right\rbrace\!\usebox{\foobox}$
  \end{flushleft}
 }
\newcommand{\changecolumn}{\end{minipage}&\begin{minipage}[t]{\foowidth}}

\begin{document}

\lipsum[2]

\begin{foo}{Methods}
\lipsum[3][1-6]
\changecolumn
\lipsum[4]
\end{foo}

\lipsum[5]

\end{document}

在此处输入图片描述

我保存了要旋转的部分,以便可以测量它,并进行了一些调整,这样我就可以计算出两个小页面的宽度。它们在 内顶部对齐array,因此\right\rbrace可以做正确的事情并覆盖整个内容,与两个小页面中的文本无关。

\changecolumn命令提供左侧小页面的结束、对齐字符和右侧小页面的开始。

相关内容