使用 TeXstudio,可以折叠代码段。左侧会出现小箭头标记,单击即可折叠代码段。以下是示例。
然后点击\begin{figure}
我的问题是,有没有办法figure
一键折叠所有环境。假设我有一个包含 30 个figure
环境的文档,我希望能够一键折叠所有环境,而不必手动单击每一行上的这个箭头\begin{figure}
。
我觉得 TeXstudio 可能可以实现这一点,因为它已经具有一些类似的功能,只需单击一下即可折叠内容。这在“查看”下拉菜单中。如果我单击“所有内容”,则所有内容都会折叠起来\begin{document}
。但我不知道 1、2、3、4 级是什么?我正在寻找一种方法,让“图形”在这里,我可以单击它,然后所有代码figures
都会折叠起来。这可能吗?
答案1
您可以使用用户宏来实现这一点。在 下Macros -> Edit Macros
添加以下内容:
%SCRIPT
var tl = editor.document().textLines();
var regEx = /\\begin{figure}/;
var match
for (var i=0;i<tl.length;i++){
match = regEx.exec(tl[i]);
if (match) {
editor.document().foldBlockAt(false,i+1)
}
}
测试文档
\documentclass{report}
\begin{document} % Level 1
\chapter{A} % Level 2
Test text.
\begin{figure} % Level 3
\includegraphics{example-image}
\end{figure}
\section{B} % Level 3
Test text.
\subsection{C} % Level 4
Test text.
\begin{figure}
\includegraphics{example-image}
\end{figure}
\section{D}
Test text.
\begin{figure}
\includegraphics{example-image}
\end{figure}
\subsection{E}
Test text.
\chapter{F}
Test text.
\begin{figure}
\includegraphics{example-image}
\end{figure}
\section{G}
Test text.
\section{H}
Test text.
\subsection{I}
Test text.
\paragraph{J}
Test text.
\begin{figure}
\includegraphics{example-image}
\end{figure}
\chapter{K}
Test text.
\end{document}
请注意,执行宏后,每个块中标题为\chapter
等尚未折叠的 (仍然可见)。\section
A
K
Test text
动态图片
** 如果您expand figures
也想要宏,请将editor.document().foldBlockAt(false,i+1)
上面的脚本替换为editor.document().expandParents(i+1)
,然后将其保存为单独的宏。
至于Level 1
toLevel 4
块,我尝试使用上面的测试文档来说明这一点(参见注释)。基本上,它不是 等的固定映射Level 1 -> Chapter
。Level 2 -> Section
Level 1
只是 TeXstudio 遇到的第一个可以折叠的块,并且该块还不是另一个块的子块。在大多数情况下,这是命令\begin{document}
。Level 2
块嵌套在Level 1
块中,通常\chapter
或\section
取决于文档类,但不会嵌套在其他块中。
等等。
但是您可以从我示例中的第一个图形环境中看到,该环境嵌套在\chapter
块中,被认为是同一水平作为\section
块,因为它们都嵌套在内\chapter
。
附录
您希望将其添加到
Collapse
子菜单下,但由于您可以通过键盘快捷键(默认情况下为Shift+F1等)更快地激活这些宏,因此我认为没有必要在我的回答中这样做。一般来说,这是可能的,我最终可能会回来这样做,只是为了好玩。另一种可能性是将
collapse
和组合expand
成一个宏,并使其像toggle comment
快捷方式(Ctrl+ T)一样操作,这也很有趣。