Подтвердить что ты не робот

Как сделать чит-листы в латекс?

Я хочу сделать чит-листы для личного использования. Я хочу использовать эту возможность, чтобы хорошо подправить LaTeX. (Мне уже удобнее делать простые математические документы, связанные с LaTeX.)

Теперь я хочу попробовать сделать чит-листы в LaTeX. Но я не знаю, как это сделать. В чит-листах обычно страница разбивается на несколько прямоугольных секций, и каждая из них имеет несколько команд или заметок внутри нее. Каждая прямоугольная секция имеет границу и т.д.

Как это можно сделать в LaTeX? Доступны ли какие-либо пакеты для этого? Как вы думаете, TikZ будет хорошей идеей для этого?

4b9b3361

Ответ 1

Поскольку некоторые профессора позволили нам использовать чит-листы, написанные на компьютере для экзаменов, я решил создать шаблон некоторое время назад, чтобы сэкономить достаточно места, насколько это возможно, но сохраняйте читаемость. Шаблон использует код ответа здесь.

Базовый файл выглядит следующим образом:

\documentclass[10pt,landscape,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning,arrows,fit,calc,graphs,graphs.standard}
\usepackage[nosf]{kpfonts}
\usepackage[t1]{sourcesanspro}
%\usepackage[lf]{MyriadPro}
%\usepackage[lf,minionint]{MinionPro}
\usepackage{multicol}
\usepackage{wrapfig}
\usepackage[top=0mm,bottom=1mm,left=0mm,right=1mm]{geometry}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{microtype}

\let\bar\overline

\definecolor{myblue}{cmyk}{1,.72,0,.38}

\def\firstcircle{(0,0) circle (1.5cm)}
\def\secondcircle{(0:2cm) circle (1.5cm)}

\colorlet{circle edge}{myblue}
\colorlet{circle area}{myblue!5}

\tikzset{filled/.style={fill=circle area, draw=circle edge, thick},
    outline/.style={draw=circle edge, thick}}

\pgfdeclarelayer{background}
\pgfsetlayers{background,main}

\everymath\expandafter{\the\everymath \color{myblue}}
\everydisplay\expandafter{\the\everydisplay \color{myblue}}

\renewcommand{\baselinestretch}{.8}
\pagestyle{empty}

\global\mdfdefinestyle{header}{%
linecolor=gray,linewidth=1pt,%
leftmargin=0mm,rightmargin=0mm,skipbelow=0mm,skipabove=0mm,
}

\newcommand{\header}{
\begin{mdframed}[style=header]
\footnotesize
\sffamily
Cheat sheet\\
by~Your~Name,~page~\thepage~of~2
\end{mdframed}
}

\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
                                {.2ex}%
                                {.2ex}%x
                                {\color{myblue}\sffamily\small\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{1}{0mm}%
                                {.2ex}%
                                {.2ex}%x
                                {\sffamily\bfseries}}



\def\[email protected]@out{%
   \ifnum\outputpenalty <-\@M
   \[email protected] \else
   \ifvoid\[email protected]\else
     \[email protected]\@ne{Re-adding forced
               break(s) for splitting}%
     \setbox\@cclv\vbox{%
        \unvbox\[email protected]
        \penalty-\@Mv\unvbox\@cclv}%
   \fi
   \splittopskip\topskip
   \splitmaxdepth\maxdepth
   \[email protected]\@colroom
   \divide\skip\footins\[email protected]
   \ifvoid\footins \else
      \[email protected]@footins
   \fi
   \let\[email protected]\[email protected]
   \ifvbox \@kludgeins
     \advance \[email protected] -\ht\@kludgeins
     \ifdim \wd\@kludgeins>\[email protected]
        \[email protected]
     \fi
   \fi
   \[email protected]\[email protected]{%
%%%%% START CHANGE
\ifnum\[email protected]=\numexpr\[email protected]+2\relax
          \setbox\[email protected]\vsplit\@cclv to \dimexpr \[email protected]\relax
\setbox\[email protected]\vbox to \[email protected]{\vbox to 1cm{\header}\unvbox\[email protected]\vss}%
\else
      \setbox\[email protected]\vsplit\@cclv to \[email protected]
\fi
%%%%% END CHANGE
            \[email protected]
            \setbox\[email protected]
                 \vbox to\[email protected]
                  {\unvbox\[email protected]
                   \[email protected]@items
                   \[email protected]\vfill\fi}%
           }%
   \setbox\[email protected]
       \vsplit\@cclv to\[email protected]
   \[email protected]
   \setbox\[email protected]\vbox to\[email protected]
          {\unvbox\[email protected]
           \[email protected]@items
           \[email protected]\vfill\fi}%
   \let\[email protected]\[email protected]
   \ifvoid\@cclv \else
       \unvbox\@cclv
       \ifnum\outputpenalty=\@M
       \else
          \penalty\outputpenalty
       \fi
       \ifvoid\footins\else
         \PackageWarning{multicol}%
          {I moved some lines to
           the next page.\MessageBreak
           Footnotes on page
           \thepage\space might be wrong}%
       \fi
       \ifnum \[email protected]>\[email protected]@
                    \hrule\allowbreak \fi
   \fi
   \ifx\@empty\[email protected]
      \let\firstmark\[email protected]
      \let\botmark\[email protected]
   \else
      \let\firstmark\[email protected]
      \let\botmark\[email protected]
   \fi
   \let\topmark\[email protected]
   \[email protected]\[email protected]
        {Use kept top mark:\MessageBreak
          \meaning\[email protected]
         \MessageBreak
         Use kept first mark:\MessageBreak
          \meaning\[email protected]
        \MessageBreak
         Use kept bot mark:\MessageBreak
          \meaning\[email protected]
        \MessageBreak
         Produce first mark:\MessageBreak
          \meaning\firstmark
        \MessageBreak
        Produce bot mark:\MessageBreak
          \meaning\botmark
         \@gobbletwo}%
   \setbox\@cclv\vbox{\unvbox\[email protected]
                      \[email protected]}%
   \@makecol\@outputpage
     \global\let\[email protected]\botmark
     \global\let\[email protected]\@empty
     \global\let\[email protected]\@empty
     \[email protected]\[email protected]
        {(Re)Init top mark:\MessageBreak
         \meaning\[email protected]
         \@gobbletwo}%
   \global\@colroom\@colht
   \global \@mparbottom \[email protected]
   \[email protected]
   \@whilesw\[email protected]\fi{\@outputpage
      \global\@colroom\@colht
      \[email protected]}%
   \[email protected]\@ne
     {Colroom:\MessageBreak
      \the\@colht\space
              after float space removed
              = \the\@colroom \@gobble}%
    \[email protected]@vsize \global
  \fi}

\makeatother
\setlength{\parindent}{0pt}

\begin{document}
\small
\begin{multicols*}{5}
\input{section1}
\end{multicols*}
\end{document}

При использовании кода скопируйте шаблон и поместите код LaTeX во внешние файлы, например section1.tex, section2.tex,.... Чем вы можете легко следовать нормальной структуре внутри этих файлов LaTeX, например

\section{Title of section 1}
\subsection*{Title of subsection 1}
Some text...
\subsection*{Title of subsection 2}
With some colored math $\sum_{i=1}^\infty i$.
Inserting an image also works:\\
\includegraphics[width=\linewidth]{yourimage.png}

После заполнения ваших разделов вы получите сжатый документ, который по-прежнему выглядит так:

Cheat sheet page 1

Cheat sheet page 2

Ответ 2

Я делал свои собственные чит-листы и для разных вещей. Мне очень нравится, как выглядит обманный лист Latex найденный здесь. Я предлагаю захватить источник tex и украсть у него некоторые идеи:).

Ответ 3

Рассмотрим использование multicol.

И подумайте о том, чтобы ознакомиться с CTAN. Большинство вещей TeX заканчиваются рано или поздно, хотя для этого требуется некоторое копание, если вы не знаете, что ищете.

Ответ 4

Вот прекрасный пример обмана (это брошюра на самом деле, а не только пара страниц).

https://www.ohloh.net/p/clqr

Выполняется с использованием LaTex. Он суммирует все символы в стандарте Common Lisp. Возможно, вы можете получить один или два подсказки из доступного источника LaTeX.