個人用のチートシートを作りたいです。私はこの機会を利用して、 LaTeX にも良い手を差し伸べたいと思います。 (LaTeXに関連する簡単なドキュメントを数学で作成することはすでに快適です。)
今、LaTeXでチートシートを作ってみたいと思います。しかし、私はそれを行う方法がわかりません。チートシートでは、通常、ページは複数の長方形のセクションに分割され、各セクションにはいくつかのコマンドまたはメモが含まれています。各長方形セクションには境界線などがあります。
LaTeXでそれを行うにはどうすればよいですか?これを行うためのパッケージはありますか? TikZ が良いアイデアになると思いますか?
一部の教授はコンピューターで書かれたチートシートを試験に使用することを許可したので、できるだけ前にテンプレートを作成して、可能な限り十分なスペースを節約しながら読みやすくしました。テンプレートは、回答のコード here を使用します。
更新:完全なソースコードが見つかりました ここ 。
ベースファイルは次のようになります。
\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}
コードを使用する場合は、テンプレートをコピーし、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}
セクションを埋めた後、次のように表示された非常に圧縮されたドキュメントが表示されます。
いろいろなチートシートも作ってます。私はラテックスのチートシート ここにあります がどのように見えるかが本当に好きです。私はtexソースを取得し、そこからいくつかのアイデアを盗むことをお勧めします:)。
multicol
の使用を検討してください。
そして [〜#〜] ctan [〜#〜] に慣れることを検討してください。ほとんどの場合、TeXは遅かれ早かれそこで終わりますが、探しているものがわからない場合は、掘り下げる必要があります。
チートシートの美しい例を次に示します(実際には2ページではなく小冊子です)。
LaTexを使用して作られています。 Common LISP標準のすべてのシンボルを要約しています。たぶん、利用可能なLaTeXソースから1つまたは2つのヒントを選ぶことができます。
私はこれらのチートシートがどのように見えるかが好きです: