重现代码文档风格

重现代码文档风格

我想重现 refman 团队编写文档的方式在此处输入图片描述

就我而言,我想要类似的东西

function explanation
         code snippet

我的(丑陋)尝试是使用小页面和列表

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\begin{document}
\begin{minipage}[t]{0.2\textwidth}
  \texttt{functionname}
\end{minipage}
\begin{minipage}[t]{0.8\textwidth}
Explanation
\begin{lstlisting}[basicstyle=\footnotesize\ttfamily, language=C, numbers=left, numberstyle=\tiny\color{black}]
for i in 1:3
    @show i
end
\end{lstlisting}
\end{minipage}
\end{document}

有没有更好的方法?提前感谢您的耐心和关注。

答案1

您显示的输出来自处理refman.dtx使用docstrip。它处理包含文档和代码的文件,以便可能分发到各种输出(如.sty.cls文件)。文档包含常规文本,以及macromacrocode环境(以及其他内容),用于描述宏及其代码。这些环境在doc包裹

以下是在常规文档中如何使用它的简化版本:

在此处输入图片描述

\documentclass{article}

\usepackage{doc}

\CodelineNumbered

\begin{document}

\begin{macro}{\@ptsize}
  This control sequence is used to store the second digit of the
  pointsize we are typesetting in. So, normally, its value is one
  of 0, 1 or 2.
\begin{macrocode}
<*refart|refrep>
\newcommand\@ptsize{}
%    \end{macrocode}
\end{macro}

\end{document}

注意macrocode环境必须以该子句结尾

%    \end{macrocode}

(即,%后面跟着四个空格,    后面跟着\end{macrocode})。由于它通常用于docstrip特定代码文档,所以这不是问题。但是,在常规文档中使用它需要这个奇怪的结尾。


也许你可以尝试以下界面,类似于doc包裹macros 和的接口macrocode

在此处输入图片描述

\documentclass{article}

\usepackage{listings}

\newenvironment{macro}[1]
  {\par\noindent
   \makebox[0pt][r]{\texttt{#1}\quad}%
   \ignorespaces}
  {}
\lstnewenvironment{macrocode}[1][]
  {\lstset{
    basicstyle=\footnotesize\ttfamily,
    language = C,
    numbers = left,
    numberstyle=\tiny,
    #1}}
  {}

\begin{document}

\begin{macro}{functionname}
Explanation
\begin{macrocode}
for i in 1:3
    @show i
end
\end{macrocode}
\end{macro}

\end{document}

设置functionname在边距内,与函数的行号一起设置。如果您的可能包含像或 这样functionname的奇怪(保留)字符,则必须做更多工作。_$

相关内容