定义包含分页符和框的命令

定义包含分页符和框的命令

我正在尝试创建一个新功能,使我的生活更简单。代码应该进行分页并在下一页输出彩色框。以及在代码中放入一些东西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}xstringUNKNOWN{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

相关内容