
Ist es möglich, einen Filmstreifen aus eingebetteten PDF-Bildern zu erstellen?
Antwort1
\documentclass{article}
\usepackage{color,graphicx}
\newcommand{\whitebox}{\hfill\textcolor{white}{\rule[1mm]{1.8mm}{2.8mm}}\hfill}
\newcommand{\filmbox}[1]{%
\setlength{\fboxsep}{0pt}%
\colorbox{black}{%
\begin{minipage}{3.2cm}
\rule{0mm}{4.8mm}\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null\\%
\null\hfill\includegraphics[width=3cm]{#1}\hfill\null\\[1mm]%
\null\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null
\end{minipage}}}
\begin{document}
\noindent
\filmbox{1}\filmbox{2}\filmbox{3}\\
\filmbox{4}\filmbox{5}\filmbox{6}
\end{document}
Wie SDrolet bemerkte, werden die Frames ungleichmäßig sein, wenn die eingefügten Bilder unterschiedliche Seitenverhältnisse haben. Dies kann auf zwei Arten gelöst werden:
- Zuschneiden auf eine bestimmte Größe mithilfe der SDrolet-Lösung. Dabei geht ein Teil des Bildes verloren.
- Skalierung auf eine bestimmte Größe durch Hinzufügen der
height
Option\importgraphics
in der Definition von\filmbox
. Dies bedeutet eine Verzerrung des Bildes.
Antwort2
Jonas Granholm hat eine clevere Lösung bereitgestellt. Wenn die Bilder jedoch nicht die gleichen Abmessungen haben, wird der Filmstreifen ungleichmäßig (z. B. erster Filmstreifen unten). Das Paket „adjustbox“ (Martin Sharrer) und der von Amaru / Paul Gaborit bereitgestellte Code helfen, dieses Problem zu beheben (z. B. zweiter Filmstreifen unten). Hier ist der endgültige Code:
\documentclass{book}
\usepackage{color}
\usepackage{graphicx}
\usepackage{adjustbox} % Martin Sharrer package
\usepackage{calc}
\usepackage{ifthen}
% % % Method to adjust images to the same dimensions
% % % By Amaru / Paul Gaborit / based on Martin Sharrer package "adjustbox" http://tex.stackexchange.com/questions/60918/how-to-scale-and-then-trim-an-image/61073#61073
\newlength{\oH}
\newlength{\oW}
\newlength{\rH}
\newlength{\rW}
\newlength{\cH}
\newlength{\cW}
\newcommand\ClipImage[3]{% width, height, image
\settototalheight{\oH}{\includegraphics{#3}}%
\settowidth{\oW}{\includegraphics{#3}}%
\setlength{\rH}{\oH * \ratio{#1}{\oW}}%
\setlength{\rW}{\oW * \ratio{#2}{\oH}}%
\ifthenelse{\lengthtest{\rH < #2}}{%
\setlength{\cW}{(\rW-#1)*\ratio{\oH}{#2}}%
\adjincludegraphics[height=#2,clip,trim=0 0 \cW{} 0]{#3}%
}{%
\setlength{\cH}{(\rH-#2)*\ratio{\oW}{#1}}%
\adjincludegraphics[width=#1,clip,trim=0 \cH{} 0 0]{#3}%
}%
}
% %
% % Explanation for movie film strip cells:
% %
% % The basic cell is made of a black colorbox (colorbox).
% % \colorbox{color}{text} : same color as \textcolor{color}{text}
% % Multiple lines of text can be placed inside a colorbox providing that they are included in a minipage of a specified width.
% % \begin{minipage}{width} text \end{minipage}
% % The first and last lines of text are composed of nine small colored (white) rules (boxes) equally spaced with \hfill. The color of each rule is the same as the textcolor.
% % \textcolor{color}{text}
% % \rule[depth]{width}{height}
% % \null is the same as \hbox{} and it can be used for a material which reserves no space but shows TeX that there is a box which is taken into account for typesetting (Herbert: http://tex.stackexchange.com/questions/24919/what-is-null-and-when-do-we-need-to-use-it)
% %
% %
% %
\newcommand{\whitebox}{\hfill\textcolor{white}{\rule[1mm]{1.8mm}{2.8mm}}\hfill}
\newcommand{\SetColorForColoredSmallBoxes}[1]{ %
\def\ColoredSmallBox{\hfill\textcolor{#1}{\rule[1mm]{1.8mm}{2.8mm}}\hfill}}
\SetColorForColoredSmallBoxes{red}
\newcommand{\filmbox}[1]{% ( Jonas Granholm )
\setlength{\fboxsep}{0pt}%
\colorbox{black}{%
\begin{minipage}{3.2cm}
\rule{0mm}{4.8mm}\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null\\%
\null\hfill\includegraphics[width=3cm]{#1}\hfill\null\\[1mm]%
\null\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null
\end{minipage}}}
\newcommand{\filmboxClipImage}[1]{%
\setlength{\fboxsep}{0pt}%
\colorbox{black}{%
\begin{minipage}{3.2cm}
\rule{0mm}{4.8mm}
\ColoredSmallBox\whitebox\ColoredSmallBox\whitebox\ColoredSmallBox
\whitebox\ColoredSmallBox\whitebox\ColoredSmallBox\null\\%
\null\hfill\ClipImage{3cm}{3cm}{#1}\hfill\null\\[1mm]%
\null\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null
\end{minipage}}}
\begin{document}
\noindent
\filmbox{First-rectangle}\filmbox{Second-rectangle}\filmbox{Third-rectangle}\\
\noindent
\filmboxClipImage{First-rectangle}\filmboxClipImage{Second-rectangle}\filmboxClipImage{Third-rectangle}\\
\end{document}
Antwort3
Hier ist der endgültige Code, einschließlich der von Jonas Granholm vorgeschlagenen Korrektur.
\documentclass{book}
\usepackage{color}
\usepackage{graphicx}
\usepackage{adjustbox} % Martin Sharrer package
\usepackage{calc}
\usepackage{ifthen}
% % % Method to adjust images to the same dimensions
% % % By Amaru / Paul Gaborit / based on Martin Sharrer package "adjustbox" http://tex.stackexchange.com/questions/60918/how-to-scale-and-then-trim-an-image/61073#61073
\newlength{\oH}
\newlength{\oW}
\newlength{\rH}
\newlength{\rW}
\newlength{\cH}
\newlength{\cW}
\newcommand\ClipImage[3]{% width, height, image
\settototalheight{\oH}{\includegraphics{#3}}%
\settowidth{\oW}{\includegraphics{#3}}%
\setlength{\rH}{\oH * \ratio{#1}{\oW}}%
\setlength{\rW}{\oW * \ratio{#2}{\oH}}%
\ifthenelse{\lengthtest{\rH < #2}}{%
\setlength{\cW}{(\rW-#1)*\ratio{\oH}{#2}}%
\adjincludegraphics[height=#2,clip,trim=0 0 \cW{} 0]{#3}%
}{%
\setlength{\cH}{(\rH-#2)*\ratio{\oW}{#1}}%
\adjincludegraphics[width=#1,clip,trim=0 \cH{} 0 0]{#3}%
}%
}
% %
% % Explanation for movie film strip cells:
% %
% % The basic cell is made of a black colorbox (colorbox).
% % \colorbox{color}{text} : same color as \textcolor{color}{text}
% % Multiple lines of text can be placed inside a colorbox providing that they are included in a minipage of a specified width.
% % \begin{minipage}{width} text \end{minipage}
% % The first and last lines of text are composed of nine small colored (white) rules (boxes) equally spaced with \hfill. The color of each rule is the same as the textcolor.
% % \textcolor{color}{text}
% % \rule[depth]{width}{height}
% % \null is the same as \hbox{} and it can be used for a material which reserves no space but shows TeX that there is a box which is taken into account for typesetting (Herbert: http://tex.stackexchange.com/questions/24919/what-is-null-and-when-do-we-need-to-use-it)
% %
% %
% %
\newcommand{\whitebox}{\hfill\textcolor{white}{\rule[1mm]{1.8mm}{2.8mm}}\hfill}
\newcommand{\SetColorForColoredSmallBoxes}[1]{%
\def\ColoredSmallBox{\hfill\textcolor{#1}{\rule[1mm]{1.8mm}{2.8mm}}\hfill}}
\SetColorForColoredSmallBoxes{red}
\newcommand{\filmbox}[1]{% ( Jonas Granholm )
\setlength{\fboxsep}{0pt}%
\colorbox{black}{%
\begin{minipage}{3.2cm}
\rule{0mm}{4.8mm}\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null\\%
\null\hfill\includegraphics[width=3cm]{#1}\hfill\null\\[1mm]%
\null\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null
\end{minipage}}}
\newcommand{\filmboxClipImage}[1]{%
\setlength{\fboxsep}{0pt}%
\colorbox{black}{%
\begin{minipage}{3.2cm}
\rule{0mm}{4.8mm}%
\ColoredSmallBox\whitebox\ColoredSmallBox\whitebox\ColoredSmallBox
\whitebox\ColoredSmallBox\whitebox\ColoredSmallBox\null\\%
\null\hfill\ClipImage{3cm}{3cm}{#1}\hfill\null\\[1mm]%
\null\whitebox\whitebox\whitebox\whitebox\whitebox%
\whitebox\whitebox\whitebox\whitebox\null
\end{minipage}}}
\begin{document}
\noindent
\filmbox{First-rectangle}\filmbox{Second-rectangle}\filmbox{Third-rectangle}\\
\noindent
\filmboxClipImage{First-rectangle}\filmboxClipImage{Second-rectangle}\filmboxClipImage{Third-rectangle}\\
\end{document}