Hintergrundfarbe um die Papierbreitenabbildung

Hintergrundfarbe um die Papierbreitenabbildung

Die Frage hätte auch den Untertitel haben können: „Wie erzwinge ich, dass eine Überschrift immer über einem schwebenden Objekt angezeigt wird?“ Ich habe einen komplexen Satz von Konfigurationen und Befehlen, die ich in diesem MWE zusammenfassen könnte.

% !TeX encoding = UTF-8
% !TeX spellcheck = fr_FR

\documentclass[11pt, frenchb, twoside]{report}

% LENGTH
\newlength{\goldenMargin}
\setlength{\goldenMargin}{1.618in}
\newlength{\imageWidth}
\setlength{\imageWidth}{.5\paperwidth}

% IMPORTS
\usepackage{adjustbox}
\usepackage{blindtext}
\usepackage{floatrow}
\usepackage{caption}
\usepackage{ifoddpage}
\usepackage[first=0, last=1, quiet]{lcg}
\usepackage{polyglossia}
\usepackage[paperwidth=8.125in,paperheight=10.25in,
            hmargin={.5\goldenMargin,\goldenMargin},vmargin={.5\goldenMargin},
            marginparwidth={\dimexpr \goldenMargin - 2\marginparsep}]{geometry}
\usepackage[usenames,dvipsnames,svgnames,rgb]{xcolor}
\usepackage{xparse}
\usepackage{xifthen}
\usepackage{xstring}

% % % % % % % % RIGHTLAST % % % % % % % %
\ProvideDocumentCommand \rightlast{}
{\leftskip0ptplus1fil\rightskip0ptplus-1fil\parfillskip0ptplus1fil}

% GRAPHICS
\graphicspath{{../assets/}}

% FLOATS & CAPTIONS
\floatsetup{heightadjust=all}
\DeclareColorBox{blackplate}{\colorbox{black}}
\DeclareFloatStyle{blackFloat}{style=plain,framestyle=colorbox,
        framearound=all,colorframeset=blackplate,frameset={\fboxrule0pt},
        framestyle=colorbox,framefit=yes}

\DeclareFloatSeparators{oddCapSep}{\hspace{\dimexpr -\parindent-.5\goldenMargin}}

\DeclareCaptionLabelFormat{oddLabel}{\fbox{\Large\scshape#1~#2}\hspace*{\fill}}
\DeclareCaptionLabelFormat{evenLabel}{\fbox{\Large\scshape#1~#2}}
\DeclareCaptionLabelSeparator{oddSep}{odd}

\DeclareCaptionFormat{innerCapFormat}
{%
    \parbox{\dimexpr \paperwidth-\imageWidth-\goldenMargin-\parindent-\columnsep}
    {%
        \IfStrEq{#2}{l}
            {\raggedright#1\hspace*{\fill}\bigbreak#3}
            {\rightlast#1\bigbreak#3}
    }
}

\DeclareCaptionStyle{innerCapStyle}%
{%
    singlelinecheck=off,format=innerCapFormat
}

% % % % % % % % UTILS % % % % % % % %
\ExplSyntaxOn
\tl_new:N \l_foo_tl
\tl_new:N \l_bar_tl

\DeclareExpandableDocumentCommand{\IfNoEmptyTF}{ m m m }
{
    \IfNoValueTF{#1}{#2}
    {
        \tl_if_empty:nTF {#1} {#2} {#3}
    }
}

% % % % % % % % BLACKARTWORK % % % % % % % %
% #1 TOC caption
% #2 Caption
% #3 Image Path
\ProvideDocumentCommand \blackArtwork{ m m m }
{
    \adjustboxset{bgcolor=black}
%   \floatsetup[figure]{style=blackFloat}
    \rand\ifthenelse{\equal{\arabic{rand}}{1}}
    {\begin{figure}[t!]}{\begin{figure}[b!]}
        \captionsetup{style=innerCapStyle,font={sf,color=white}}
        \checkoddpage
        \ifthenelse{\boolean{oddpage}}
        {%
            \tl_set:Nn \l_foo_tl {#2\hspace*{\fill}}
            \tl_set:Nn \l_bar_tl {l}
%       \begin{blackbox}
            \adjustboxset{lap=\dimexpr -\parindent - .5\goldenMargin}
            \captionsetup{labelsep=oddSep,labelformat=oddLabel,justification=raggedleft}
        \floatbox[{\capbeside\thisfloatsetup{capbesideposition={right,center},%
                                             capbesidesep=oddCapSep}}]
        }
        {%
            \tl_set:Nn \l_foo_tl {\hspace*{\fill}#2}
            \tl_set:Nn \l_bar_tl {r}
%       \begin{blackbox}
            \adjustboxset{lap=.5\goldenMargin}
            \captionsetup{labelformat=evenLabel}
        \floatbox[{\capbeside\thisfloatsetup{capbesideposition={left,center}}}]
        }
        {figure}
        {\caption[#1]{\l_foo_tl}\label{fig:#3}}
        {\adjustbox{inner}{\makebox[\paperwidth][\l_bar_tl]{\includegraphics[width=\imageWidth]{#3}}}}
%        \end{blackbox}
    \end{figure}
    \adjustboxset{}
}
\ExplSyntaxOff

\ProvideDocumentEnvironment{blackbox}{}
    {\begin{adjustbox}{frame}}
    {\end{adjustbox}}

\begin{document}
\blindtext
\blackArtwork{Miguel Chevalier, \textit{Magic Carpets}, 2014}
             {Miguel Chevalier, Magic Carpets, 2014. Installation générative et interactive de réalité virtuelle. \O~17.5 m. Festival Internazionale di Andria, Castel del Monte.}
             {chevalier_magic-carpets}
\blindtext[3]
\blackArtwork{Zu Doyang, \textit{Mini-mondes oculaires}, 2002--2007}
             {Zu Doyang, \textit{Mini-mondes oculaires}, 2002--2007. Épreuve à développement chromogène, 1.23 $\times$ 1.25 m chacune. Association des musées d'art coréen, Séoul}
             {doyang_spheres}
\end{document}

MWE-Ausgabe

Das blackArtworkerzwingt zufällig eine Abbildung, die oben | unten auf der Seite gesetzt wird. Der Hintergrund wird über einEinstellboxumgibt ein \paperwidthbreites Feld mbox, in das die Grafik schließlich eingefügt wird. Sie können sehen, dass auf der zweiten Seite keine Beschriftung vorhanden ist. Ich vermute, dass alles von links nach rechts gesetzt ist und dass die „Tiefe“ (falls dieses Konzept nur in Latex existiert) von Objekten auf diese Weise gegeben ist. Auf einer geraden Seite wird die Beschriftung also vor dem Bild gesetzt und erscheint dann vom schwarzen Hintergrund verdeckt. Ich habe verschiedene Mischungen ausprobiert, um das Bild und die Beschriftung in einem \paperwidthFeld mit einem einfarbigen Hintergrund und ohne weiteren Rand einzuschließen, aber ich bekomme es nicht hin.

Vielleicht gibt es eine Möglichkeit, die Beschriftung nach dem Bild zu setzen oder nicht, oder vielleicht mache ich es komplizierter und es gibt eine bessere Möglichkeit, das zu erreichen.

Antwort1

Die Beschriftung wird verschoben floatrowund Sie können ihre linke Position ändern, um sie hinter dem Bild, aber mit Rückschritt, statt vor dem Bild zu platzieren. Ich kenne das Paket nicht, daher habe ich vielleicht einige Fälle übersehen, aber hier funktioniert es:

Bildbeschreibung hier eingeben

\documentclass[11pt, frenchb, twoside]{report}

% LENGTH
\newlength{\goldenMargin}
\setlength{\goldenMargin}{1.618in}
\newlength{\imageWidth}
\setlength{\imageWidth}{.5\paperwidth}

% IMPORTS
\usepackage{adjustbox}
\usepackage{blindtext}
\usepackage{floatrow}

\makeatletter
\renewcommand\flrow@FC@{\global\let\flrow@typ@tmpset\undefined
 \FB@frame{\begin@FBBOX
   \adj@dim\FBo@wd+\FBo@wadj=\hsize
   \settowidth\@tempdimb{\floatcapbesidesep}\advance\hsize\@tempdimb
   \advance\hsize\FBc@wd\@parboxrestore\leftmargin\z@\rightmargin\z@
   \@@FBabove
    \hbox{%
\floatfacing*%
      {%
\ifvoid\@floatcapt\else
\kern\FBc@wd
          \floatcapbesidesep
\fi
       \FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBc@wd\unvbox\@currbox}}}%%
\ifvoid\@floatcapt\else
\rlap{\kern-\FBc@wd\kern-\columnsep\kern-\wd\@floatcapt
         \FCc@box{\FBw@box\FBc@wd\unvbox\@floatcapt\FB@foot}}%
\fi
}%
{\FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBo@wd\unvbox\@currbox}}}%
       \ifvoid\@floatcapt\else
         \floatcapbesidesep\FCc@box{\FBw@box\FBc@wd
           \unvbox\@floatcapt\FB@foot}\fi
      }%
%
}%
\par\@@FBbelow\vskip\z@
    \end@FBBOX
    \global\setbox\@floatcapt\box\voidb@x}}
\makeatother


\usepackage{caption}
\usepackage{ifoddpage}
\usepackage[first=0, last=1, quiet]{lcg}
\usepackage{polyglossia}
\usepackage[paperwidth=8.125in,paperheight=10.25in,
            hmargin={.5\goldenMargin,\goldenMargin},vmargin={.5\goldenMargin},
            marginparwidth={\dimexpr \goldenMargin - 2\marginparsep}]{geometry}
\usepackage[usenames,dvipsnames,svgnames,rgb]{xcolor}
\usepackage{xparse}
\usepackage{xifthen}
\usepackage{xstring}

% % % % % % % % RIGHTLAST % % % % % % % %
\ProvideDocumentCommand \rightlast{}
{\leftskip0ptplus1fil\rightskip0ptplus-1fil\parfillskip0ptplus1fil}

% GRAPHICS
\graphicspath{{../assets/}}

% FLOATS & CAPTIONS
\floatsetup{heightadjust=all}
\DeclareColorBox{blackplate}{\colorbox{black}}
\DeclareFloatStyle{blackFloat}{style=plain,framestyle=colorbox,
        framearound=all,colorframeset=blackplate,frameset={\fboxrule0pt},
        framestyle=colorbox,framefit=yes}

\DeclareFloatSeparators{oddCapSep}{\hspace{\dimexpr -\parindent-.5\goldenMargin}}

\DeclareCaptionLabelFormat{oddLabel}{\fbox{\Large\scshape#1~#2}\hspace*{\fill}}
\DeclareCaptionLabelFormat{evenLabel}{\fbox{\Large\scshape#1~#2}}
\DeclareCaptionLabelSeparator{oddSep}{odd}

\DeclareCaptionFormat{innerCapFormat}
{%
    \parbox{\dimexpr \paperwidth-\imageWidth-\goldenMargin-\parindent-\columnsep}
    {%
        \IfStrEq{#2}{l}
            {\raggedright#1\hspace*{\fill}\bigbreak#3}
            {\rightlast#1\bigbreak#3}
    }
}

\DeclareCaptionStyle{innerCapStyle}%
{%
    singlelinecheck=off,format=innerCapFormat
}

% % % % % % % % UTILS % % % % % % % %
\ExplSyntaxOn
\tl_new:N \l_foo_tl
\tl_new:N \l_bar_tl

\DeclareExpandableDocumentCommand{\IfNoEmptyTF}{ m m m }
{
    \IfNoValueTF{#1}{#2}
    {
        \tl_if_empty:nTF {#1} {#2} {#3}
    }
}

% % % % % % % % BLACKARTWORK % % % % % % % %
% #1 TOC caption
% #2 Caption
% #3 Image Path
\ProvideDocumentCommand \blackArtwork{ m m m }
{
    \adjustboxset{bgcolor=black}
%   \floatsetup[figure]{style=blackFloat}
    \rand\ifthenelse{\equal{\arabic{rand}}{1}}
    {\begin{figure}[t!]}{\begin{figure}[b!]}
        \captionsetup{style=innerCapStyle,font={sf,color=white}}
        \checkoddpage
        \ifthenelse{\boolean{oddpage}}
        {%
            \tl_set:Nn \l_foo_tl {#2\hspace*{\fill}}
            \tl_set:Nn \l_bar_tl {l}
%       \begin{blackbox}
            \adjustboxset{lap=\dimexpr -\parindent - .5\goldenMargin}
            \captionsetup{labelsep=oddSep,labelformat=oddLabel,justification=raggedleft}
        \floatbox[{\capbeside\thisfloatsetup{capbesideposition={right,center},%
                                             capbesidesep=oddCapSep}}]
        }
        {%
            \tl_set:Nn \l_foo_tl {\hspace*{\fill}#2}
            \tl_set:Nn \l_bar_tl {r}
%       \begin{blackbox}
            \adjustboxset{lap=.5\goldenMargin}
            \captionsetup{labelformat=evenLabel}
        \floatbox[{\capbeside\thisfloatsetup{capbesideposition={left,center}}}]
        }
        {figure}
        {\caption[#1]{\l_foo_tl}\label{fig:#3}}
        {\adjustbox{inner}{\makebox[\paperwidth][\l_bar_tl]{\includegraphics[width=\imageWidth]{#3}}}}
%        \end{blackbox}
    \end{figure}
    \adjustboxset{}
}
\ExplSyntaxOff

\ProvideDocumentEnvironment{blackbox}{}
    {\begin{adjustbox}{frame}}
    {\end{adjustbox}}

\begin{document}
\blindtext
\blackArtwork{Miguel Chevalier, \textit{Magic Carpets}, 2014}
             {Miguel Chevalier, Magic Carpets, 2014. Installation générative et interactive de réalité virtuelle. \O~17.5 m. Festival Internazionale di Andria, Castel del Monte.}
             {example-image}
\blindtext[3]
\blackArtwork{Zu Doyang, \textit{Mini-mondes oculaires}, 2002--2007}
             {Zu Doyang, \textit{Mini-mondes oculaires}, 2002--2007. Épreuve à développement chromogène, 1.23 $\times$ 1.25 m chacune. Association des musées d'art coréen, Séoul}
             {example-image-a}
\end{document}

verwandte Informationen