我编写了这个简单的 latex 文件,试图使左右颜色框顶部对齐。以下是代码
\documentclass[letterpaper,12pt]{article}
\usepackage{tcolorbox}
\pagestyle{empty}
%
\setlength{\topmargin}{0cm}
\setlength{\textheight}{23.5cm}
\setlength{\textwidth}{18.8cm}
\setlength{\oddsidemargin}{-1.1cm}
\setlength\parindent{0pt}
\begin{document}
\noindent\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}
\fbox{
\begin{minipage}[t]{0.60\textwidth}
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.30\textwidth}
line 1\\
line 2
\end{minipage}
}
\fbox{
\begin{minipage}[t]{0.60\textwidth}
\begin{tcolorbox}[title=\begin{center}gauche\end{center}]
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{tcolorbox}
\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.30\textwidth}
\begin{tcolorbox}[title=\begin{center}droite\end{center}]
ligne 1\\
ligne 2
\end{tcolorbox}
\end{minipage}
}
\end{document}
TeXLive 2016 使用 tcolorbox 版本 3 的输出不好
来自相同 TeXlive 2016 的输出但将 tcolorbox 目录替换为版本 2.80 给出预期结果
您认为这是 tclorbox 版本 3 引入的一个错误吗?
谢谢
答案1
使用 3.93 版本,您可以使用halign title
来避免\begin{center}...\end{center}
,width=
来避免minipage
和box align=top
强制顶部框对齐:
\documentclass[letterpaper,12pt]{article}
\usepackage{tcolorbox}
\pagestyle{empty}
%
\setlength{\topmargin}{0cm}
\setlength{\textheight}{23.5cm}
\setlength{\textwidth}{18.8cm}
\setlength{\oddsidemargin}{-1.1cm}
\setlength\parindent{0pt}
\begin{document}
\noindent\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}
\fbox{
\begin{minipage}[t]{0.60\textwidth}
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.30\textwidth}
line 1\\
line 2
\end{minipage}
}
\fbox{
%\begin{minipage}[t]{0.60\textwidth}
\begin{tcolorbox}[width=.6\textwidth, halign title=center, title=gauche, box align=top]
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{tcolorbox}
%\end{minipage}
}
\hfill
\fbox{
%\begin{minipage}[t]{0.30\textwidth}
\begin{tcolorbox}[width=.3\textwidth, halign title=center, title=droite, box align=top]
ligne 1\\
ligne 2
\end{tcolorbox}
%\end{minipage}
}
\end{document}
答案2
在版本 3.40 和 3.50 之间,和 的代码已before
更改after
为检测特殊情况。就您而言,这改变了所需的副作用。但由于before
和after
可以进行调整,您可以通过引入以下选项来获得旧行为mybeforeafter
:
\tcbset{
mybeforeafter/.style={before={\par\smallskip\parindent=0pt},after={\par\smallskip}},% v 3.40
}
将其添加到您的盒子中可获得所需的效果:
\documentclass[letterpaper,12pt]{article}
\usepackage{tcolorbox}
\pagestyle{empty}
%
\setlength{\topmargin}{0cm}
\setlength{\textheight}{23.5cm}
\setlength{\textwidth}{18.8cm}
\setlength{\oddsidemargin}{-1.1cm}
\setlength\parindent{0pt}
\tcbset{
mybeforeafter/.style={before={\par\smallskip\parindent=0pt},after={\par\smallskip}},% v 3.40
}
\begin{document}
\noindent\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}
\fbox{
\begin{minipage}[t]{0.60\textwidth}
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.30\textwidth}
line 1\\
line 2
\end{minipage}
}
\fbox{
\begin{minipage}[t]{0.60\textwidth}
\begin{tcolorbox}[title=\begin{center}gauche\end{center},mybeforeafter]
line 1\\
line 2\\
line 3\\
line 4\\
line 5
\end{tcolorbox}
\end{minipage}
}
\hfill
\fbox{
\begin{minipage}[t]{0.30\textwidth}
\begin{tcolorbox}[title=\begin{center}droite\end{center},mybeforeafter]
ligne 1\\
ligne 2
\end{tcolorbox}
\end{minipage}
}
\end{document}