如何将文档从文章转换为报告?

如何将文档从文章转换为报告?

除了手动查找“部分”/用“章”替换所有内容(对于小节、小子节等也一样)之外,还有其他方法吗?

答案1

这是一个 unix 脚本,可让您选择将内容向外移动(即从文章到报告)或向内移动(报告到文章或投影仪)。

#!/bin/bash

if [ $# -lt 2 ]
then
        echo "need input file name, 0 (out) or 1 (in) " >&2
        exit 1
fi
# strips .tex from filename to append _out.tex or _in.tex
input="$1"
filename=${input%.*x}

# 0 shifts all headings outward (section->chapter, etc)
# 1 shifts all headings outward (chapter->section)
if [ $2 -eq 0 ]
then
        newfile="$filename""_out.tex"
        sed -e 's/\\section{/\\chapter{/g' \
            -e 's/\\subsection{/\\section{/g' \
            -e 's/\\subsubsection{/\\subsection{/g' \
            -e 's/\\paragraph{/\\subsubsection{/g' \
            -e 's/\\subparagraph{/\\paragraph{/g' \
            "$1" > $newfile

         echo "Saved as $newfile"
elif [ $2 -eq 1 ]
then
        newfile="$filename""_in.tex"
        sed -e 's/\\paragraph{/\\subparagraph{/g' \
            -e 's/\\subsubsection{/\\paragraph{/g' \
            -e 's/\\subsection{/\\subsubsection{/g' \
            -e 's/\\section{/\\subsection{/g' \
            -e 's/\\chapter{/\\section{/g' \
            -e 's/Chapter /\\S/g' \
            -e 's/Chapters /\\S/g' \
            -e 's/chapter/section/g' \
            "$1" > $newfile

        echo "Saved as $newfile"
else
        echo "invalid direction, 0 (out) or 1 (in) " >&2
fi

答案2

如果要提升各个层面,那么行动的时机至关重要:我们必须从最低层面开始,然后利用\let

\let\subparagraph\paragraph
\let\paragraph\subsubsection
\let\subsubsection\subsection
\let\subsection\section
\let\section\chapter

使用\renewcommand会将所有部分级别转变为章节。

然而,这只适用于没有交叉引用的非常基本的文档。完整的解决方案还应该重新定义计数器及其表示。

\let\thesubparagraph\theparagraph
\let\theparagraph\thesubsubsection
\let\thesubsubsection\thesubsection
\let\thesubsection\thesection
\let\thesection\thechapter

\makeatletter
\let\c@subparagraph\c@paragraph
\let\c@paragraph\c@subsubsection
\let\c@subsubsection\c@subsection
\let\c@subsection\c@section
\let\c@section\c@chapter
\let\p@subparagraph\p@paragraph
\let\p@paragraph\p@subsubsection
\let\p@subsubsection\p@subsection
\let\p@subsection\p@section
\let\p@section\p@chapter
\let\cl@subparagraph\cl@paragraph
\let\cl@paragraph\cl@subsubsection
\let\cl@subsubsection\cl@subsection
\let\cl@subsection\cl@section
\let\cl@section\cl@chapter
\makeatother

答案3

我可能有点过度,但我会使用sed它而不是纯 TeX。

答案4

除了替换/重新定义其他答案中提到的分段命令外,还有一件事要记住,那就是在使用时更新参考描述\ref。如果你的文本是这样的

As seen in Section \ref{sec:first}, ...

转换为报告后,它应该变成

As seen in Chapter \ref{sec:first}, ...

如果你经常使用cleveref包的\cref命令,这不是一个问题:

As seen in \cref{sec:first}, ...

该命令根据标签推断出参考文献的类型,并在实际章节号前面放置文字描述。我真的看不出有什么理由不是使用这个包。

相关内容