![如何使用 tikzpicture 调整自动列数](https://linux22.com/image/456983/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20tikzpicture%20%E8%B0%83%E6%95%B4%E8%87%AA%E5%8A%A8%E5%88%97%E6%95%B0.png)
我正在列出问题列表,并在每个问题的语句末尾使用 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}