我正在開發一個項目,需要在 LaTeX 中疊加兩個 PDF 文件並控制每層的不透明度。具體來說,我想在一個頁面中包含兩個 PDF 頁面,並調整每個 PDF 的可見度。我熟悉基本的 LaTeX 指令,但以前沒有做過類似的事情。
有人可以指導我如何實現這個目標嗎? LaTeX 中是否有特定的套件或命令可以使用可調整的不透明度設定覆蓋 PDF?任何範例程式碼或對類似項目的引用將不勝感激。
答案1
提示:在 PDF 上疊加或多或少不透明的填充矩形。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\geometry{landscape}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node(img){\includegraphics[width=0.48\textwidth]{imagePDF.pdf}};
\draw[fill=yellow,opacity=0.2] (img.north east) rectangle (img.south west);
\end{tikzpicture}
\begin{tikzpicture}
\node(img){\includegraphics[width=0.48\textwidth]{imagePDF.pdf}};
\draw[fill=yellow,opacity=0.8] (img.north east) rectangle (img.south west);
\end{tikzpicture}
\end{document}
答案2
以下pdflatex
範例使用TikZ
.三個圖形與各種透明度重疊: (1) 最左邊的圖形完全不透明,顯示原始圖形的外觀。 (2) 右圖使用 0.75 的 alpha 值進行疊加,但原始圖中的每個物件都獨立地變成半透明。 (3)最後將第三個圖形放入透明組內,整體設為半透明。您很可能希望在疊加 PDF 文件時使用後者。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) at (0,0) {\includegraphics{figure.pdf}};
\node[opacity=.75] (N2) at (3cm,0) {\includegraphics{figure.pdf}};
\begin{scope}[transparency group, opacity=.75]
\node (N3) at (1.5 cm,-3cm) {\includegraphics{figure.pdf}};
\end{scope}
\end{tikzpicture}
\end{document}
解釋
TiKZ 中給予繪圖指令的鍵opacity
設定當前阿爾法筆劃操作(如繪製線條)和其他繪畫操作(如填滿區域或繪製點陣圖影像)的值。其值在 1.0(不透明,預設)和 0.0(透明)之間。
在右圖中(第二個包含項,節點N2),每條線或區域都用半透明顏色進行描邊或填充,甚至是那些旨在模糊圖形其他部分的顏色(設計者經常使用覆蓋而不是剪裁)。請看下面的例子:右邊帶有字母B的藍色方塊沒有覆蓋下面的紅色虛線圓圈(12點鐘和3點鐘之間的弧線),並且字母A下方的“隱藏文字”也被顯示出來。此外,如果包含的 PDF 已使用透明度,它將覆蓋我們的設置,並將不透明度重置為原始文件中給定的任何值。這通常不是人們想要的。
底部的圖(第三個包含,節點 N3)被放置在所謂的透明小組。它本質上是一個scope
具有選項transparency group
和不透明度值的環境。首先對人物進行正常繪製,然後將其整體設為半透明。因此,字母 A 下的「隱藏文字」不會被顯示,藍色方塊正確地隱藏了紅色弧線。字母 B 下面的紅色弧線來自第二個內含物(6 點鐘和 7 點鐘之間的弧線)。這就是人們通常想要的。您可能希望將包含的兩個 PDF 放入單獨的透明度群組中。opacity
您可能還想嘗試blend mode=multiply
透明度群組中的選項,而不是。這將混合包含的 PDF 圖像,而不用白色背景對它們進行著色。
在上面的範例中,範例輸入figure.pdf
由以下程式碼產生:
%%% This is figure.tex.
\documentclass{article}
\usepackage[papersize={45mm,45mm}]{geometry}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\node[scale=2, anchor=north, align=center] (C) at (current page) {Hidden\\text};
\node[circle, draw, line width=10pt, color=red, loosely dotted, fill=green!20,
scale=6] (A) at (current page) {A};
\node[draw, line width=12pt, color=blue!50!black, fill=white, anchor=north east,
scale=4, outer sep=1.5pt] (B) at (current page.north east) {B};
\end{tikzpicture}
\end{document}