使用取决于的计数器chapter:

使用取决于的计数器chapter:

我正在准备一个用于编写标准政策和程序 (SOP) 的模板。我想将章节标题放在一个表格单元格中,将编号放在另一个单元格中,如所附快照所示。我的代码如下:

在此处输入图片描述

        \documentclass[a4paper,12pt,titlepage,oneside,final]{book}
        \usepackage{multirow}
        \usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
        \usepackage{fancyhdr}
        \usepackage{longtable}
        
        
        \begin{document}
            
        \newcommand{\revno}{IR.01}
        \newcommand{\printdate}{01-Jan-23}
        \newcommand{\issuedate}{01-Jan-24}
        \newcommand{\co}{Saudia}
        \newcommand{\doctitle}{ADD TITLE}
        \newcommand{\owner}{Aircraft Sale}
        \newcommand{\revdate}{12-Jun-23}
         
         \chapter{Sale}
         \chapter{Buy}
         
         \section{My Section Title}
            
        \def\arraystretch{1.25}
        \begin{table}[h]
            \begin{tabularx}{\textwidth}{|l|Y|r|c|}
                \hline
                \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & 2.1 \\ \cline{2-4} 
                & \multirow{3}{*}{My Section Title} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
                &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
                &                            & \textbf{Ownership}  & \owner{}     \\ \hline
            \end{tabularx}
        \end{table}
            
            
        \end{document}

答案1

使用取决于的计数器chapter

如果你并不真的想要\section,那么你可以根据定义一个数字\chapter

\documentclass[12pt,a4paper,oneside,final,sfdefaults=false]{book}
\usepackage{multirow}
\usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{fancyhdr}
\usepackage{longtable}

\begin{document}

\newcommand{\revno}{IR.01}
\newcommand{\printdate}{01-Jan-23}
\newcommand{\issuedate}{01-Jan-24}
\newcommand{\co}{Saudia}
\newcommand{\doctitle}{ADD TITLE}
\newcommand{\owner}{Aircraft Sale}
\newcommand{\revdate}{12-Jun-23}

\newcounter{mynum}\counterwithin{mynum}{chapter}
\newcommand*{\nextnum}{\refstepcounter{mynum}}

\chapter{Sale}
\chapter{Buy}

\nextnum
 
\def\arraystretch{1.25}
\begin{table}[h]% Does not really make sense.
    \begin{tabularx}{\textwidth}{|l|Y|r|c|}
        \hline
        \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & \themynum \\ \cline{2-4} 
        & \multirow{3}{*}{The Title where I want it} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
        &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
        &                            & \textbf{Ownership}  & \owner{}     \\ \hline
    \end{tabularx}
\end{table}


\end{document}

在此处输入图片描述

引用现有的章节计数器和标题文本:

如果我错了,而你想要一个部分,那么你可以使用\label{…}after\section{…}然后\ref{…}\nameref{…}(最后需要包nameref):

\documentclass[a4paper,12pt,titlepage,oneside,final]{book}
\usepackage{multirow}
\usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{fancyhdr}
\usepackage{longtable}
\usepackage{nameref}

\begin{document}

\newcommand{\revno}{IR.01}
\newcommand{\printdate}{01-Jan-23}
\newcommand{\issuedate}{01-Jan-24}
\newcommand{\co}{Saudia}
\newcommand{\doctitle}{ADD TITLE}
\newcommand{\owner}{Aircraft Sale}
\newcommand{\revdate}{12-Jun-23}

 \chapter{Sale}
 \chapter{Buy}

 \section{My Section Title}\label{sec:mysectiontitle}

\def\arraystretch{1.25}
\begin{table}[h]
    \begin{tabularx}{\textwidth}{|l|Y|r|c|}
        \hline
        \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & \ref{sec:mysectiontitle} \\ \cline{2-4} 
        & \multirow{3}{*}{\nameref{sec:mysectiontitle}} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
        &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
        &                            & \textbf{Ownership}  & \owner{}     \\ \hline
    \end{tabularx}
\end{table}


\end{document}

在此处输入图片描述

引用当前章节编号和当前章节级别标题(用于目录或页眉):

使用 KOMA-Script 类,您还可以使用\@currentheadentry\@currenttocentry

\documentclass[12pt,oneside,final,sfdefaults=false,chapterprefix]{scrbook}
\usepackage{multirow}
\usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{fancyhdr}
\usepackage{longtable}

\begin{document}

\newcommand{\revno}{IR.01}
\newcommand{\printdate}{01-Jan-23}
\newcommand{\issuedate}{01-Jan-24}
\newcommand{\co}{Saudia}
\newcommand{\doctitle}{ADD TITLE}
\newcommand{\owner}{Aircraft Sale}
\newcommand{\revdate}{12-Jun-23}

\chapter{Sale}
\chapter{Buy}
\section{My Section Title}
%\subsection{My Subsection Title}

 
\def\arraystretch{1.25}
\begin{table}[h]
    \begin{tabularx}{\textwidth}{|l|Y|r|c|}
        \hline
        \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & \thesection \\ \cline{2-4} 
        & \multirow{3}{*}{\csname @currenttocentry\endcsname} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
        &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
        &                            & \textbf{Ownership}  & \owner{}     \\ \hline
    \end{tabularx}
\end{table}


\end{document}

在此处输入图片描述

但这只是一种技巧,因为使用\@currenttocentry实际上并不是指章节标题,而是将添加到目录中的章节标题。而且它并不总是显示章节标题。例如,如果您\subsection在我的示例中激活命令,它将显示子章节标题。

使用表格作为章节标题:

如果表格应该是章节标题,KOMA-Script 也会支持这一点:

\documentclass[12pt,sfdefaults=false,chapterprefix,oneside,final]{scrbook}
\usepackage{multirow}
\usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{fancyhdr}
\usepackage{longtable}

\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
  \Ifstr{#1}{section}{%
    \def\arraystretch{1.25}
    \begin{tabularx}{\textwidth}{|l|Y|r|c|}
        \hline
        \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & #3 \\ \cline{2-4} 
        & \multirow{3}{*}{#4} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
        &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
        &                            & \textbf{Ownership}  & \owner{}     \\ \hline
    \end{tabularx}
  }%
  {\@hangfrom{\hskip#2#3}#4}%
}
\makeatother
\setkomafont{section}{\normalfont}

\begin{document}

\newcommand{\revno}{IR.01}
\newcommand{\printdate}{01-Jan-23}
\newcommand{\issuedate}{01-Jan-24}
\newcommand{\co}{Saudia}
\newcommand{\doctitle}{ADD TITLE}
\newcommand{\owner}{Aircraft Sale}
\newcommand{\revdate}{12-Jun-23}

\chapter{Sale}
\chapter{Buy}

\section{My Section Title}
 
\end{document}

在此处输入图片描述

我确信,你可以使用标准类和包来做类似的事情titlesec(例如如何在章节标题前添加图片作为入口点)。

通过用于表格样式部分标题的附加变量来扩展部分命令:

KOMA-Script 类的一个非常好的特性是,您可以扩展命令的可选参数\section,例如设置日期和所有权:

\documentclass[12pt,sfdefaults=false,chapterprefix,oneside,final,sfdefaults=false,headings=optiontotocandhead]{scrbook}
\usepackage{multirow}
\usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{fancyhdr}
\usepackage{longtable}

\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
  \Ifstr{#1}{section}{%
    \def\arraystretch{1.25}
    \begin{tabularx}{\textwidth}{|l|Y|r|c|}
        \hline
        \multirow{4}{*}{LOGO} & \textbf{Document Title}    & \textbf{Policy No.} & #3 \\ \cline{2-4} 
        & \multirow{3}{*}{#4} & \textbf{Issue Date} & \issuedate{} \\ \cline{3-4} 
        &                            & \textbf{Rev. Date}  & \revdate{}   \\ \cline{3-4} 
        &                            & \textbf{Ownership}  & \owner{}     \\ \hline
    \end{tabularx}
  }%
  {\@hangfrom{\hskip#2#3}#4}%
}
\makeatother

\newcommand*{\revdate}{}
\newcommand*{\issuedate}{}
\newcommand*{\owner}{}

\AddtoDoHook{heading/preinit/section}{% Initialize the values to N.A. with
                                % every \section.
  \renewcommand*{\revdate}{N.A.}%
  \renewcommand*{\issuedate}{N.A.}%
  \renewcommand*{\owner}{N.A.}%
  \csname @gobble\endcsname
}

% New \section options
\FamilyStringKey[.section]{KOMAarg}{issuedate}{\issuedate}
\FamilyStringKey[.section]{KOMAarg}{revdate}{\revdate}
\FamilyStringKey[.section]{KOMAarg}{owner}{\owner}

\setkomafont{section}{\normalfont}

\begin{document}

\newcommand{\revno}{IR.01}
\newcommand{\printdate}{01-Jan-23}
\newcommand{\co}{Saudia}

\chapter{Sale}
\chapter{Buy}

\section[issuedate=01-Jan-24,revdate=12-Jun-23,owner=Aircraft Sale]{My Section Title}
 
\end{document}

结果和以前一样:

在此处输入图片描述

相关内容