我正在尝试创建一个新功能,使我的生活更简单。代码应该进行分页并在下一页输出彩色框。以及在代码中放入一些东西TOC
,但在命令内部则不行。有人知道怎么做吗?
最终的设置将是这样的命令
\DEL{1}
生产
\newpage
\phantomsection
\addcontentsline{toc}{section}{{\color{red}\Large{Del 1}}}
\fcolorbox{black}{LightSteelBlue}{\parbox[t][1.25cm][c]{\textwidth}
{\begin{center}\textbf{Del 1 \\Uten hjelpemiddler}\end{center}}} }
和
\Del{2}
制作
\newpage
\phantomsection
\addcontentsline{toc}{section}{{\color{red}\Large{Del 2}}}
\fcolorbox{black}{LightSteelBlue}{\parbox[t][1.25cm][c]{\textwidth}
{\begin{center}\textbf{Del 1 \\Uten hjelpemiddler}\end{center}}} }
我尝试发出一个新命令
\newcommand{\Del}{
\newpage
\phantomsection
\addcontentsline{toc}{section}{{\color{red}\Large{Del 2}}}
\fcolorbox{black}{LightSteelBlue}{\parbox[t][1.25cm][c]{\textwidth}
{\begin{center}\textbf{Del 1 \\Uten hjelpemiddler}\end{center}}} }
}
唉,这给了我一些奇怪的错误,我还没有开始我的文档。
现在,我认为所有命令(例如 newpage latex)都不希望在命令内部。期待看到您的聪明想法,以解决这个问题 =)
现在,多亏了以下的努力。我能够找到我所寻找的东西,并且几乎解决了它。
现在,此功能将作为标题用于测试和考试。“Uten hjelpemidler”意味着无需任何帮助/工具。只需笔和纸。
而“Med hjelpemiddler”则包含所有可用的工具,如计算机计算器等。现在下面的函数应该计算我每次使用此类标题时的计数。输入参数用于说明该部分是否包含计算器。
问题是,当将计数器“tittel”放入函数内部时,会出现错误。有人知道如何修复这个问题吗?=)
\documentclass[border=5pt,tightpage]{standalone}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{xstring}
\newcounter{tittel}
\renewcommand{\thetittel}{\arabic{tittel}}
\newcommand{\tittel}{\stepcounter{tittel} \thetittel }
\setcounter{tittel}{0}
\newcommand{\Del}[1]{%
\IfStrEqCase{#1}{%
{u}{\def\Label{Uten }}%
{m}{\def\Label{Med }}%
}[\def\Label{UNKNOWN}]%
% \newpage
\phantomsection
\addcontentsline{toc}{section}{%
\protect\textcolor{red}{\protect\Large{Del \tittel }}}
\noindent\fcolorbox{black}{LightSteelBlue}{%
\parbox[t][1.25cm][c]{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{
\centering\bfseries Del \tittel \\ \Label hjelpemider}%
}%
}
\begin{document}
Del{u}
Del{m}
Del{u}
\end{document}
删除 tittel 前面的 \ 会使命令运行。因此在命令中添加计数器会使命令失败 =(
答案1
由于完整的平均能量损失使用适当的软件包,没有提供,我做了一些调整来编译它,但这可能是您正在寻找的:
[1]
中的指定宏需要\newcommand
多少个参数。然后要在命令中访问此参数,请使用。类似地,如果有两个参数,则可以使用和 ,它们将以和等形式访问。 最多可以为 9 个参数。Del
#1
[2]
#1
#2
\newcommand
应%
在每行末尾添加以确保不会插入多余的空格。尝试删除它们,看看没有它们会发生什么。我按照以下方法艰难地学会了这一点Tex 容量超出范围(如果在使用宏后删除%),所以我建议你应该养成包括的习惯%
。
\documentclass[border=5pt,tightpage]{standalone}
\usepackage{xcolor}
\usepackage{hyperref}
\newcommand{\Del}[1]{%
\newpage%
\phantomsection%
\addcontentsline{toc}{section}{{\color{red}\Large{Del #1}}}%
\fcolorbox{black}{blue!10}{\parbox[t][1.25cm][c]{\textwidth}%
{\begin{center}\textbf{Del #1 \\Uten hjelpemiddler}\end{center}}}%
}
\begin{document}
\Del{1}
\Del{2}
\end{document}
如果我理解您的评论,您希望标题根据是否使用{1}
或而有所不同。如果是这样,您可以使用该包来处理各种情况。在这里,我按照您对这两种情况的期望进行操作,并打印是否提供了或以外的字符:{2}
xstring
UNKNOWN
{1}
{2}
\documentclass[border=5pt,tightpage]{standalone}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{xstring}
\newcommand{\Del}[1]{%
\IfStrEqCase{#1}{%
{1}{\def\Label{Uten hjelpemiddler}}%
{2}{\def\Label{Med hjelpemidler}}%
}[\def\Label{UNKNOWN}]%
\newpage%
\phantomsection%
\addcontentsline{toc}{section}{{\color{red}\Large{Del #1}}}%
\fcolorbox{black}{blue!10}{\parbox[t][1.25cm][c]{\textwidth}%
{\begin{center}\textbf{Del #1 \\\Label}\end{center}}}%
}
\begin{document}
\Del{1}
\Del{2}
\Del{3}
\end{document}
答案2
\newcommand{\DEL}[2]{%
\newpage
\phantomsection
\addcontentsline{toc}{section}{%
\protect\textcolor{red}{\protect\Large{Del #1}}}
\noindent\fcolorbox{black}{LightSteelBlue}{%
\parbox[t][1.25cm][c]{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{
\centering\bfseries Del #1 \\ #2}%
}%
}
调用方式
\DEL{1}{Uten hjelpemiddler}
请注意,不仅%
缺少一些字符,而且\parbox
太大并且缩进也向右移动。
最好使用\centering
而不是center
内部的环境;也可以通过使用 等限制在盒子中的\parbox
声明来消除其他括号对。\bfseries