文档设计反馈

文档设计反馈

在接下来的几周里,我需要制作几份这样的文件。这些讲义将分发给学生,涵盖课程的主要主题。

目前,我正在使用parbox(用于单行)或minipage(用于多行)结合tabular环境来划分文档,以便更好地对齐。我还使用它parkskip来定义每个框之间的垂直空间:

\documentclass[10pt,a4paper,landscape]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=0.4cm]{geometry}
\usepackage{inconsolata}
\usepackage[parfill]{parskip}
\usepackage[cmyk]{xcolor}
\usepackage[usestackEOL]{stackengine}

\definecolor{red}{RGB}{153,0,0}
\definecolor{blue}{RGB}{51,102,153}
\pagestyle{empty}
\setlength{\parskip}{3mm}

\begin{document}

\parbox[t]{200mm}{\huge{\textbf{Resumo Aula 1 - Curso MATLAB}}}

\parbox[t]{200mm}{\huge{$\bullet$ Concatenação e criação de matrizes - Operador \texttt{[]} e \texttt{:}}}

%\fbox
{
    \begin{minipage}[t]{140mm}
    \Large
    \renewcommand{\arraystretch}{1.5} 
    \begin{tabular}{ l l l }
        \texttt{a = [1,2,3,4]} & \texttt{a = [1 2 3 4]} & Vetor Coluna \\
        \texttt{a = [1,2,3,4]} &  & Vetor Linha  \\
        \texttt{c = [a,a]} & \texttt{c = [a a]} & Concatenização Vertical \\
        \texttt{C = [a;a]} & & Concatenização Horizontal
    \end{tabular}
    \end{minipage}
}
%\fbox
{
    \begin{minipage}[c]{100mm}
    \Large
    \renewcommand{\arraystretch}{1} 
    \begin{tabular}{ l l }
        \texttt{zeros} & Matriz de zeros \\
        \texttt{ones} & Matriz de números 1 \\
        \texttt{eye} & Matriz identidade  \\
        \texttt{rand} & Matriz de números aleatórios \\
        \texttt{zeros(3,3)} &  Matriz 3x3\\
        \texttt{zeros(1,3)} &  Matriz 3x1
    \end{tabular}
    \end{minipage}
}

\parbox[b]{65mm}{\Large{\texttt{inicio:incremento:fim}}}
\parbox[b]{60mm}{\Large{\texttt{1:2:10}}$\rightarrow$ \texttt{[1 3 5 7 9]}}
\parbox[b]{40mm}{\Large{\texttt{1:4}}$\rightarrow$ \texttt{[1 2 3 4]}}
\parbox[c]{40mm}{Se o incremento não for especificado é considerado um incremento de 1}

\parbox[t]{200mm}{\huge{$\bullet$ Indexação - Operadores \texttt{()} e \texttt{:}}}

%\fbox
{
    \begin{minipage}[t]{200mm}
    \Large
     \renewcommand{\arraystretch}{1.5} 
    \begin{tabular}{ l l }
        \texttt{A(indice)} & Procura através das colunas \\
        \texttt{A(indiceLinha, indiceColuna)} & Intersecção do vetor \texttt{indiceLinha} e \texttt{indiceColuna}  \\
        \texttt{end} & Seleciona o último elemento de uma dimensão \\
        \texttt{:} & Seleciona toda uma dimensão
    \end{tabular}
    \end{minipage}
}

%\fbox
{
    \begin{minipage}[c]{130mm}
        \Large
        \includegraphics{exemploIndexacao}
        
        \texttt{\textcolor{red}{indiceLinha} = [1 3]}
        
        \texttt{\textcolor{blue}{indiceColuna} = [2 3]}
        
        \texttt{A(\textcolor{red}{indiceLinha}, \textcolor{blue}{indiceColuna})}
        
    \end{minipage}
}
%\fbox
{
    \begin{minipage}[c]{135mm}
         \Large
        \renewcommand{\arraystretch}{1.5} 
        
        \begin{tabular}{ l l }
            \texttt{A(:,2)} & Segunda coluna completa  \\
            \texttt{A(:)} & Todos os elementos de A em um vetor coluna   \\
            \texttt{A([1 3],:)} & Primeira e terceira linha completa \\
            \texttt{A(1,end)} & Primeira e última coluna
        \end{tabular}
        \end{minipage}
}

\scriptsize\raggedleft\vfill{\textbf{Copyright \copyright\ 2016 Pedro Dreyer ([email protected])}}

\end{document}

你们觉得怎么样?有没有更正确/更优雅的方式来存档相同的结果?

其他一些问题:

1-我可以让parbox宽度和里面的文本大小完全一致吗?

2-为什么我会收到overfull \hbox警告? 的宽度minipages足以容纳其内容。

3- 对该文件的整体设计有什么意见/评论吗?

答案1

正如您所说,您必须制作一些这样的文件,因此这里有一些建议:

  1. 避免横向显示。横向显示会使文本难以理解。
  2. 让 LaTeX 指导您完成页面的节奏和排版。使用\section*, \subsection*等来定义标题级别。
  3. 为经常使用的表格编写宏,并将样式元素移至表格规范。为此添加矩阵包。
  4. 努力使文档中的标记量最少。
  5. 不要试图在四个(第一个表)的空间中放入六行。垂直对齐并不容易。
  6. 拥抱UTF-8LuaLaTeX。

这是该文档第一部分的 MWE。

\documentclass[10pt,a4paper,draft]{article}
\usepackage{fontspec}
\setmainfont{arial}
\usepackage{graphicx}
\usepackage[left=0.8cm,right=0cm,top=1cm,bottom=0.4cm]{geometry}
\usepackage[parfill]{parskip}
\usepackage[cmyk]{xcolor}
\usepackage[usestackEOL]{stackengine}
\usepackage{array,longtable}
\usepackage{multicol}
\definecolor{red}{RGB}{153,0,0}
\definecolor{blue}{RGB}{51,102,153}
\pagestyle{empty}
\setlength{\parskip}{3mm}

\newenvironment{matlab}{%
   \begin{tabular}[t]{>{\bfseries\ttfamily} l >{\ttfamily} l  >{\itshape}l }%
}{\end{tabular}}

\newcommand{\matcmd}[2]{
\bgroup\ttfamily
#1$\rightarrow$ #2\egroup
}

\begin{document}

\section*{Resumo Aula 1 - Curso MATLAB}

\subsection*{Concatenação e criação de matrizes - Operador \texttt{[]} e \texttt{:}}

\begin{matlab}
        zeros & Matriz de zeros &\\
        ones & Matriz de números 1 & \\
        eye & Matriz identidade & \\
        rand & Matriz de números aleatórios & \\
        zeros(3,3) &  Matriz 3x3 &\\
        zeros(1,3) &  Matriz 3x1 &
\end{matlab}
\begin{matlab}
       a = [1,2,3,4] & a = [1 2 3 4] & Vetor Coluna \\
       a = [1,2,3,4] &  & Vetor Linha  \\
       c = [a,a] & c = [a a] & Concatenização Vertical \\
       C = [a;a] & & Concatenização Horizontal
\end{matlab}

\matcmd{inicio:incremento:fim}{}

\matcmd{1:2:10}{[1 3 5 7 9]}

Se o incremento não for especificado é considerado um incremento de 1

\matcmd{1:4}{[1 2 3 4]}

\subsection*{Indexação - Operadores \texttt{()} e \texttt{:}}

\begin{matlab}
 A(indice) & Procura através das colunas &\\
 A(indiceLinha, indiceColuna) & Intersecção do vetor \texttt{indiceLinha} e \texttt{indiceColuna} & \\
end& Seleciona o último elemento de uma dimensão &\\
       : & Seleciona toda uma dimensão
\end{matlab}
\end{document}

答案2

我还将建议一些我想到的软件包,也许它们对未来的文档有所帮助。

  • minted包,用于代码高亮显示。对于短代码片段可能无关紧要,但对于代码块来说,它绝对是一个很好的工具。它由支持 300 多种语言的 Pygments 提供支持,并且有多种开箱即用的样式。请注意,此包需要编译,-shell-escape并且可能还需要安装 python(对此我不是 100% 确定)。

  • titlesec根据您的需要格式化章节和小节。

  • tikzpgf制作出令人惊奇的字体一致的图画。

  • fancyhdr格式化页脚和页眉。对于您来说,也许最好将页脚用于版权文本,将页眉用于一些精美的徽标。

相关内容