% !TeX program = xelatex
\documentclass[redline, titleindent, zhlineskip]{gbt9704}
\usepackage{hyperref}
\usepackage[strict]{fcolumn}
\newcolumntype{Y}{F.,{3,2}{}}
\title{\texttt{gbt9704} 宏包使用说明 \\ (v0.1.1)}
\author{Wupei Song \\ \small{\url{songwupei@163.com}}}
\date{2026年7月6日}

\begin{document}

\maketitle

\tableofcontents

\section{概述}
本宏包 \texttt{gbt9704} 基于 \texttt{memoir} 文档类，严格遵循 \textbf{GB/T 9704-2012}《党政机关公文格式》标准，实现了红头文件、标题分级、附件、版记等公文的自动化排版。

当前版本为 \textbf{v0.1.1}，核心功能已可用，欢迎反馈问题与改进建议。

\section{编译方式}
本宏包依赖 \texttt{ctex} 宏包处理中文，必须使用 \textbf{XeLaTeX} 引擎编译：
\begin{verbatim}
xelatex gbt9704-doc.tex
\end{verbatim}

\section{宏包选项}
\begin{description}
  \item[redline] 在公文红头下方绘制红色分隔线。
  \item[noredline] 不绘制红色分隔线（默认）。
  \item[titleindent] 章节标题首行缩进2字符（默认，符合国标）。
  \item[notitleindent] 章节标题取消首行缩进。
  \item[zhlineskip] 启用 \texttt{zhlineskip} 宏包，提供 CJK 感知的比例行距控制（正文 1.75 倍字号、脚注独立比例、数学恢复西文行距）。需 TeX Live 2026 或手动安装。
\end{description}

\section{核心命令示例}

\subsection{标题与正文}
使用 \verb|\title{...}| 和 \verb|\maketitle| 输出大标题（二号大标宋，居中）：
\verb|\gongwensubtitle{...}| 可输出副标题（三号仿宋，居中）。

正文环境自动设置为三号仿宋、28磅行距、首行缩进2字符。

\subsection{附件处理}
单附件使用 \verb|\attachmentHZ{文件名}|（自动带"附件："前缀）：
\attachmentHZ{2026年度工作计划表}

如需不带前缀，使用 \verb|\attachmentNOHZ{...}|。

多附件使用 \texttt{attachments} 环境（首项紧跟"附件："，后续项自动对齐）：
\begin{attachments}
\attachmentitem{1. 财务报表附件}
\attachmentitem{2. 人员名单附件}
\attachmentitem{3. 会议纪要附件}
\end{attachments}

\subsection{发文机关与日期}
\signature{中华人民共和国某部}
\signdate{2026年6月22日}

\subsection{版记要素}
\seprule
\copyto{各省、自治区、直辖市人民政府办公厅，国务院各部委。}
\issueinfo{某部办公厅}{2026年6月22日印发}

\subsection{附注}
\notes{此件公开发布}

\section{表格中的数字格式化}

公文中的财务报表（预算表、决算表、收支明细等）需要对金额数字进行千位分隔和小数点对齐。
推荐使用 \texttt{fcolumn} 宏包配合本类使用。

\subsection{导言区配置}
在文档导言区加载 \texttt{fcolumn} 并定义金额列类型：
\begin{verbatim}
\usepackage[strict]{fcolumn}
\newcolumntype{Y}{F.,{3,2}{}}  % 等同于预定义的 f 列类型
\end{verbatim}

其中：
\begin{description}
  \item[\texttt{strict}] 让负数显示为财务括号格式 \texttt{(123.45)}。
  \item[\texttt{Y}] 金额列：3位千位分隔，2位小数。输入时以 \texttt{,} 作小数点（欧洲记法），输出自动加 \texttt{.} 作千位分隔。
\end{description}

注：\texttt{fcolumn} 默认使用欧洲数字格式（逗号作小数点）。
如需用句点 \texttt{.} 作小数点输入，可改用 \texttt{siunitx} 宏包：
\begin{verbatim}
\usepackage{siunitx}
\sisetup{group-separator={,}, group-minimum-digits=4}
% 表格中用 S[table-format=7.2] 列类型
\end{verbatim}

\subsection{示例：一般公共预算支出表}
\begin{verbatim}
\begin{tabular}{lY}
    \toprule
    项目 & 金额（万元） \\
    \midrule
    一般公共服务 & 123.456,78 \\
    教育支出     & 98.765,43 \\
    社会保障     & 56.789,12 \\
    \midrule
    \sumline{金额（万元）} \\
    \bottomrule
\end{tabular}
\end{verbatim}

编译效果如下（自动千位分隔、小数对齐、求和）：

\begin{tabular}{lY}
    \toprule
    项目 & 金额（万元） \\
    \midrule
    一般公共服务 & 123.456,78 \\
    教育支出     & 98.765,43 \\
    社会保障     & 56.789,12 \\
    \midrule
    \sumline{金额（万元）} \\
    \bottomrule
\end{tabular}

\vspace{1em}
\begin{description}
  \item[\texttt{\textbackslash sumline\{...\}}] 自动计算该列总和，并在上方绘制横线（默认2pt），第一列显示标签文本。
\end{description}

\subsection{负数处理}
启用 \texttt{strict} 选项后，负数值会自动以括号格式显示：

\begin{verbatim}
\begin{tabular}{lY}
    \toprule
    项目 & 金额（万元） \\
    \midrule
    收入合计  & 50.000,00 \\
    减：支出  & -32.000,00 \\
    \midrule
    \sumline{结余} \\
    \bottomrule
\end{tabular}
\end{verbatim}

注意：\texttt{fcolumn} 必须单独在用户文档中加载，\texttt{gbt9704.cls} 不内置该包（保持职责分离）。

\section{字体依赖说明}
若系统未安装"方正大标宋（FZDaBiaoSong-B06）"字体，宏包将自动回退至"黑体（SimHei）"并启用伪粗体，编译时会在终端显示警告信息，但不影响红头排版效果。

建议安装方正大标宋以获得最佳视觉效果。

\section{已知问题与限制}
\begin{itemize}
  \item 当前为 Beta 版本，命令名称和接口可能在后续版本中调整。
  \item 仅支持 XeLaTeX 引擎，不支持 pdfLaTeX。
  \item 对超长标题（超过一行）的自动换行处理有待优化。
\end{itemize}

\section{许可证}
本宏包采用 \textbf{LPPL-1.3c} 许可证发布。

\section{反馈与贡献}
欢迎通过以下方式提交问题或改进建议：
\begin{itemize}
  \item Issue: \url{https://codeberg.org/songwupei/latex-gbt9704/issues}
  \item 邮箱: \url{songwupei@163.com}
\end{itemize}

\end{document}
