
Mein Ziel ist es, einen Prozess zu automatisieren, bei dem ich viele Bilder aus einer Filmsequenz habe und diese in absteigender Reihenfolge angeordnet haben möchte. Dazu liegen alle meine Bilder in einem Ordner und werden natürlich mit einem Dateiindex am Ende benannt. Ich habe mich für ein entschieden , aber solange es flexibel ist (basierend auf 3 Parametern: Gesamtbreite; Miniaturbreite; Anzahl der Spalten), wäre matrix
alles, was darin enthalten ist, großartig.tikz
% !TeX encoding = UTF-8
% !TeX spellcheck = fr_FR
\documentclass[11pt, frenchb, twoside]{report}
% IMPORTS
\usepackage{polyglossia}
\usepackage{xparse}
\usepackage{xifthen}
\usepackage{tikz}
\usetikzlibrary{backgrounds, patterns, shapes,
calc, positioning,
matrix, scopes,
decorations.fractals, decorations.text}
\newlength{\foolen}
\newlength{\barlen}
% GRIDFIGURES % % % % % % % % % % % % % % % %
% #1 total width [default: \textwidth]
% #2 total figures
% #3 total columns
% #4 gutter space
% #5 folder
% #6 label
\ProvideDocumentCommand \gridFigures{ O{\textwidth} m m m m m }
{%
\let\gridcontent\empty
\let\ea\expandafter%
\pgfmathsetlength{\foolen}{(#1/#3)-#4}
\pgfdeclareimage[width=\foolen]{ghost}{../assets/#5/#6-1}
\settoheight{\barlen}{\pgfuseimage{ghost}}
%
\foreach \i in {1,2,...,#2}
{%
\pgfmathparse{mod(\i,#3)}
\pgfmathtruncatemacro{\mod}{\pgfmathresult}
\ifthenelse{\mod>0}
{\ea\gappto\ea\gridcontent\ea{\ea{\i} \&}}
{\ea\gappto\ea\gridcontent\ea{something \ea{\i} \\}}}
\begin{tikzpicture}
\matrix[matrix of nodes, ampersand replacement=\&]{\gridcontent};
\end{tikzpicture}}
\begin{document}
\begin{figure}[ht]
\gridFigures{40}{5}{5mm}{mohr}{cubic-limit}
\end{figure}
\end{document}
Denn im Moment kann ich meine Matrix aufgrund eines Erweiterungsproblems nicht mit der Bildnummer füllen. Um das Bild mit dem Dateiindex ( \i
) innerhalb des neu zu erstellen \foreach
, i
muss direkt danach erweitert werden, \ea\gappto\ea\gridcontent\ea
sonst funktioniert es nicht. Wahrscheinlich übersehe ich etwas, da ich zum ersten Mal wirklich zu verstehen beginne, was Erweiterung ist.
Antwort1
\documentclass{article}
\usepackage{xparse}
\usepackage{tikz}
\usetikzlibrary{calc, positioning, matrix, scopes}
\tikzset{nosep/.style={inner sep=0pt,outer sep=0pt}}
% GRIDFIGURES % % % % % % % % % % % % % % % %
% #1 total width [default: \textwidth]
% #2 macro for matrix content
% #3 total figures
% #4 total columns
% #5 gutter space
% #6 folder
% #7 label
\ExplSyntaxOn
\ProvideDocumentCommand \gridFigures{ O{\textwidth} m m m m m m }
{%
\tl_clear_new:N #2
\dim_new:N \l_width_dim
\pgfmathparse{#3-1}
\pgfmathtruncatemacro{\row}{\pgfmathresult}
\pgfmathsetlength{\l_width_dim}{(#1/#4)-#5}
\int_step_inline:nnnn {1}{#4}{\row}
{
\pgfmathparse{##1+#4-1}
\pgfmathtruncatemacro{\col}{\pgfmathresult}
\int_step_inline:nnnn {##1}{1}{\col}
{
\tl_put_right:Nn #2 {\includegraphics[width=\l_width_dim]{#6/#7-####1}}
\int_compare:nT {####1<\col}
{\tl_put_right:Nn #2 {\&}}
}
\tl_put_right:Nn #2 {\\}
}
}
\ExplSyntaxOff
\begin{document}
\gridFigures{\matrixContent}{40}{5}{2mm}{../assets/mohr}{cubic-limit}
\begin{tikzpicture}[nosep]
\matrix[matrix of nodes,ampersand replacement=\&,
column sep=2mm,row sep=2mm]{\matrixContent};
\end{tikzpicture}
\end{document}