동일한 형식으로 여러 개의 회고록을 만들어야 합니다. 각 문서에 대해 앞 표지의 여러 기능(예: 배경색)을 사용자 정의하고 싶습니다. \doctype
문서 유형을 인코딩하는 변수(예: 유형 1 또는 유형 2)를 문서의 서문에 정의하고 \IfStrEqCase
명령을 사용하여 문서 유형을 적절한 색상으로 매핑함으로써 앞표지 사용자 정의를 자동화하려고 합니다. . 이것은 단순화된 MWE입니다.
mytemplate.tex
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{xstring}
\usepackage{tikz}
\usepackage{lipsum}
mycover.tex
\newcommand\CoverBackgroundColor{%
\IfStrEqCase{\doctype}{
{one}{red}
{two}{green}
[gray]
}}
\begin{tikzpicture}[overlay, remember picture]
\fill[\CoverBackgroundColor] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
\thispagestyle{empty}
\clearpage
doc1.tex
\documentclass[12pt,a4paper,oneside]{memoir}
\input{mytemplate}
\newcommand{\doctype}{one}
\begin{document}
\input{mycover}
\lipsum[1]
\end{document}
doc2.tex
\documentclass[12pt,a4paper,oneside]{memoir}
\input{mytemplate}
\newcommand{\doctype}{two}
\begin{document}
\input{mycover}
\lipsum[2]
\end{document}
doc1
의 앞 표지는 빨간색이고 의 앞 표지는 녹색일 것으로 예상했는데 doc2
다음 오류가 발생했습니다.
<to be read again>
1
l.9 \fill[\CoverBackgroundColor]
(current page.south) rectangle (current page....
?
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
문제는 그렇다는 \CoverBackgroundColor
것이다~ 아니다색상으로 확장되지만 다음에 대한 지침 세트로 확장됩니다.인쇄색상 이름.
코드를 mycover.tex
다음으로 교체하세요.
%%% mycover.tex
\ExplSyntaxOn
\NewExpandableDocumentCommand\CoverBackgroundColor{}
{
\str_case_e:nnF {\doctype}
{
{one}{red}
{two}{green}
}
{gray}
}
\ExplSyntaxOff
\begin{tikzpicture}[overlay, remember picture]
\fill[\CoverBackgroundColor] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
\thispagestyle{empty}
\clearpage
%%%
너~하지 않다하고 싶다 \include{mytemplate}
. 사용 \input
.