在 Overleaf 中定义的函数之间折叠代码

在 Overleaf 中定义的函数之间折叠代码

我正在使用带有编译器 pdfLaTeX 的 Overleaf(不确定这是否重要),并且想要有不同颜色的子部分,例如问题结束后下面显示的示例。

一切都正常,编译也顺利。但是,由于我的子部分可能会变得很大,我希望能够折叠函数,就像您对和函数\topic{}{}所做的那样(见下面的最终图片)。\section{}\subsection{}

有什么方法可以告诉编辑器我希望此功能执行此操作吗?

请注意,我并不特别关心定义新函数 \topic{}{} 是否是实现我想要的最佳方式(如果需要,这可以是一个单独的问题)。相反,我感兴趣的是,是否通常可以使用一些任意定义的函数进行代码折叠 - 我的 \topic{}{} 函数只是一个简短的小示例。

\documentclass{article}

\usepackage{blindtext}

\setlength{\parindent}{0em}
\setlength{\parskip}{0em}

\usepackage{xcolor}
\newcommand{\topic}[2]{\color{#1}\subsection*{#2}}

\begin{document}

\section{Hello}

\topic{blue}{This subsection is in blue}
\blindtext

\topic{orange}{This subsection is in orange}
\blindtext

\topic{purple}{This subsection is in purple}
\blindtext

\end{document}

在此处输入图片描述

在此处输入图片描述

答案1

所以我尝试了一下,找到了一个\newenvironment{}命令,它基本上允许你将函数放在一个\begin{} \end{}三明治中,而 Overleaf 可以让你按照我想要的方式折叠它们(参见https://www.overleaf.com/learn/latex/Environments#Defining_environments_with_parameters

我认为这样做的一个(小)缺点是你需要确保每个\begin{}都有一个\end{},但如果不是这种情况,编译器会很快对你大喊大叫!

我仍然很想知道您是否可以在不使用它的情况下做到这一点\begin{}

\documentclass{article}

\usepackage{blindtext}

\setlength{\parindent}{0em}
\setlength{\parskip}{0em}

\usepackage{xcolor}
\newenvironment{topic}[2]{\color{#1}\subsection*{#2}}{}

\begin{document}

\section{Hello}

\begin{topic}{blue}{This subsection is in blue}
\blindtext
\end{topic}

\begin{topic}{orange}{This subsection is in orange}
\blindtext
\end{topic}

\begin{topic}{purple}{This subsection is in purple}
\blindtext
\end{topic}

\end{document}

在此处输入图片描述

相关内容