it-swarm.dev

Jak zrobić ściągawki w Latexie?

Chcę robić ściągawki do własnego użytku. Chcę skorzystać z tej okazji, aby uzyskać dobrą rękę na LaTeX też. (Już teraz w LaTeX'ie czuję się komfortowo, jeśli chodzi o proste matematyczne dokumenty)

Teraz chcę wypróbować ściągawki w LaTeX. Ale nie wiem, jak to zrobić. W ściągawkach zazwyczaj strona jest podzielona na wiele prostokątnych sekcji, a każda z nich zawiera kilka poleceń lub notatek. Każda prostokątna sekcja ma obramowanie itp.

Jak można to zrobić w LaTeX? Czy są dostępne jakieś pakiety do tego? Czy myślisz TikZ będzie dobrym pomysłem na to?

42
user855

Ponieważ niektórzy profesorowie zezwalali nam na używanie ściągawek zapisanych na komputerze do egzaminów, postanowiłem stworzyć szablon jakiś czas temu, aby zaoszczędzić wystarczająco dużo miejsca, ale zachować czytelność. Szablon używa kodu odpowiedzi tutaj .

Aktualizacja: Pełny kod źródłowy można teraz znaleźć tutaj .

Plik podstawowy wygląda tak:

\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\multi@column@out{%
   \ifnum\outputpenalty <-\@M
   \speci@ls \else
   \ifvoid\colbreak@box\else
     \mult@info\@ne{Re-adding forced
               break(s) for splitting}%
     \setbox\@cclv\vbox{%
        \unvbox\colbreak@box
        \penalty-\@Mv\unvbox\@cclv}%
   \fi
   \splittopskip\topskip
   \splitmaxdepth\maxdepth
   \dimen@\@colroom
   \divide\skip\footins\col@number
   \ifvoid\footins \else
      \leave@mult@footins
   \fi
   \let\ifshr@kingsaved\ifshr@king
   \ifvbox \@kludgeins
     \advance \dimen@ -\ht\@kludgeins
     \ifdim \wd\@kludgeins>\z@
        \shr@nkingtrue
     \fi
   \fi
   \process@cols\mult@gfirstbox{%
%%%%% START CHANGE
\ifnum\count@=\numexpr\mult@rightbox+2\relax
          \setbox\count@\vsplit\@cclv to \dimexpr \dimen@-1cm\relax
\setbox\count@\vbox to \dimen@{\vbox to 1cm{\header}\unvbox\count@\vss}%
\else
      \setbox\count@\vsplit\@cclv to \dimen@
\fi
%%%%% END CHANGE
            \set@keptmarks
            \setbox\count@
                 \vbox to\dimen@
                  {\unvbox\count@
                   \remove@discardable@items
                   \ifshr@nking\vfill\fi}%
           }%
   \setbox\mult@rightbox
       \vsplit\@cclv to\dimen@
   \set@keptmarks
   \setbox\mult@rightbox\vbox to\dimen@
          {\unvbox\mult@rightbox
           \remove@discardable@items
           \ifshr@nking\vfill\fi}%
   \let\ifshr@king\ifshr@kingsaved
   \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 \c@tracingmulticols>\thr@@
                    \hrule\allowbreak \fi
   \fi
   \ifx\@empty\kept@firstmark
      \let\firstmark\kept@topmark
      \let\botmark\kept@topmark
   \else
      \let\firstmark\kept@firstmark
      \let\botmark\kept@botmark
   \fi
   \let\topmark\kept@topmark
   \mult@info\tw@
        {Use kept top mark:\MessageBreak
          \meaning\kept@topmark
         \MessageBreak
         Use kept first mark:\MessageBreak
          \meaning\kept@firstmark
        \MessageBreak
         Use kept bot mark:\MessageBreak
          \meaning\kept@botmark
        \MessageBreak
         Produce first mark:\MessageBreak
          \meaning\firstmark
        \MessageBreak
        Produce bot mark:\MessageBreak
          \meaning\botmark
         \@gobbletwo}%
   \setbox\@cclv\vbox{\unvbox\partial@page
                      \page@sofar}%
   \@makecol\@outputpage
     \global\let\kept@topmark\botmark
     \global\let\kept@firstmark\@empty
     \global\let\kept@botmark\@empty
     \mult@info\tw@
        {(Re)Init top mark:\MessageBreak
         \meaning\kept@topmark
         \@gobbletwo}%
   \global\@colroom\@colht
   \global \@mparbottom \z@
   \process@deferreds
   \@whilesw\if@fcolmade\fi{\@outputpage
      \global\@colroom\@colht
      \process@deferreds}%
   \mult@info\@ne
     {Colroom:\MessageBreak
      \the\@colht\space
              after float space removed
              = \the\@colroom \@gobble}%
    \set@mult@vsize \global
  \fi}

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

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

Kiedy używasz kodu, skopiuj szablon i umieść kod LaTeX w zewnętrznych plikach, takich jak section1.tex, section2.tex,.... Następnie możesz łatwo podążać za normalną strukturą wewnątrz takich plików jak 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}

Po wypełnieniu sekcji otrzymasz skompresowany dokument, który nadal wygląda dobrze:

Cheat sheet page 1

Cheat sheet page 2

35
Tim

Tworzyłem również własne ściągawki do różnych rzeczy. Naprawdę lubię wyglądać Latex Cheat Sheet znaleźć tutaj . Proponuję złapać źródło tex i ukraść z niego kilka pomysłów :).

12
knt

Rozważ użycie multicol .

I rozważ zapoznanie się z CTAN . Większość rzeczy, do których TeX trafia prędzej czy później, choć wymaga trochę kopania, jeśli nie wiesz, czego szukasz.

10
dmckee

Oto piękny przykład ściągawki (to właściwie broszura, a nie tylko kilka stron).

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

Jest wykonany za pomocą LaTex. Podsumowuje wszystkie symbole na wspólnym standardzie LISP. Może możesz wybrać jedną lub dwie wskazówki z dostępnego źródła LaTeX.

9
Mig

Podoba mi się, jak wyglądają te ściągawki:

http://michaelgoerz.net/refcards/

7
João Pesce

Możesz również znaleźć szablon Nicei ściągających tutaj: https://www.overleaf.com/gallery/tagged/cheat-sheet#.Wy6Rkhx1YnR

0
ZiGaelle