在 {} 参数内格式化多行,例如 \ifbool

在 {} 参数内格式化多行,例如 \ifbool

好的,作为上一个问题的后续,如何在 {} 括号内格式化多个命令,以便它不会崩溃,抛出错误?谢谢

例子

\ifbool{@switch}{???????????}{???????}

这有效:

例如:doofus.sty

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doofus}%
[2014/01/01 v0.01a LaTeX doofus package]%\filedate\space\fileversion\space 
\typeout{Package doofus, \csname [email protected]\endcsname%
^^ Copyright (C) 2014 ^^J}

\RequirePackage{calc}
\RequirePackage{xkeyval}[2006/11/18]
\usepackage{ifthen}
\usepackage{etoolbox}

\newbool{@epubstate}
\boolfalse{@epubstate}
\DeclareOption{epub}{\booltrue{@epubstate}}
\ProcessOptions%

\ifbool{@epubstate}{\newcommand{\doofus}{\textcolor{black}{7\spadesuit}}
\newcommand{\doofustwo}{\textcolor{black}{6\spadesuit}}}
{\newcommand{\doofus}{\textcolor{red}{7\heartsuit}}\newcommand{\doofustwo}{\textcolor{red}}{6\heartsuit}}}

但我需要在每个 ifthen {} 中放入 50 行。如何确保语法正确?

答案1

我不确定我是否正确理解了你的问题:

我如何确保它的语法正确?

如果我这样做了,我认为您的问题可以通过两种方法解决,我强烈推荐这两种方法:

  1. 使用缩进:

    \ifbool{@epubstate}{
        \newcommand{\doofus}{\textcolor{black}{7\spadesuit}}
        \newcommand{\doofustwo}{\textcolor{black}{6\spadesuit}}
    }{
        \newcommand{\doofus}{\textcolor{red}{7\heartsuit}
        \newcommand{\doofustwo}{\textcolor{red}}{6\heartsuit}}
        %% ... 48 commands more
    }
    

    这已经很好读了。

  2. 使用支持语法高亮的编辑器,当光标位于右括号时,会为相应的左括号着色。可用的编辑器有vimkile以及emacs许多其他编辑器。

相关内容