我使用 OCG 有以下功能,点击 2 个框可打开更多项目。我如何将它们水平对齐到页面上,以便下拉菜单也位于框下方?(将有 4 或 5 个框)目前我有这个,但它根本不起作用:
\documentclass[50pt]{report}
\usepackage{ocgx}
\usepackage{tikz}
\addtolength{\topmargin}{-.875in}
\addtolength{\textheight}{1.75in}
\begin{document}
\switchocg{ocg1}{\fcolorbox{black}{white}{\bfseries \Large \resizebox{2cm}{!}{Box 1}}}\\\indent \begin{ocg}{OCG 1}{ocg1}{0}
\colorbox{white}{ \parbox{10cm}{\colorbox{green}{\huge Item 1}\\\colorbox{red}{\huge \color{white}{Item 2}}\\\colorbox{green}{\huge Item 3}\\\colorbox{green}{\huge Item 4}}}
\end{ocg}
\quad
\switchocg{ocg1}{\fcolorbox{black}{white}{\bfseries \Large \resizebox{2cm}{!}{Box 2}}}\\\indent \begin{ocg}{OCG 2}{ocg2}{0}
\colorbox{white}{ \parbox{10cm}{\colorbox{green}{\huge Item 1}\\\colorbox{red}{\huge \color{white}{Item 2}}\\\colorbox{green}{\huge Item 3}\\\colorbox{green}{\huge Item 4}}}
\end{ocg}
\end{document}
答案1
我不确定这是否是您想要的。我对这个包没有太多经验,也不确定如何计算交互式内容所占用的空间。当然,可以将其中的一部分存储在里面,\savebox
然后通过这种方式获取尺寸,但我认为在里面时,交互性会受到破坏\savebox
。因此,我刚刚计算了“Box 2”的长度,其周围有- fcolorbox
。
建议
- 组织你的代码。在逻辑位置添加缩进和新行,记住你需要
%
在某些行的末尾使用,这样就不会产生空格。 - DRY。不要重复自己。不要一遍又一遍地写东西,比如
\colorbox{green}{\huge Item 1}
,为它创建一个命令。这使得保持一致变得容易得多,并且以后更改内容也更容易。如果你想将绿色改为蓝色,或者创建一个更漂亮的盒子怎么办?你必须替换其中每一个。使用命令,你只需更改其内容即可。
为了使其居中,我使用了一些小页面。
输出
代码
\documentclass[50pt]{report}
\usepackage{ocgx}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{calc}
\newlength{\BOXlength}
\setlength{\BOXlength}{%
\widthof{%
\fcolorbox{black}{white}{%
\bfseries\Large%
\resizebox{2cm}{!}{Box 2}}}%
}
\addtolength{\topmargin}{-.875in}
\addtolength{\textheight}{1.75in}
\newcommand{\ocgItem}[2]{%
% input:
% #1: colorselection. write 1 here for red, 2 for green
% #2: The Text displayed.
% Example: \ocgItem{2}{Item 1}\\% Produces green
\colorbox{%
\ifcase#1 \or
red\or%1
green\fi%2
}{\huge #2}%
}
\begin{document}
\lipsum[1]
\begin{minipage}{\textwidth}
\centering
\begin{minipage}[t]{\BOXlength}
\switchocg{ocg1}{%
\fcolorbox{black}{white}{%
\bfseries\Large%
\resizebox{2cm}{!}{Box 1}}}\\%
\begin{ocg}{OCG 1}{ocg1}{0}
\colorbox{white}{%
\parbox{10cm}{%
\ocgItem{2}{Item 1}\\%
\ocgItem{1}{Item 2}\\%
\ocgItem{2}{Item 3}\\%
\ocgItem{1}{Item 4}%
}%
}
\end{ocg}
\end{minipage}\hspace{2em}
\begin{minipage}[t]{\BOXlength}
\switchocg{ocg2}{%
\fcolorbox{black}{white}{%
\bfseries\Large%
\resizebox{2cm}{!}{Box 2}}}\\%
\begin{ocg}{OCG 2}{ocg2}{1}
\colorbox{white}{%
\parbox{10cm}{%
\ocgItem{1}{Item 1}\\%
\ocgItem{2}{Item 2}\\%
\ocgItem{1}{Item 3}\\%
\ocgItem{2}{Item 4}%
}%
}
\end{ocg}
\end{minipage}%
\end{minipage}
\lipsum[2]
\end{document}