我利用这memoir
门课来制作一本儿童诗集。为了让读者更感兴趣,我依靠包装background
来包含覆盖整个页面的图片。
有时,如果背景图像干扰了文本,文本的可读性就会很差。在这种情况下,我会编辑图像并移动其中的一些元素,反复进行,直到结果看起来不错。但是,当诗句被打乱或字体大小发生变化时,必须重新进行此过程。以下是此类问题的一个例子:
我正在寻找一种“关注内容,而不是展示”的方法,我认为在背景和文本之间放置一个形状可以解决这个问题。我设想了这样一种情况,我可以调整形状的不透明度并模糊其边缘:
如何用 LaTeX 实现这一点,即当文本发生变化时,形状的大小会自动调整?我也会喜欢那些不是完全自动化的解决方案,但它们完全在 LaTeX 中工作,不需要编辑图像本身。
以下是重现该问题的一个最小示例:
\documentclass[14pt]{memoir}
\usepackage[pages=some]{background}
\begin{document}
\PlainPoemTitle
\PoemTitle{Lo Remipsum}
\begin{verse}[\versewidth]
one two three four \\
one two three four \\
one two three four \\
one two three four.
\end{verse}
\backgroundsetup{scale = 1,
angle = 0,
opacity = 1,
contents = {\includegraphics[
width = \paperwidth,
height = \paperheight]
{example-image-a}}}\BgThispage
\end{document}
这是书中的一个实际例子。目前的解决方法是降低背景的不透明度,使对比度可以接受。但理想情况下,图像不应该看起来太苍白,除了在文本下面。
答案1
另一种可能性(但需要大量手动操作……)是将文本打印在具有给定透明度的白色填充的矩形中。例如,使用 Ti钾Z:
\documentclass[14pt]{memoir}
\usepackage[pages=some]{background}
\usepackage{tikz}
\begin{document}
\PlainPoemTitle
\PoemTitle{Lo Remipsum}
\hspace{8cm}\tikz \node[text width=5cm, fill=white, fill opacity=0.7, text opacity=1]{
one two three four \\
one two three four \\
one two three four \\
one two three four.
};
\backgroundsetup{scale = 1,
angle = 0,
opacity = 1,
contents = {\includegraphics[
width = \paperwidth,
height = \paperheight]
{example-image-a}}}\BgThispage
\end{document}
如果背景图片是白色背景的话,效果会更好。
为了模糊边缘,我可以使用圆形阴影;不幸的是,我不知道如何定义像您在示例中展示的“矩形阴影”,但或许是可能的。
\documentclass[14pt]{memoir}
\usepackage[pages=some]{background}
\usepackage{tikz}
\usetikzlibrary{fadings}
\pgfdeclareradialshading{myfadingraw}{\pgfpointorigin}{
color(0pt)=(pgftransparent!30); color(21bp)=(pgftransparent!30);
color(25bp)=(pgftransparent!100); color(50bp)=(pgftransparent!100)}%
\pgfdeclarefading{side shaded}{\pgfuseshading{myfadingraw}}%
\begin{document}
\PlainPoemTitle
\PoemTitle{Lo Remipsum}
\hspace{8cm}\tikz \node[text width=4.5cm, fill=white,
path fading = side shaded,
text opacity=1, inner xsep=2cm, inner ysep=0.5cm]{
one two three four \\
one two three four \\
one two three four \\
one two three four.
};
\backgroundsetup{scale = 1,
angle = 0,
opacity = 1,
contents = {\includegraphics[
width = \paperwidth,
height = \paperheight]
{example-image-a}}}\BgThispage
\end{document}