如何使用 tikzpicture 调整自动列数

如何使用 tikzpicture 调整自动列数

我正在列出问题列表,并在每个问题的语句末尾使用 tikzpicture 制作垂直和水平线。我正在手动设置行数和列数。列数是固定的,但行数,我必须手动调整每个问题,因为语句的大小不同。在每个问题的末尾我使用 \newpage。我想知道是否有办法自动执行此操作。我的代码是

\documentclass[11pt,twoside,a4paper]{article}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1.8cm]{geometry}% Margens

\usepackage{indentfirst}                % Coloca parágrafo no início texto
\usepackage[portuguese]{babel}          % Linguagem português
\usepackage[pdftex]{hyperref}           % Para criar anexar links
%\usepackage{lmodern}                   % Usa a fonte Latin Modern
\usepackage{multicol}                   % Texto em duas colunas
\setlength{\parindent}{0cm}
\newcommand{\fixspacing}{\vspace{0pt plus 1filll}\mbox{}}

\usepackage{xcolor}
\usepackage{tikz}
\tikzstyle{dashdotted}=[dash pattern=on 9pt off 2pt on \the\pgflinewidth off 2pt]
\usetikzlibrary{positioning}

%\setlength{\columnsep}{0.7cm}          % Separação entre as colunas
%\usepackage{chemformula}               % Para escrever fórmulas químicas
%\usepackage[version=4]{mhchem}         % |
%\usetikzlibrary{fit}                   % |Formatação das fórmulas químicas
%\usepackage{mol2chemfig}               % |
%\usepackage{caption}                   % Colocar caption em minipage
%\usepackage[font=footnotesize,labelfont=bf]{caption} %Coloca a "Figura" em negrito nas legendas
%\usepackage{microtype}                     % para melhorias de justificação
%\usepackage[brazilian,hyperpageref]{backref}    % Paginas com as citações na bibliografia
%\usepackage[alf]{abntex2cite}          % Citações padrão ABNT
%\usepackage{lipsum}                        % para geração de dummy text
\usepackage{subfigure}                  % Adicionar subfiguras
%\usepackage{fontawesome}               % Fonte e simbolos
\usepackage{xcolor}                     % Mudar cor das palavras
\usepackage{graphicx}                   % Inclusão de gráficos
%\hypersetup{colorlinks = true}         % Colorir Links
%\usepackage{nomencl}                   % Lista de simbolos
\usepackage[utf8]{inputenc}             % Codificacao do documento (conversão automática dos acentos)
%\usepackage{showframe}                 % Mostra margens
\usepackage{amsmath}                    % Ambiente Matemático
\usepackage{array}                      % Para colocar tabelas
\usepackage{float}                      % fixa a figura no lugar
\usepackage[a]{esvect}                  % vetor pra maiuscula
\usepackage{enumitem}
\setlist[enumerate]{wide=0pt, align=left}

\usepackage{calc}% http://ctan.org/pkg/calc





\begin{document}


    
\begin{figure}
    \begin{tikzpicture}[
            myrectangle/.style={rectangle, draw, minimum width=160, minimum height=40, thick, rounded corners=5, black}
            ]
            
            \node[myrectangle] (a) at (0,0) {
                \hspace{0.50cm}
                \begin{minipage}{0\textwidth}
                    \includegraphics[scale=.4]{./figuras/CEFETMG_vetorizada.pdf}
                \end{minipage}
            \hspace{0.9cm}
                \begin{minipage}{0.90\textwidth}
                    {\centering CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
                                    \vspace{0.2cm}\\
                    CAMPUS CURVELO\\}
                %1ª lista de exercícios do 3° bimestre – 1ª ano\\
    %\centering Prof. 
                \end{minipage}};
    \end{tikzpicture}
\end{figure}


\vspace{0.8cm}

\centering 1ª lista de exercícios do 4° bimestre - 1° ano - Prof. 

\vspace{0.4cm}

\centering \normalsize \textbf{Potência e rendimento}



\vspace{0.4cm}


\footnotesize
\begin{enumerate}
    
\item Qual é o rendimento de um motor que recebe a potência de 300 W, durante 1 min, e realiza um trabalho de 4.320 J?

\begin{tikzpicture}[x=1cm, y=1cm, semitransparent]
    \draw[step=5mm, line width=0.2mm, black!60!white,dotted] (0,0) grid (19,22);
\end{tikzpicture}

%\begin{tikzpicture}
%   \draw[gray,dotted,help lines,xstep=.6cm, ystep=0.6cm,line width=0.1pt] (0,0) grid (1,1);
%\end{tikzpicture}

\newpage
\item Uma máquina tem potência total de 500 HP e rendimento de 60\%. Determine:

\begin{enumerate}
    \item a potência útil que ela desenvolve;
    \item o trabalho útil que sua força pode realizar em 10 s. Dado: 1 HP = 746 W.
\end{enumerate}

\begin{tikzpicture}[x=1cm, y=1cm, semitransparent]
    \draw[step=5mm, line width=0.2mm, black!60!white,dotted] (0,0) grid (19,25);
\end{tikzpicture}
\newpage
\end{enumerate}
\end{document}

答案1

我创建了一个宏,使用 Ti 用网格填充任何空间Z 和基本\fill宏。网格仅绘制到适合水平和垂直尺寸的下一个完整步骤。网格固定在左上角。您可以使用可选参数来设置网格样式。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\makeatletter
\newlength{\gridwidth}
\newlength{\gridheight}
\newlength{\gridstep}
\newcommand{\gridfill}[1][]{%
    \tikz[remember picture]{ \coordinate (grid start) at (0,0); }%
    \vfill\hfill\null%
    \tikz[remember picture]{ \coordinate (grid end) at (0,0); }%
    \begin{tikzpicture}[remember picture, overlay, #1]
        \pgfmathsetlength{\gridstep}{\tikz@grid@x}
        \draw let \p1 = (grid start |- grid end),
                  \p2 = (grid start -| grid end), 
                  \n1 = {veclen(\x1,\y1)},
                  \n2 = {veclen(\x2,\y2)}
              in \pgfextra{
                  \pgfmathsetlength{\gridwidth}{int(\n1 / \gridstep) * \gridstep}
                  \pgfmathsetlength{\gridheight}{int(\n2 / \gridstep) * \gridstep}
                  \draw[shift={(grid start)}] (0,0) grid (\gridwidth,-\gridheight);
              };
    \end{tikzpicture}%
}
\makeatother

\begin{document}

Hello

\gridfill[step=5mm, line width=0.2mm, opacity=0.5, dotted]

Hello 

\gridfill[red]

\end{document}

在此处输入图片描述

相关内容