MWE

MWE

Fortsetzung meinervorherige Frage: Gibt es eine Möglichkeit, \scaleboxdas Logo so zu verwenden, dass es auf eine bestimmte Höhe skaliert wird? Ich möchte ein Logo, das ich in Tikz erstellt habe, in ein Rechteck setzen, das ich ebenfalls in Tikz erstellt habe. Beide sollen als Kapitelüberschrift verwendet werden. Ich habe den \saveboxBefehl verwendet, um das Logo vorher zu speichern. Aber jetzt möchte ich, dass das Logo die gleiche Höhe wie das Rechteck hat und beide den gleichen Ursprung haben. Ist es möglich, einen Ausdruck wie irgendwie als Skalierungsfaktor zu verwenden height of the rectangle / \ht\logo? Dies wäre hilfreich, falls sich das Logo jemals ändern sollte. Hier ist der Code; die Zeile, die meiner Meinung nach geändert werden muss, ist markiert.

\documentclass[a4paper,11pt,fleqn]{book}
\usepackage{xcolor}
\usepackage{color}
\definecolor{mydarkgray}{RGB}{0,100,100}
\newcommand{\mytemplatecolor}{mydarkgray}

\usepackage{tikz}

\newsavebox{\logo}
\savebox{\logo}{%
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
\path[draw=black,fill=black,line join=miter,line cap=round,miter
limit=4.00,nonzero rule,dash phase=3.000pt,line width=0.000pt]
(178.4915,651.0411) .. controls (178.0358,651.0411) and (177.5801,651.0411)..
 (177.1244,651.0411) .. controls (177.1244,652.6787) and (177.1244,654.3163) ..
 (177.1244,655.9539) .. controls (177.5801,655.9539) and (178.0358,655.9539) ..
 (178.4915,655.9539) .. controls (178.4915,654.3163) and (178.4915,652.6787) ..
 (178.4915,651.0411) -- cycle;
 \path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
 cap=round,miter limit=4.00,nonzero rule,dash phase=3.000pt,line
width=0.000pt,rounded corners=0.0000cm] (-182.0794,658.5070) rectangle
(-177.1244,660.6401);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,nonzero rule,dash phase=3.000pt,line width=0.000pt,rounded
corners=0.0000cm] (-280.8165,679.2454) rectangle (-193.6939,684.6964);
\path[xscale=-1.000,yscale=1.000,fill=black,nonzero rule,rounded
corners=0.0000cm] (-280.8165,694.2955) rectangle (-177.1245,696.3244);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,miter limit=4.00,nonzero rule,dash phase=3.000pt,line
width=0.000pt,rounded corners=0.0000cm] (-280.8165,716.4833) rectangle
(-177.1245,721.9073);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,nonzero rule,dash phase=3.000pt,line width=0.000pt,rounded
corners=0.0000cm] (-185.6345,669.1724) rectangle (-177.1244,673.9126);
\end{tikzpicture}}

\usepackage[explicit]{titlesec}
 \newcommand*\chapterlabel{}
\titleformat{\chapter}[display]  
{\Huge\bfseries\sffamily\color{\mytemplatecolor}}
{\gdef\chapterlabel{\thechapter\ }}    
{0pt} % separation between label and chapter-title
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-8cm,xshift=0cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
    \draw[name path=mainbox,fill=\mytemplatecolor,\mytemplatecolor] (0,0)        rectangle(35.5mm,15mm);% mainbox
    \path (0,0) ++(0.379\wd\logo,+0.3755\ht\logo) node {\scalebox{0.76}  {\usebox{\logo}}};% this works if i would finetune the settings. But i want the Logo to always appear with the exakt height of the mainbox and flush with the page boarder. No tiny overlap anywere as this looks bad when zooming inside the PDF
\node[anchor=north east,yshift=-7.2cm,xshift=34mm,minimum height=30mm,inner sep=0mm] at (current page.north west)
{\parbox[top][30mm][t]{15mm}{\raggedleft $\phantom{\textrm{l}}$\color{white}\chapterlabel}};  
\node[anchor=north west,yshift=-7.2cm,xshift=37mm,text     width=\textwidth,minimum height=30mm,inner sep=0mm] at (current page.north west)
    {\parbox[top][30mm][t]{\textwidth}{\color{\mytemplatecolor}#1}};
    \end{tikzpicture}
};
\gdef\chapterlabel{} % code before the title body
\end{tikzpicture}
}
\titlespacing*{\chapter}{-98pt}{38pt}{30pt} % [A]


\begin{document}
\chapter{A Chapter} 

\end{document}  

Wenn nicht, kann ich mir irgendwie die Größe des Logos ausgeben lassen, um das genaue Verhältnis manuell zu berechnen? Kann ich mit eine konkrete Höhe in mm angeben \scalebox?

Antwort1

Wie egreg vorschlägt, können Sie verwenden \resizebox. Es funktioniert wie \scalebox, nur dass Sie anstelle eines Skalierungsfaktors eine Skalierungsdimension verwenden:

\resizebox{<width dim>}{<height dim>}{contents to be scaled}

Wenn Du auf eine bestimmte Breite/Höhe skalieren möchtest und dabei das Seitenverhältnis beibehalten willst, gibst Du !die davon abhängige Dimension an, in Deinem Fall zB:

\resizebox{!}{<rectangle height>}{\usebox{\logo}}

Ersetzen Sie also einfach das \scaleboxTeil \resizebox{!}{15mm}{\usebox{\logo}}und Ihre Skalierungsprobleme sind behoben.

Jetzt gibt es einige Probleme mit der Positionierung und einige Probleme mit der Zeichnung selbst. Das erste ist das Hintergrundrechteck, es wird \drawmit der Fülloption verwendet, also müssen wir uns beim Positionieren des Logos mit befassen \pgflinewidth, aber da die Linie und die Füllung dieselbe Farbe haben, besteht keine Notwendigkeit für . \drawVerwenden Sie \pathstattdessen und die Linie wird nicht mehr gezeichnet.

Nun zum Knoten, der das Logo enthält. Es wird durch seine Mitte positioniert, also müssen Sie es bei jeder Größenänderung des Logos entsprechend neu positionieren. Verwenden Sie anchor=south west(entspricht der Option above right) und platzieren Sie den Knoten . at (0,0)Der „Ursprung“ des Knotens befindet sich jetzt bei (0,0). Aber der Knoten hat standardmäßig einen inneren Abstand, wir müssen ihn auf 0: setzen inner sep=0pt. Außerdem ist der Knoten von einer darunterliegenden Box mit der Breite umgeben \pgflinewidth, die eine Lücke zwischen dem Logo und der Hintergrundbox lässt. Sie können entweder shift={(45:-\pgflinewidth)}oder setzen line width=0pt(das ist intelligenter), um diesen kleinen Zwischenraum zu entfernen. Nachdem Sie das alles getan haben, sollte die Zeichnung in Ordnung sein.

600 % Zoom

MWE

\documentclass[a4paper,11pt,fleqn]{book}
\usepackage{xcolor}
\usepackage{color}
\definecolor{mydarkgray}{RGB}{0,100,100}
\newcommand{\mytemplatecolor}{mydarkgray}

\usepackage{tikz}
\usetikzlibrary{intersections}

\newsavebox{\logo}
\savebox{\logo}{%
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
\path[draw=black,fill=black,line join=miter,line cap=round,miter
limit=4.00,nonzero rule,dash phase=3.000pt,line width=0.000pt]
(178.4915,651.0411) .. controls (178.0358,651.0411) and (177.5801,651.0411)..
 (177.1244,651.0411) .. controls (177.1244,652.6787) and (177.1244,654.3163) ..
 (177.1244,655.9539) .. controls (177.5801,655.9539) and (178.0358,655.9539) ..
 (178.4915,655.9539) .. controls (178.4915,654.3163) and (178.4915,652.6787) ..
 (178.4915,651.0411) -- cycle;
 \path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
 cap=round,miter limit=4.00,nonzero rule,dash phase=3.000pt,line
width=0.000pt,rounded corners=0.0000cm] (-182.0794,658.5070) rectangle
(-177.1244,660.6401);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,nonzero rule,dash phase=3.000pt,line width=0.000pt,rounded
corners=0.0000cm] (-280.8165,679.2454) rectangle (-193.6939,684.6964);
\path[xscale=-1.000,yscale=1.000,fill=black,nonzero rule,rounded
corners=0.0000cm] (-280.8165,694.2955) rectangle (-177.1245,696.3244);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,miter limit=4.00,nonzero rule,dash phase=3.000pt,line
width=0.000pt,rounded corners=0.0000cm] (-280.8165,716.4833) rectangle
(-177.1245,721.9073);
\path[xscale=-1.000,yscale=1.000,draw=black,fill=black,line join=miter,line
cap=round,nonzero rule,dash phase=3.000pt,line width=0.000pt,rounded
corners=0.0000cm] (-185.6345,669.1724) rectangle (-177.1244,673.9126);
\end{tikzpicture}}

\usepackage[explicit]{titlesec}
 \newcommand*\chapterlabel{}
\titleformat{\chapter}[display]  
{\Huge\bfseries\sffamily\color{\mytemplatecolor}}
{\gdef\chapterlabel{\thechapter\ }}    
{0pt} % separation between label and chapter-title
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-8cm,xshift=0cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
    \path[name path=mainbox,fill=\mytemplatecolor,\mytemplatecolor] (0,0)        rectangle (35.5mm,15mm);% mainbox
    \node[line width=0pt, above right=0mm, draw=none, inner sep=0pt] at (0,0) {\resizebox{!}{15mm}{\usebox{\logo}}};
\node[anchor=north east,yshift=-7.2cm,xshift=34mm,minimum height=30mm,inner sep=0mm] at (current page.north west)
{\parbox[top][30mm][t]{15mm}{\raggedleft $\phantom{\textrm{l}}$\color{white}\chapterlabel}};  
\node[anchor=north west,yshift=-7.2cm,xshift=37mm,text     width=\textwidth,minimum height=30mm,inner sep=0mm] at (current page.north west)
    {\parbox[top][30mm][t]{\textwidth}{\color{\mytemplatecolor}#1}};
    \end{tikzpicture}
};
\gdef\chapterlabel{} % code before the title body
\end{tikzpicture}
}
\titlespacing*{\chapter}{-98pt}{38pt}{30pt} % [A]


\begin{document}
\chapter{A Chapter} 

\end{document}  

verwandte Informationen