将 Minipage 修复程序应用于 Tikzpicture 环境以使标题的最后一行居中

将 Minipage 修复程序应用于 Tikzpicture 环境以使标题的最后一行居中

我正在尝试将标题的最后一行置于 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}

相关内容