
是否可以製作嵌入 PDF 影像的電影膠片?
答案1
\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}
正如 SDrolet 指出的,如果包含的圖片具有不同的寬高比,則幀將不均勻。這可以透過兩種方式解決:
- 使用 SDrolet 的解決方案修剪到特定尺寸。這意味著丟失部分圖片。
- 透過在 的定義中新增
height
選項來縮放到特定大小。這意味著扭曲圖像。\importgraphics
\filmbox
答案2
喬納斯·格蘭霍姆提供了一個巧妙的解決方案。但是,如果影像的尺寸不同,則電影膠片將不均勻(例如:下面的第一部電影膠片)。 「adjustbox」套件(Martin Sharrer)和 Amaru / Paul Gaborit 提供的程式碼有助於解決這個問題(例如:下面的第二部電影)。這是最終的程式碼:
\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}
答案3
這是最終的代碼,包括 Jonas Granholm 建議的更正。
\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}