![使用新环境降级未编号部分不适用于子文件](https://linux22.com/image/468953/%E4%BD%BF%E7%94%A8%E6%96%B0%E7%8E%AF%E5%A2%83%E9%99%8D%E7%BA%A7%E6%9C%AA%E7%BC%96%E5%8F%B7%E9%83%A8%E5%88%86%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E5%AD%90%E6%96%87%E4%BB%B6.png)
我正在尝试导出特克斯使用子文件进入主特克斯文件。主文件和子文件. 进口子文件是附录。降级部分工作文件,但未编号部分则不行。
我如何才能将未编号部分降级,以便将其作为子部分反映在目录中?
限制在于我可以影响子文件导入之前的结构主文本文件;就像我所做的那样降级环境。
任何想法/解决方案/想法等。
感谢您的关注。
请参阅下面的代码:
main.tex
\documentclass{article}
\usepackage{subfiles}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\begin{document}
\tableofcontents
\title{Doc1}
\author{Author1}
\maketitle
\section*{Summary Doc}
\addcontentsline{toc}{section}{Summary Doc}
\section{Doc 1 section}
Text
\subsection{Doc 1 subsection}
Text
\subsubsection{Doc 1 subsubsection}
Text
\paragraph{Doc 1 paragraph}
Text
\subparagraph{Doc 1 subparagraph}
Text
\section{Appendix}
\newenvironment{leveldown}% Demote sectional commands
{\let\section\subsection%
\let\subsection\subsubsection%
\let\subsubsection\paragraph%
\let\paragraph\subparagraph%
%\let\subparagraph\relax%
}{}
\begin{leveldown}
subfile{doc2}
\end{leveldown}
\end{document}
doc2.tex 文件
\documentclass{article}
\usepackage{subfiles}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\begin{document}
\tableofcontents
\title{Doc1}
\author{Author1}
\maketitle
\section*{Summary Doc}
\addcontentsline{toc}{section}{Summary Doc}
\section{Doc 2 section}
Text
\subsection{Doc 2 subsection}
Text
\subsubsection{Doc 2 subsubsection}
Text
\paragraph{Doc 2 paragraph}
Text
\subparagraph{Doc 2 subparagraph}
Text
\section{Appendix}
\end{document}
答案1
我不确定我是否已经完全理解了这些限制,但这是第一次尝试,作为讨论的基础
- 将定义放入主文件的前言中,以使子文件可以访问它们。
\documentclass{article}
\usepackage{subfiles}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\let\myaddcontentsline\addcontentsline
\newenvironment{leveldown}% Demote sectional commands
{\let\section\subsection
\let\subsection\subsubsection
\let\subsubsection\paragraph
\let\paragraph\subparagraph
% \let\subparagraph\relax%
\let\tableofcontents\relax
\let\origaddcontentsline\addcontentsline
\renewcommand\myaddcontentsline[3]{\addcontentsline{##1}{sub##2}{##3}}%
}{}
\title{Doc1}
\author{Author1}
\begin{document}
\tableofcontents
\maketitle
- 以下列命令开始子文件
\documentclass[main]{subfiles}
\title{Doc2}
\author{Author2}
\begin{document}
\tableofcontents
\maketitle
下面的示例代码生成以下文档。
% main.tex
\documentclass{article}
\usepackage{subfiles}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\let\myaddcontentsline\addcontentsline
\newenvironment{leveldown}% Demote sectional commands
{\let\section\subsection
\let\subsection\subsubsection
\let\subsubsection\paragraph
\let\paragraph\subparagraph
% \let\subparagraph\relax%
\let\tableofcontents\relax
\let\maketitle\relax
\let\origaddcontentsline\addcontentsline
\renewcommand\myaddcontentsline[3]{\addcontentsline{##1}{sub##2}{##3}}%
}{}
\title{Doc1}
\author{Author1}
\begin{document}
\tableofcontents
\maketitle
\section*{Summary Doc}
\myaddcontentsline{toc}{section}{Summary Doc}
\section{Doc 1 section}
Text
\subsection{Doc 1 subsection}
Text
\subsubsection{Doc 1 subsubsection}
Text
\paragraph{Doc 1 paragraph}
Text
\subparagraph{Doc 1 subparagraph}
Text
\section{Appendix}
\begin{leveldown}
\subfile{doc2}
\end{leveldown}
\end{document}
% doc2.tex
\documentclass[main]{subfiles}
\title{Doc2}
\author{Author2}
\begin{document}
\tableofcontents
\maketitle
\section*{Summary Doc2}
\myaddcontentsline{toc}{section}{Summary Doc}
\section{Doc 2 section}
Text
\subsection{Doc 2 subsection}
Text
\subsubsection{Doc 2 subsubsection}
Text
\paragraph{Doc 2 paragraph}
Text
\subparagraph{Doc 2 subparagraph}
Text
\section{Appendix}
\end{document}
答案2
非常感谢 Gernot - 非常感谢。
限制在于,无论包含什么,主文本也应该在doc2.tex因为它们具有相同的格式(即 Latex 嵌入),但书写内容不同。因此,主文本也应该在doc2.texIE
\let\myaddcontentsline\addcontentsline
\newenvironment{leveldown}% Demote sectional commands
{\let\section\subsection
\let\subsection\subsubsection
\let\subsubsection\paragraph
\let\paragraph\subparagraph
% \let\subparagraph\relax%
\let\tableofcontents\relax
\let\origaddcontentsline\addcontentsline
\renewcommand\myaddcontentsline[3]{\addcontentsline{##1}{sub##2}{##3}}%
}{}
但是,有没有办法向文档发送一个标志,如果这是附录,则在序言中停用该块,但在最后时保持它处于打开状态?主文本。
发送标记只是一个例子,但可能还有其他方法,因为我的 Latex 编程技能很差。
希望您明白我的意思。