xcolor
我正在尝试使用文档中包的基本颜色standalone
,但返回了以下错误:
main/filename.tex|29␣error|␣Package␣xcolor␣Error:␣Undefined␣color␣`MAGENTA'.
主要文件内容如下:
\documentclass[10pt, b6paper, twoside, openright]{memoir}
\setlrmarginsandblock{1.25cm}{.5cm}{*}
\setulmarginsandblock{1.5cm}{*}{1}
\checkandfixthelayout{}
\usepackage{float}
\usepackage{titlesec}
\usepackage[dvipsnames]{xcolor}
\usepackage[headings]{fancyhdr}
\usepackage{minitoc}
\usepackage{array}
\usepackage{pdfpages}
\usepackage{standalone}
\begin{document}
\tableofcontents{}
\dominitoc{}
\input{mwedoc}
\end{document}
我的独立文档(mwedoc)包含以下内容:
\documentclass{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage[headings]{fancyhdr}
\usepackage{titlesec}
\usepackage{float}
\usepackage{minitoc}
\usepackage{array}
\begin{document}
\chapter{Chapter Title}
\begin{table}[htbp]
\begin{center}
\begin{tabular}[c]{ m{(\textwidth-0.5in)/2} m{(\textwidth-0.5in)/2} }
\Large{\textcolor{magenta}First} &
\Large{\textcolor{magenta}Second} \\
\textcolor{red}{1. Mondays} &
\textcolor{red}{1. Mondays} \\
\textcolor{red}{2. Saturdays} &
\textcolor{red}{2. Thursdays} \\ &
\textcolor{red}{3. Sundays:}
\end{tabular}
\end{center}
\end{table}
\thispagestyle{fancy}
\minitoc{}
\newpage{}
\end{document}
答案1
standalone
包的基本默认行为是,对于子文件,它“忽略任何内容直到下一个\begin{document}
,然后将文档环境作为一个简单的组”(texdoc standalone
,s6.1(p22)) - 也就是说,在默认模式下,它会跳过子文件的前言,包括命令\documentclass{}
。
为了演示,请输入两个文件:它们都具有相同的内容(a tabular
),但其中一个文件是standalone
班级并通过前言命令为页面背景着色;另一个文件是article
类,并使用命令为表格本身着色\colorbox{}{}
。
第一个子文件被调用input1.tex
,并在自行编译时生成以下内容:
平均能量损失
\documentclass[border=6pt]{standalone}
\usepackage{xcolor}
\pagecolor{blue!12}
\begin{document}
\fbox{\begin{tabular}[l]{ ll }
\Large\textcolor{magenta}First1 &
\Large\textcolor{magenta}Second2 \\
\textcolor{red}{1. Mondays} &
\textcolor{red}{1. Mondays} \\
\textcolor{red}{2. Saturdays} &
\textcolor{red}{2. Thursdays} \\ &
\textcolor{red}{3. Sundays:}
\end{tabular}
}
\end{document}
第二个文件,input2.tex
将其作为标准尺寸默认页面上的第一个项目,并带有页码(页面大小和页码由文档类定义):
完整页面:
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\pagecolor{red!2}
\usepackage{array}
\begin{document}
\fbox{\colorbox{green}{\begin{tabular}[l]{ ll }
\Large\textcolor{magenta}First2 &
\Large\textcolor{magenta}Second2 \\
\textcolor{red}{1. Mondays} &
\textcolor{red}{1. Mondays} \\
\textcolor{red}{2. Saturdays} &
\textcolor{red}{2. Thursdays} \\ &
\textcolor{red}{3. Sundays:}
\end{tabular}
}}
\end{document}
现在,standalone
在主文件中使用包并对input
两个子文件进行 ting 操作会产生以下结果:
在这两种情况下,都会跳过子文件前言,只将\begin{document}
和之间的内容\end{document
导入主文档。
第一个子文件的\pagecolor{}
命令位于前言中,对 没有影响input
;第二个子文件的\colorbox{}{}
命令位于文档主体中,并延续到input
。
换句话说,standalone
包的默认值就像是介于两者之间的任何内容\begin{document}
,\end{document
只是复制粘贴到主文档中。
旁注:standalone
软件包具有与如何处理前导码相关的选项,例如,合并多个软件包选项。此外,在某些情况下,特别是在软件包的加载顺序很重要的情况下,子文件前导码可能需要“小心地合并到主前导码中”,并且standalone
软件包有一个选项可以帮助完成此任务(第 23 页)。
现在,standalone
班级(最初的意图:在裁剪的 PDF 画布中生成单个图像)没有这样的页面,因此浮动无处可浮动(因此figure
毫无用处),没有要设置的标题,因为没有边距(因此也没有居中),章节和其他分段命令没有上下文,因此会出错(因此没有目录)。等等。这将实际输入文件减少到只有tabular
(包括来自另一个答案的 @JohnKormylo 更正的列大小代码):
注意:magenta
是 19 种基本颜色之一xcolor
,因此[dvipsnames]
不需要选项。Magenta
(大写M
)是 dvispsnames 颜色名称(texdoc xcolor
列出所有(已定义的)颜色名称)。
注 2:使用\documentclass[class=memoir]{standalone}
允许底层类中的一些可用设置通过(字体大小和间距设置)。默认底层类是article
。
平均能量损失
\documentclass[class=memoir]{standalone}
\usepackage{xcolor}
%\usepackage{fancyhdr}
%\usepackage{titlesec}
%\usepackage{float}
%\usepackage{minitoc}
\usepackage{array}
\begin{document}
% \chapter{Chapter Title}
% \begin{table}[htbp]
% \begin{center}
\begin{tabular}[c]{ m{\dimexpr 0.5\textwidth-0.25in} m{\dimexpr 0.5\textwidth-0.25in} }
\Large{\textcolor{magenta}First} &
\Large{\textcolor{magenta}Second} \\
\textcolor{red}{1. Mondays} &
\textcolor{red}{1. Mondays} \\
\textcolor{red}{2. Saturdays} &
\textcolor{red}{2. Thursdays} \\ &
\textcolor{red}{3. Sundays:}
\end{tabular}
% \end{center}
% \end{table}
% \thispagestyle{fancy}
% \minitoc{}
% \newpage{}
\end{document}
input
产生:
平均能量损失
\documentclass[10pt, b6paper, twoside, openright]{memoir}
\setlrmarginsandblock{1.25cm}{.5cm}{*}
\setulmarginsandblock{1.5cm}{*}{1}
\checkandfixthelayout{}
\usepackage{float}
%\usepackage{titlesec}
\usepackage{xcolor}
\usepackage{fancyhdr}
\usepackage{minitoc}
\usepackage{array}
\usepackage{pdfpages}
\usepackage{standalone}
\begin{document}
% \tableofcontents{}
% \dominitoc{}
\input{input1}
\input{input2}
\par\bigskip
\input{input3}
\end{document}
对于颜色,使用开关{\color{magenta} text}
或命令\textcolor{magenta}{text}
将“文本”颜色设为洋红色。
尽管如此,使用 还是standalone
更加微妙: class 有和等standalone
选项,尽管如此,“一般建议将浮动环境保留在主文档内,并仅将其内容放入独立文件中。这也使得在不同主文档的不同浮动中包含相同内容变得简单。如果使用类似[它们] 的包定义自定义浮动,则尚不受支持。根据它们定义浮动的方式,它们可能仍然有效。”(第 12 页)crop=false
multi=...
float=...
float
在这种情况下,在输入文件中使用memoir
class 而不是class可能会更有效。standalone
答案2
这不是一个答案,而是一个工作回忆录 MWE。
\chapter
在 standalone 类中包含或 之类的东西是没有意义的\minitoc
。可以将 standalone 作为包包含(参见手册第 6 节),但据我所知,它实际上所做的只是定义\includestandalone
。
\documentclass{memoir}
\usepackage[dvipsnames]{xcolor}
\usepackage[headings]{fancyhdr}
\usepackage{titlesec}
\usepackage{float}
\usepackage{minitoc}
\usepackage{array}
\usepackage{showframe}% MWE only
\begin{document}
\chapter{Chapter Title}
\begin{table}[htbp]
\centering
\fbox{\begin{tabular}[c]{ m{\dimexpr 0.5\textwidth-0.25in} m{\dimexpr 0.5\textwidth-0.25in} }
\textcolor{magenta}{\Large First} &
\textcolor{magenta}{\Large Second} \\
\textcolor{red}{1. Mondays} &
\textcolor{red}{1. Mondays} \\
\textcolor{red}{2. Saturdays} &
\textcolor{red}{2. Thursdays} \\ &
\textcolor{red}{3. Sundays:}
\end{tabular}}
\end{table}
\thispagestyle{fancy}
\minitoc{}
\newpage{}
\end{document}
答案3
OP似乎混淆了两个概念:
导入代码与
导入图形。
如果您希望导入代码,请\input
在主文档中使用;但是,导入的文档的行为就像您将其插入(通过键入)主文档一样。因此,导入的文档不能有\documentclass
、\usepackage
s 或\begin
和\end{document}
。它从主文档继承了这些特征。
另一方面,如果您希望导入图形,独立文件应该完全自给自足,具有自己的\documentclass
、\usepackage
和\begin
和\end{document}
。但是在这种情况下,您首先编译独立文档以创建 PDF。然后,在主文档中,您不使用\input
,而是\includegraphics{mwedoc}
显示 mwedoc.pdf 的 PDF 图形。是否将 放在环境\includegraphics
中figure
是一个风格问题,但基本概念是相同的。