我正在尝试将标题的最后一行置于 tikzpicture 的中心
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}
这是我在使用 minipage 环境时在之前的帖子中建议的。
考虑一下代码
\documentclass{book}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{color}
\usepackage{tikz}
\newlength\drop % To drop the start of the paragraph below the top of the picture.
\setlength\drop{15pt}
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}
\shade node[preaction={fill=black,opacity=.5,},fill=yellow!35, inner sep=5mm]
{\parbox{0.87\textwidth}{\fontsize{12}{13}\selectfont
\vspace{\drop}%
\hangindent=\dimexpr 0.2\textwidth+\columnsep\relax
\hangafter=-4
\noindent\llap{\raisebox{\dimexpr \drop+0.6\baselineskip-\height}[0pt][0pt]% overlap indentation
{\includegraphics[width=0.2\textwidth]{example-image-c}}\hspace{\columnsep}}%
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{\textcolor{red}{TITLE TITLE TITLE TITLE TITLE (PART TO BE CENTERED)}} \\[-5pt]~\smallskip\\
\textbf{\textit{\lipsum[2]}}}} ;
\end{tikzpicture}
\end{document}
产生
如你所见,我将上述一系列命令的放置位置置于 tikzpicture 内容的最后一行的中心。
因此,我想我会使用一些括号来尝试将它们限制为仅标题;但是,当我替换\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{\textcolor{red}{TITLE TITLE TITLE TITLE TITLE (PART TO BE CENTERED)}}
并{\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{\textcolor{red}{TITLE TITLE TITLE TITLE TITLE (PART TO BE CENTERED)}} }
执行程序时,就好像我根本没有合并居中命令列表一样:
我尝试过其他方法,例如为标题创建一个 minipage 环境并\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}
在之后应用\begin{minipage}{}
。这有效。---但它也会破坏 tikzpicture 的对齐,迫使我调整代码中其他参数的数值,这不是解决方案,因为我已经制作了许多这样的 tikzpicture,这可能相当于每次创建这种类型的新框时不断调整参数。
因此,我问:
问题:在程序代码中,字符串应该\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}
放在哪里,以便标题的最后一行(本例中为居中部分)相对于第一行居中,而 tikzpicture 中的其他所有内容都保持原位?
谢谢。
强调除了最后一条标题行居中之外,我需要显示屏上的所有内容保持照原样,尤其是文字换行,因为我实际使用的矩形图像比上面的图片显示的要长得多;例如,
答案1
我觉得你的意图是
\documentclass{book}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\thispagestyle{empty}
\vspace*{-4cm}
\enlargethispage{2cm}
\begin{tikzpicture}
\shade node[preaction={fill=black,opacity=.5,},fill=yellow!35, inner sep=5mm, text width=.87\textwidth,align=justify]
{%
\fontsize{12}{13}\selectfont
\leavevmode\smash{\raisebox{-2.5\baselineskip}{\includegraphics[width=0.2\textwidth]{example-image-c}}}\hfill
\parbox[t]{.75\textwidth}{%
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{%
\textcolor{red}{(PART TO BE CENTERED)}}\strut
\par
\xdef\tlines{\the\prevgraf}}
\par
\vspace{\baselineskip}%
\ifnum\tlines<3
\hangindent.25\textwidth
\hangafter\numexpr\tlines-3\relax
\fi\textbf{\textit{\lipsum[2]}}\par};
\end{tikzpicture}
\smallskip
\begin{tikzpicture}
\shade node[preaction={fill=black,opacity=.5,},fill=yellow!35, inner sep=5mm, text width=.87\textwidth,align=justify]
{%
\fontsize{12}{13}\selectfont
\leavevmode\smash{\raisebox{-2.5\baselineskip}{\includegraphics[width=0.2\textwidth]{example-image-c}}}\hfill
\parbox[t]{.75\textwidth}{%
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{%
\textcolor{red}{TITLE TITLE TITLE TITLE TITLE (PART TO BE CENTERED)}}\strut
\par
\xdef\tlines{\the\prevgraf}}
\par
\vspace{\baselineskip}%
\ifnum\tlines<3
\hangindent.25\textwidth
\hangafter\numexpr\tlines-3\relax
\fi\textbf{\textit{\lipsum[2]}}\par};
\end{tikzpicture}
\smallskip
\begin{tikzpicture}
\shade node[preaction={fill=black,opacity=.5,},fill=yellow!35, inner sep=5mm, text width=.87\textwidth,align=justify]
{%
\fontsize{12}{13}\selectfont
\leavevmode\smash{\raisebox{-2.5\baselineskip}{\includegraphics[width=0.2\textwidth]{example-image-c}}}\hfill
\parbox[t]{.75\textwidth}{%
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}\textbf{%
\textcolor{red}{TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE (PART TO BE CENTERED)}}\strut
\par
\xdef\tlines{\the\prevgraf}}
\par
\vspace{\baselineskip}%
\ifnum\tlines<3
\hangindent.25\textwidth
\hangafter\numexpr\tlines-3\relax
\fi
\textbf{\textit{\lipsum[2]}}\par};
\end{tikzpicture}
\end{document}