完全隐藏铸造输出而不占用空间

完全隐藏铸造输出而不占用空间

由于问题使用 Minted 的escapeinside选项,我想包含但完全隐藏(不占用任何空间),minted我的文档中的一个环境。我不希望任何内容可见。

我已经非常接近这个使用微小字体大小的黑客解决方案:

\begin{minted}[fontsize=\fontsize{0.01pt}{0.01pt}]{java}
public String someCode(String argument) {
    // code here...
}
\end{minted}

除了使用非常小的字体大小之外,还有更优雅的解决方案吗?我可以把它放在某种框中,并将其高度设置为零吗?我可以以某种方式将其浮动,以便它实际上永远不会显示在文档的任何地方吗?

代码确实被处理很重要。因此我不能只是注释掉它,或者使用\if

答案1

我们用 定义一个保存箱\newsavebox

然后可以创建一个lrbox环境(指定保存箱名称),并将minted代码列表放入其中minipage

\newsavebox\hideminted

\begin{lrbox}{\hideminted}\begin{minipage}{\textwidth}
\begin{minted}[fontsize=\fontsize{0.01pt}{0.01pt}]{java}
public String lookupUserNameByToken(String token) throws SQLException {
    Statement stmt = connection.createStatement();
    String query = "select * from users where ";
    query += "token = '" + token + "'";
    ResultSet rs = stmt.executeQuery(sql);
    if (rs.next()) {
        return rs.getString("name");
    }
    return null;
}
\end{minted}
\end{minipage}\end{lrbox}

然后我们确保我们永远不会\usebox{\hideminted},并且它永远不会真正出现在文档中。

相关内容