Defina a largura de um quebra-cabeça lógico dinamicamente

Defina a largura de um quebra-cabeça lógico dinamicamente

Quero que uma página PDF caiba completamente em um quebra-cabeça lógico (cortado), mas não sei a largura resultante ao iniciar o bloco do quebra-cabeça:

\documentclass[border=50px]{standalone}
\usepackage[german]{babel}
\usepackage{logicpuzzle}
\begin{document}
  \begin{fourwinds}[rows=50,columns=50,width=750px,scale=0.5]
    \framepuzzle
    \fourwindscell{1}{1}{2}{}
    \fourwindscell{50}{50}{2}{}
  \end{fourwinds}
\end{document}

Quero calcular a largura 750pxdinamicamente. A documentação logicpuzzlediz que esta é a largura da minipágina que envolverá o quebra-cabeça. Mas não encontrei uma opção para definir dinamicamente a largura de uma minipágina.

Existe uma maneira de ajustar a largura de uma minicaixa depois de ela ter sido "criada" para uma nova largura? E posso obter a largura de uma minipágina que descreve quantos pixels seriam necessários para exibir todo o conteúdo?

É possível calcular a largura resultante antes de criar o quebra-cabeça como width=<number of columns * width of one column>? E é possível obter a largura de uma coluna do logicpuzzlepacote?

Não encontrei uma varwidthopção de logicpuzzlepacote que fosse exatamente o que preciso...

Responder1

logicpuzzlefaznãooferecem a possibilidade de definir um quebra-cabeça exato width, heightpois o tamanho real do quebra-cabeça pode sempre ultrapassar o dado widthdo minipage! Mas é claro que você sempre pode usar \resizeboxpara definir o widthou heightde um object!

\documentclass{article}
\usepackage[german]{babel}
\usepackage{logicpuzzle}
\begin{document}
  \resizebox{8cm}{!}
  {
    \begin{fourwinds}[rows=50,columns=50,width=10cm,scale=0.2,fontsize=tiny]
      \framepuzzle
      \fourwindscell{1}{1}{2}{}
      \fourwindscell{50}{50}{2}{}
    \end{fourwinds}
  }
\end{document}

imagem

Como egregjá observado, 750 px(Pixel) não faz sentido no contexto de um formato vetorial como PDF, então simplesmente especifique um com in cmou qualquer outra LaTeXunidade.

O padrão widthde uma coluna é 1 cm. Portanto, você pode calcular aproximadamente o widthvalor do quebra-cabeça com columns * 1cm * scale, por exemplo 50*1cm*0.2 = 10cm! No log você encontrará que isso 10cmé um pouco pequeno:Overfull \hbox (4.37386pt too wide) in paragraph at lines 12--12 [][]

Tenha em mente que usar \resizeboxtodos os lugares pode resultar em tamanhos de fonte diferentes nos quebra-cabeças, o que pode não parecer muito agradável! Usar um conjunto fixo de fontsizee scalepode ser a melhor opção, mas pode ser difícil para quebra-cabeças com tamanhos muito diferentes.

informação relacionada