我正在尝试绘制一个标注,i
其左侧有一个很大的标注,然后是一堆文本填充大部分正文。以下代码几乎作品:
\documentclass[a4paper,oneside]{article}
\usepackage{xcolor}
\definecolor{Info}{rgb}{0.9,0.5,0.0}
\usepackage{tikz}
\usepackage{anyfontsize}
\usepackage{environ}
\NewEnviron{Note}%
{
\begin{center}
\begin{tikzpicture}
\node[rectangle, rounded corners=15pt, inner sep=15pt, fill=Info](box){%
\begin{minipage}{0.9\textwidth}
\color{white}
\mbox{\fontsize{40}{40}\selectfont$i$}
\hfill
\begin{minipage}{0.95\textwidth}
\bfseries\BODY
\end{minipage}
\end{minipage}};
\end{tikzpicture}
\end{center}
}
\begin{document}
\begin{Note}
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test.
\end{Note}
\end{document}
但它呈现的效果如下:
我不确定 TeX 实际上将其与什么对齐。发生了什么事?
无论如何, 的位置i
实际上看起来不错; 只是正文似乎不知何故放在了错误的位置。 我不知道是什么在移动它。
那么我该如何解决这个问题呢?我接受将其i
固定在顶部或垂直居中,只要正文最终出现在正确的位置即可。
答案1
你有一个大的minipage
,里面放了大号i
(不带minipage
)和正文里面另一个minipage
。现在由于您放置了多少正文,内部的高度minipage
会有所不同。由于您没有指定内部迷你页面的垂直对齐方式,因此center
将应用默认设置,例如,在下图中,迷你页面的中心与 的中心对齐x
。
因此,您会获得具有不同数量文本(高度)的不同外观,因为中心始终对齐。
作为一种补救措施,将i
和正文放在单独的minipage
s 中,这样就不需要外部了minipage
。
\documentclass[a4paper,oneside]{article}
\usepackage{xcolor}
\definecolor{Info}{rgb}{0.9,0.5,0.0}
\usepackage{tikz}
\usepackage{anyfontsize}
\usepackage{environ}
\NewEnviron{Note}%
{
\begin{center}
\begin{tikzpicture}
\node[rectangle, rounded corners=15pt, inner sep=15pt, fill=Info](box){%
\begin{minipage}{0.05\textwidth}
\color{white}
\mbox{\fontsize{40}{48}\selectfont$i$}
\end{minipage}
\hfill
\begin{minipage}{0.9\textwidth}
\bfseries\BODY
\end{minipage}
};
\end{tikzpicture}
\end{center}
}
\begin{document}
\begin{Note}
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test.
\end{Note}
\end{document}
这里有一个tcolorbox
解决方案。为什么tcolorbox
?你可以用它做很多美化。有关详细信息,请参阅其手册。
\documentclass[a4paper,oneside]{article}
\usepackage{anyfontsize}
\usepackage[many]{tcolorbox}
\tcbuselibrary{skins,breakable}
\definecolor{Info}{rgb}{0.9,0.5,0.0}
\newtcolorbox{Note}[1][i]{
colback=Info,
colframe=Info,
arc=15pt,
width=\linewidth,
enhanced jigsaw,
overlay={
\begin{scope}[]
\node[anchor=west,align=center,text width=0.08\linewidth,
font=\fontsize{40}{48}\selectfont,text=white] at (frame.west) {$#1$};
\end{scope}},
left=0.08\linewidth,
right=10pt,top=10pt,bottom=10pt,
fontupper=\bfseries,
% before=\begin{center},
% after=\end{center}
}
\begin{document}
\noindent
\begin{Note}
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test. This is a test.
This is a test.
\end{Note}
\end{document}