在 biditufte 类中使用 titlesec

在 biditufte 类中使用 titlesec

我想专门研究波斯语 biditufte 课程。我在报告课程中使用了此代码,但在 biditufte-handout 课程中出现了错误。

\documentclass{report}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}

\definecolor{sec}{HTML}{DD5C14}
\definecolor{band}{HTML}{EE9C52}

\titleformat{\section}[hang]{\sffamily\Huge\bfseries}{}{0.5ex}%
  {\begin{minipage}{0.975\textwidth}%
  \noindent
  \color{band}%
  \llap{\vrule width\textwidth height1ex depth0ex\hskip0.75ex}%
  \textcolor{sec}{\unskip#1}%
  \hskip0.75ex%
  \rlap{\vrule width\textwidth height1ex depth0ex}%
\end{minipage}}[\smallskip]


\usepackage[Kashida]{xepersian}
\settextfont[Language=Default]{Persian Modern}
\setdigitfont{Persian Modern}

\begin{document}
\section[\rl{اولین هدر} ]{\rl{اولین\\  بخش}}

مقداری متن برای اولین بخش

\end{document}

是否有任何解决方案可以在此类中使用 titlesec?如果没有,我该怎么做才能像上面的代码一样更改所有部分?

谢谢。

答案1

该类已在未使用该选项的情况下biditufte-handout加载,因此您无法使用该选项再次加载它。titlesecexplicit

这不是一个大问题:如果没有这个explicit选项,最后一个强制参数\titleformat可以是空的,也可以是一个带参数的宏,部分标题将被传递给该宏。

但是,还必须覆盖\titleformat该类发出的指令,从而延迟开始文档时的新指令。

\documentclass{biditufte-handout}
\usepackage{xcolor}

\definecolor{sec}{HTML}{DD5C14}
\definecolor{band}{HTML}{EE9C52}

\newcommand{\dosection}[1]{%
  \begin{minipage}{0.975\textwidth}
  \noindent
  \color{band}%
  \llap{\vrule width\textwidth height1ex depth0ex\hskip0.75ex}%
  \textcolor{sec}{\unskip#1}%
  \hskip0.75ex
  \rlap{\vrule width\textwidth height1ex depth0ex}%
  \end{minipage}%
}

\AtBeginDocument{%
  \titleformat{\section}[hang]
    {\sffamily\Huge\bfseries}
    {}
    {0.5ex}
    {\dosection}
    [\smallskip]%
}

\usepackage[Kashida]{xepersian}
\settextfont[Language=Default]{Persian Modern}
\setdigitfont{Persian Modern}

\begin{document}
\section[\rl{اولین هدر} ]{\rl{اولین\\  بخش}}

مقداری متن برای اولین بخش

\end{document}

在此处输入图片描述

相关内容