如何并排放置2种算法?

问题描述 投票:1回答:1

我正在尝试并排放置两个版本的算法。以深度优先搜索为例,我想将递归版本放在左列,将迭代放在右边。我正在使用此stack overflow post for python formating和迷你页。如下所示,上述命令在微型页面中不起作用。如何在每个小页面中居中python代码块?

\documentclass[11pt]{article}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{blindtext}
\usepackage{listings}


% Default fixed font does not support bold face
\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{12} % for bold
\DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{12}  % for normal

% Custom colors
\usepackage{color}
\definecolor{deepblue}{rgb}{0,0,0.5}
\definecolor{deepred}{rgb}{0.6,0,0}
\definecolor{deepgreen}{rgb}{0,0.5,0}

\usepackage{listings}

% Python style for highlighting
\newcommand\pythonstyle{\lstset{
    language=Python,
    basicstyle=\ttm,
    otherkeywords={self},             % Add keywords here
    keywordstyle=\ttb\color{deepblue},
    emph={MyClass,__init__},          % Custom highlighting
    emphstyle=\ttb\color{deepred},    % Custom highlighting style
    stringstyle=\color{deepgreen},
    frame=tb,                         % Any extra options here
    showstringspaces=false            %
}}


% Python environment
\lstnewenvironment{python}[1][]{
  \pythonstyle
  \lstset{#1}
}{}

% Python for inline
\newcommand\pythoninline[1]{{\pythonstyle\lstinline!#1!}}

\usepackage{listings}

\begin{document}
\begin{center}
  \vspace*{10mm}
  {\bf {\huge General Notes}}\\
  \vspace*{5mm}
  {\bf {CS, ML and Stats}
    \\ \vspace*{2mm} {\large Patrick Daly}
  }
\end{center}

\newpage

\tableofcontents
\newpage

\section{Computer Science}

\subsection{Algorithms}
\begin{enumerate}
  \item DFS %
    \begin{minipage}{0.5\textwidth} %
      test
      \begin{python}
        def dfs(node):
            if node:
                # do stuff if pre-order
                if node.left:
                    dfs(node.left)
                # do stuff if in-order
                if node.right:
                    dfs(node.right)
                # do stuff if post-order
      \end{python}
    \end{minipage}
    \begin{minipage}{0.5\textwidth} %
      test
      \begin{python}
        def dfs(node):
            if node:
                # do stuff if pre-order
                if node.left:
                    dfs(node.left)
                # do stuff if in-order
                if node.right:
                    dfs(node.right)
                # do stuff if post-order
      \end{python}
    \end{minipage}
\end{enumerate}

\end{document}

编辑:我可能需要自动调整字体大小以压缩每一列中的内容。

enter image description here

latex
1个回答
0
投票

自动重新缩放包含文本的内容不是一个好主意,这会给您次佳的字体形状。相反,您可以a)通过不从tex源添加不必要的缩进来节省大量空间,并且b)允许换行。如果这还不够,您可以手动选择较小的字体。

一些其他评论:

  • 如果在枚举环境中使用两个小页面,每个小页面.5\textwidth不能同时放置。计数后的其余行仅\linewidth宽,因此即使该行中没有其他文本,迷你页的宽度也不得超过.5\linewidth每个

  • 请不要多次加载同一软件包。

  • [hyperref应该(很少有例外)应该最后加载


\documentclass[11pt]{article}

\usepackage{amsmath}
\usepackage{blindtext}
\usepackage{listings}


% Default fixed font does not support bold face
\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{12} % for bold
\DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{12}  % for normal

% Custom colors
\usepackage{color}
\definecolor{deepblue}{rgb}{0,0,0.5}
\definecolor{deepred}{rgb}{0.6,0,0}
\definecolor{deepgreen}{rgb}{0,0.5,0}

%\usepackage{listings}

% Python style for highlighting
\newcommand\pythonstyle{\lstset{
    language=Python,
    basicstyle=\ttm,
    otherkeywords={self},             % Add keywords here
    keywordstyle=\ttb\color{deepblue},
    emph={MyClass,__init__},          % Custom highlighting
    emphstyle=\ttb\color{deepred},    % Custom highlighting style
    stringstyle=\color{deepgreen},
    frame=tb,                         % Any extra options here
    showstringspaces=false,
    breaklines            %
}}


% Python environment
\lstnewenvironment{python}[1][]{
  \pythonstyle
  \lstset{#1}
}{}

% Python for inline
\newcommand\pythoninline[1]{{\pythonstyle\lstinline!#1!}}

%\usepackage{listings}
\usepackage{hyperref}

\begin{document}
\begin{center}
  \vspace*{10mm}
  {\bf {\huge General Notes}}\\
  \vspace*{5mm}
  {\bf {CS, ML and Stats}
    \\ \vspace*{2mm} {\large Patrick Daly}
  }
\end{center}

\newpage

\tableofcontents
\newpage

\section{Computer Science}

\subsection{Algorithms}
\begin{enumerate}
  \item DFS %

    \begin{minipage}{0.5\linewidth}%
      test
\begin{python}
def dfs(node):
    if node:
        # do stuff if pre-order
        if node.left:
            dfs(node.left)
        # do stuff if in-order
        if node.right:
            dfs(node.right)
        # do stuff if post-order
\end{python}
\end{minipage}%
\begin{minipage}{0.5\linewidth}%
test
\begin{python}
def dfs(node):
    if node:
        # do stuff if pre-order
        if node.left:
            dfs(node.left)
        # do stuff if in-order
        if node.right:
            dfs(node.right)
        # do stuff if post-order
\end{python}
    \end{minipage}%
\end{enumerate}

\end{document}
© www.soinside.com 2019 - 2024. All rights reserved.