不久前,我回答了这个问题没有内容的 Tikzposter 块我认为一切都很美好。
但在不得不使用我创建的命令后,我意识到任何 后面都会插入大约 2cm 的空白空间titleblock
。可以使用标题栏正下方的任何顶部块上的titleoffsety=2cm
和来修复此问题。为了简化此过程,我可以制作一个添加此内容的宏,但如果我需要制作一个新的宏来自己清理,这似乎是一个肮脏的宏。bodyoffsety=2cm
aftertitleblock
所以我想知道是否有办法从defineblockstyle
命令中去除 2cm 的空白。
梅威瑟:
\documentclass{tikzposter}
\defineblockstyle{Justtitle}{
}{
\ifBlockHasTitle
\draw[color=framecolor, fill=blocktitlebgcolor,
rounded corners=\blockroundedcorners] (blocktitle.south west)
rectangle (blocktitle.north east);
\fi
}
\newcommand{\titleblock}[1]{\useblockstyle{Justtitle}\block{#1}{}\useblockstyle{Default}}
\begin{document}
\titleblock{Cool title}
\begin{columns}
\column{0.5}
\block[titleoffsety=2cm,bodyoffsety=2cm]{cool block title}{block text} %NOTE THE OFFSET
\block{next block}{more text}
\column{0.5}
\block{even cooler, but wrongly placed title}{Super cool text here}%NOTE THE LACK OF OFFSET
\block{hello}{duck}
\end{columns}
\end{document}
答案1
当tikzposter
计算区块主体的高度时,它会
\setlength{\TP@blockbodyheight}{\ht\TP@blockbodybox + \dp\TP@blockbodybox +2\TP@blockbodyinnersep}
如您所见,blockbodyinnersep
高度增加了两次。您可以利用这一事实,将宏bodyinnersep
中的设置\titleblock
为适当的消极的长度:
\newcommand{\titleblock}[1]{\useblockstyle{Justtitle}\block[bodyinnersep=-4mm]{#1}{}\useblockstyle{Default}}
完整示例:
\documentclass{tikzposter}
\defineblockstyle{Justtitle}{
}{
\ifBlockHasTitle
\draw[color=framecolor, fill=blocktitlebgcolor,
rounded corners=\blockroundedcorners] (blocktitle.south west)
rectangle (blocktitle.north east);
\fi
}
\newcommand{\titleblock}[1]{\useblockstyle{Justtitle}\block[bodyinnersep=-4mm]{#1}{}\useblockstyle{Default}}
\begin{document}
\titleblock{Cool title}
\begin{columns}
\column{0.5}
\block{cool block title}{block text}
\block{next block}{more text}
\column{0.5}
\block{even cooler, but wrongly placed title}{Super cool text here}
\block{hello}{duck}
\end{columns}
\end{document}