МВЭ

МВЭ

Продолжая мойпредыдущий вопрос: Есть ли способ использовать \scaleboxтак, чтобы логотип масштабировался до определенной высоты? Я хочу поместить логотип, созданный в Tikz, в прямоугольник, который я также создал в Tikz. Оба должны использоваться в качестве заголовка главы. Я использовал команду, \saveboxчтобы сохранить логотип заранее. Но теперь я хочу, чтобы логотип имел ту же высоту, что и прямоугольник, и оба должны иметь одно и то же начало координат. Можно ли height of the rectangle / \ht\logoкак-то использовать выражение, например, в качестве коэффициента масштабирования? Это было бы полезно, если бы логотип когда-нибудь изменился. Вот код; строка, которую, как я думаю, нужно изменить, отмечена.

\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}  

Если нет, могу ли я как-то вывести размер логотипа, чтобы вручную рассчитать точное соотношение? Могу ли я указать конкретную высоту в мм с помощью \scalebox?

решение1

Как предполагает egreg, вы можете использовать \resizebox, это работает как \scalebox, только вместо коэффициента масштабирования вы используете размерность масштаба:

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

Если вы хотите масштабировать до определенной ширины/высоты, сохраняя при этом соотношение сторон. Для этого вы указываете !зависимое измерение, например, в вашем случае:

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

Так что просто замените \scaleboxдеталь \resizebox{!}{15mm}{\usebox{\logo}}, и ваши проблемы с накипью исчезнут.

Теперь есть некоторые проблемы с позиционированием и некоторые проблемы с самим рисунком. Во-первых, это фоновый прямоугольник, он используется \drawс опцией заливки, поэтому при позиционировании логотипа нам приходится иметь дело с \pgflinewidth, но поскольку линия и заливка одного цвета, в этом нет необходимости \draw, используйте \pathвместо этого и линия больше не будет нарисована.

Теперь перейдем к узлу, содержащему логотип. Он позиционируется по центру, поэтому всякий раз, когда логотип меняет размер, вам нужно переместить его соответствующим образом. Используйте anchor=south west(эквивалент опции above right) и поместите узел, at (0,0)теперь «начало» узла находится в (0,0). Но узел по умолчанию имеет некоторый внутренний разделитель, мы должны установить его на 0: inner sep=0pt. Кроме того, вокруг узла есть базовый блок шириной \pgflinewidth, который оставляет зазор между логотипом и фоновым блоком. Вы можете либо shift={(45:-\pgflinewidth)}установить , либо установить line width=0pt(это умнее), чтобы удалить это небольшое пространство. Итак, после всего этого рисунок должен быть в порядке.

600% зум

МВЭ

\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}  

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