我必须PDF
经常使用两个选项打印我的文件:A 或 B。
当我更改文件内容时,由于必须更改文档中的很多位置,因此经常容易出错。
现在我想使用动态变化:
例如一些文本定义:
选项A中的定义:
vartitleA.1 = 这是选项 A
vartitleA.2 = 选项 A:ABCDE
vartitleA.3 = 显示选项 A
选项B中的定义:
vartitleB.1 = 没有 A,只有 B
vartitleB.2 = 选项 B:GHJK1238
vartitleB.3 = 显示选项 B - 否 A
在代码中,当我选择选项 = B 时,文件.pdf
应在 vartitle1、2、3 的所有位置显示选项 B 的所有定义
我的最小示例代码:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{colortbl}
%Need definition text of option A & B
% vartitleA.1 = This is option A
% vartitleA.2 = Option A: ABCDE
% vartitleA.3 = Display option A
%...similar for option B
\begin{document}
%here can i set ex. select option = option A and automatic set vartitle1=vartitleA.1, vartitle2 = vartitleA.2, vartitle3 = vartitleA.3...
\begin{tcolorbox}
This is option A %\vartitle1
\tcblower
Option A: ABCDE %\vartitle2
\end{tcolorbox}
\begin{tcolorbox}[title = {Display option A}] %vartitle3
This is option A %\vartitle1
\tcblower
Option A: ABCDE %\vartitle2
\end{tcolorbox}
Display option A %\vartitle3
\end{document}
谢谢
答案1
我定义了 6 个宏,分别用于\variantA...
和\variantB...
标题,以及一个\ifoptionA
与 切换的宏\SelectOption
,可以指定为A
或其他任何内容,与B
然后相对应。
切换定义了实例\localtitle...
中显示的内容tcolorbox
。
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{colortbl}
%Need definition text of option A & B
% vartitleA.1 = This is option A
% vartitleA.2 = Option A: ABCDE
% vartitleA.3 = Display option A
%...similar for option B
\newif\ifoptionA
\newcommand{\vartitleAone}{This is option A}
\newcommand{\vartitleAtwo}{option ABCDE}
\newcommand{\vartitleAthree}{Display option A}
\newcommand{\vartitleBone}{No A,only B}
\newcommand{\vartitleBtwo}{option B: GHJK1238}
\newcommand{\vartitleBthree}{Display option B - No A}
\def\localtitleone{}
\def\localtitletwo{}
\def\localtitlethree{}
\newcommand{\SelectOption}[1]{%
\expandafter\ifstrequal\expandafter{#1}{A}{%
\global\optionAtrue
}{%
\global\optionAfalse
}%
\ifoptionA
\gdef\localtitleone{\vartitleAone}
\gdef\localtitletwo{\vartitleAtwo}
\gdef\localtitlethree{\vartitleAthree}
\else
\gdef\localtitleone{\vartitleBone}
\gdef\localtitletwo{\vartitleBtwo}
\gdef\localtitlethree{\vartitleBthree}
\fi
}
\newtcolorbox{mynicebox}[1][]{%
#1%
}
\begin{document}
\SelectOption{A}
\begin{mynicebox}
\localtitleone
\tcblower
\localtitletwo
\end{mynicebox}
\begin{mynicebox}[title={\localtitlethree}]
\localtitleone
\tcblower
\localtitletwo
\end{mynicebox}
Display option A %\vartitleA.3
\SelectOption{B}
\begin{mynicebox}
\localtitleone
\tcblower
\localtitletwo
\end{mynicebox}
\begin{mynicebox}[title={\localtitlethree}]
\localtitleone
\tcblower
\localtitletwo
\end{mynicebox}
\end{document}