下一个兄弟运算符

下一个兄弟运算符

我对 TeX 还很陌生,所以我不太确定我所问的问题的正确术语是什么,所以请耐心等待!

我有一堆 LaTeX 书籍,正在通过 HeVeA 将其转换为 HTML。TeX 代码中有类似以下内容:

\csttitle{Part I Title}
\cstsubtitle{Part Subtitle}

然后再往下看,我有类似这样的事情:

\cstchaptertitle{Chapter Title}
\cstsubtitle{Chapter Subtitle}

所以基本上我有\cstsubtitle{}所有的字幕,但在我的 HTML 中,我需要区分\cstsubtitle{}后面的\csttitle{}\cstchaptertitle{}

我知道这是 TeX 代码,但也许它能帮助我表达我的想法...

对于第一个例子,我希望样式表中有这种逻辑:

if (prevSibling == '\csttitle') {    
  \renewcommand{\cstsubtitle}[1]{
    \@open{div}{class="part cstsubtitle"}#1\@close{div}  
  }
}

这是第二个例子:

if (prevSibling == '\cstchaptertitle') {    
  \renewcommand{\cstsubtitle}[1]{
    \@open{div}{class="chapter cstsubtitle"}#1\@close{div}  
  }
}

答案1

看来您只需要在\csttitle和之后切换一个标志\cstchaptertitle,然后检查该标志。下面我根据它是在或之后来\cstsubtitle更改颜色。\cstsubtitle\csttitle\cstchaptertitle

在此处输入图片描述

笔记:

代码:

\documentclass{article}

\usepackage{xcolor}
\usepackage{etoolbox}
\newtoggle{AfterCsTitle}

\newcommand{\csttitle}[1]{\global\toggletrue{AfterCsTitle}\textbf{#1}\par}%
\newcommand{\cstchaptertitle}[1]{\global\togglefalse{AfterCsTitle}\textbf{#1}\par}%

\newcommand{\cstsubtitle}[1]{%
    \iftoggle{AfterCsTitle}{%
        \textcolor{red}{#1}%
    }{%
        \textcolor{blue}{#1}%
    }%
}%

\begin{document}

\csttitle{Part I Title}
\cstsubtitle{Part Subtitle}

\medskip
Then down further I have something like this:
\medskip

\cstchaptertitle{Chapter Title}
\cstsubtitle{Chapter Subtitle}

\end{document}

相关内容