Создание макроса для различных изображений в наложении заголовка главы с помощью Tikz

Создание макроса для различных изображений в наложении заголовка главы с помощью Tikz

Я хотел бы сделать наложение изображения главы. Пока что я нашел этот код, и он работает, если я указываю изображение непосредственно в определении:

\newcommand\chapterlabel{}
\titleformat{\chapter}
  {\gdef\chapterlabel{}
   \normalfont\sffamily\Huge\bfseries\scshape}
  {\gdef\chapterlabel{\thechapter\ }}{0pt}
  {\begin{tikzpicture}[remember picture,overlay]
    \node[below right=4.8cm and 0cm of current page.north east] (a)
      {\begin{tikzpicture}[remember picture, overlay]
        \fill[fill overzoom image=
!!!!!!!!!!!!HERE IS THE IMAGE NAME!!!!!!!!!!!!!!
]
 (current page.north west) rectangle
          (a);
        \node[below right=2.5cm and 2cm of current page.north
     west,color=blue]
              {\color{white}\chapterlabel#1};
       \end{tikzpicture}
      };
   \end{tikzpicture}
  }

Однако я не могу понять, как сделать это в виде макроса, а именно, я хочу поместить «#2» в название картинки в качестве заполнителя, а затем позже передать пользовательское название изображения в качестве аргумента.

решение1

Я понятия не имею, как вы хотите, чтобы выглядел вывод, поскольку вы не предоставили минимальный рабочий пример, а только фрагмент кода. В любом случае, вам следует избегать вложенных tikzpictureсред.

Как я и предложил в своем комментарии, почему бы вам просто не создать пользовательскую команду, \myimagenameв которой вы сохраните имя текущего изображения? То же самое может работать для метки главы, однако, я не понял из вашего кода, как вы собираетесь это использовать.

МВЭ:

\documentclass{report}
\usepackage{titlesec, tikz, tikzfill}
\usetikzlibrary{positioning, shadows}

\newcommand\mychapterlabel{}
\newcommand\myimagename{example-image-a}
\titleformat{\chapter}
  {\normalfont\sffamily\Huge\bfseries\scshape}
  {\gdef\chapterlabel{\thechapter\ }}{0pt}
  {\begin{tikzpicture}[remember picture, overlay]
    \coordinate[below right=4.8cm and 0cm of current page.north east] (a);
    \fill[fill overzoom image=\myimagename] (current page.north west) rectangle (a);
    \node[below right=2.5cm and 2cm of current page.north west, color=blue]
        {\color{white}\chapterlabel\mychapterlabel};
   \end{tikzpicture}}

\begin{document}

\renewcommand\mychapterlabel{Foo}
\chapter{One}

\renewcommand\mychapterlabel{Bar}
\renewcommand\myimagename{example-image-b}
\chapter{Two}

\end{document}

введите описание изображения здесь

Связанный контент