Taille de la police de contrôle dans les graphiques dans le latex lors de la mise à l'échelle dans les minipages / sous-fig?
Question
J'utilise des graphiques PGF / TIKZ et je me demande comment on peut contrôler la mise à l'échelle des tailles de police dans les graphiques lorsque vous les utilisez dans des environnements minipages / sous-chiffres?
Existe-t-il un moyen de définir manuellement une taille de police permanente pour les graphiques PGF / TIKZ ou en latex en général afin de rendre l'invariant de dimensionnement de police à la mise à l'échelle?
Idéalement, j'aimerais pouvoir spécifier manuellement une taille de police par graphique ou pour tous les graphiques ou les environnements de sous-fig / mini-page?
Voici un exemple de l'utilisation comme suggéré. Merci pour l'aide.
\begin{figure}[h]
\centering
\subfloat[Graph 1]{
\begin{minipage}[h]{0.7\linewidth}
\centering\beginpgfgraphicnamed{graph1}
\input{graph1.tex}
\endpgfgraphicnamed
\label{fig:graph1}
\end{minipage}}
\hspace{5pt}
\subfloat[Graph 2]{
\begin{minipage}[h]{0.5\linewidth}
\centering\beginpgfgraphicnamed{graph2}
\input{graph2.tex}
\endpgfgraphicnamed
\label{fig:graph2}
\end{minipage}}
\subfloat[Graph 3]{
\begin{minipage}[h]{0.5\linewidth}
\centering\beginpgfgraphicnamed{graph3}
\input{graph3.tex}
\endpgfgraphicnamed
\label{fig:graph3}
\end{minipage}}
\caption{Three Graphs}
\end{figure}
Peut-être qu'en dehors des minipages / sous-fig, je peux utiliser les suggestions de l'autre publication pour rendre la police grande puisque le graphique est mis à l'échelle avec la largeur de la page? Ce que j'allais rechercher dans l'exemple était la première image en soi, plus grande, puis deux smimages juste en dessous côte à côte avec leurs propres légendes sur une seule figure.
J'ai vu des balises R dans votre profil mica. Les graphiques sont générés à l'aide de TikzDevice et sont ramassés dans mon doc latex.
Je génère donc les fichiers sans l'environnement TikzPicture afin que je puisse y définir manuellement des options. Quand j'utilise le \begin{tikzpicture} \end{tikzpicture}
J'obtiens l'erreur "Dimension trop grande, je ne peux pas travailler avec des tailles plus grandes que 19 pieds. Continuez et j'utiliserai la plus grande valeur possible.". J'ai besoin d'utiliser \beginpgfgraphicnamed{} .. \endpgfgraphicnamed{}
Pour le faire fonctionner? Je ne sais pas quel est l'impact.
Voici un échantillon du fichier généré automatiquement:
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
........
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\definecolor[named]{fillColor}{rgb}{1.00,1.00,1.00}
\draw[fill=fillColor,draw opacity=0.00,] ( 0.00, 0.00) rectangle (794.97,614.29);
\end{scope}
........
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\definecolor[named]{drawColor}{rgb}{0.00,0.00,0.00}
\node[rotate= 90.00,color=drawColor,anchor=base,inner sep=0pt, outer sep=0pt, scale= 1.00] at ( 15.92,310.59) {Mackenzie Net Sales};
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
J'espère que cela est utile, sur tout le fichier est d'environ 1 000 lignes, j'ai donc essayé de couper une représentation des bits uniques. S'il vous plaît laissez-moi savoir si vous avez besoin d'autre chose.
Merci beaucoup,
Geai
La solution
Je ne sais pas exactement quel est votre objectif. Pour changer la taille de la police ou la taille du reste de l'image? Il y a plusieurs possibilités pour atteindre ces éléments:
Mon exemple de boîte avec une grande boîte de 1 cm x 1cm:
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
Échelle les éléments graphiques, mais pas le texte:
\begin{tikzpicture}[scale=0.5]
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
\begin{tikzpicture}[scale=0.5]
\draw (0,0) rectangle (1cm,1cm) -- +(-1,-1);
\node(text) at (0.5cm,0.5cm) {Text};
\end{tikzpicture}
Échelle les coordonnées uniquement (c'est-à-dire que si aucune unité n'est spécifiée, il a utilisé des multiples de multiplesx du vecteur x, y et z spécifié):
\begin{tikzpicture}[x=5mm,y=5mm]
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
Les longueurs explicites ne sont pas modifiées avec ceci:
\begin{tikzpicture}[x=5mm,y=5mm]
\draw (0,0) rectangle (1cm,1cm) -- +(-1cm,-1cm);
\node(text) at (0.5cm,0.5cm) {Text};
\end{tikzpicture}
Échellez tout, même le texte (selon le PGFMANUAL, cela n'est pas recommandé):
\begin{tikzpicture}[transform canvas={scale=0.5}]
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
Même effet à l'aide de commandes latsh:
\scalebox{0.5}{
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
}
Modifiez la taille de la police localement, mais la taille des éléments graphiques n'est pas modifiée:
\begin{tikzpicture}[font=\scriptsize]
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
Changer la taille de la police dans tous les environnements tikzpicture ultérieurs (\tikzset
peut également être utilisé pour définir les options ci-dessus):
\tikzset{font=\scriptsize}
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
\tikzset
Reste local en groupe:
\begin{minipage}{\linewidth}
\tikzset{font=\scriptsize}
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
\end{minipage}
{
\tikzset{font=\scriptsize}
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
}
\begin{tikzpicture}
\draw (0,0) rectangle (1,1) -- +(-1,-1);
\node(text) at (0.5,0.5) {Text};
\end{tikzpicture}
Je ne sais pas si vous pouvez modifier les fichiers graph?.tex
, ou sont-ils générés? Peut-être pouvez-vous transmettre des options au programme qui génère le tikzpicture
environnement. Sinon, définissez simplement l'option souhaitée dans la portée souhaitée en utilisant \tikzset
.
J'espère que cela pourra aider.
ÉDITER: Si les options (comme font=
) sont définis localement dans le graph?.tex
, alors ceux-ci sont prioritaires sur les options définies à l'extérieur. Si tel est le cas, vous ne pouvez tout simplement pas les écraser de l'extérieur. Vous devrez modifier les fichiers.
ÉDITER: Cet exemple "minimal" fonctionne pour moi (montrant une très grande "ventes nettes de Mackenzie" qui dépasse la largeur de la sous-figure)
\documentclass{article}
\usepackage{fix-cm}
\usepackage{subfig}
\usepackage{tikz}
\begin{document}
\tikzset{every picture/.append style={font=\fontsize{100}{120}\selectfont}}
\begin{figure}[h]
\centering
\subfloat[Graph 1]{
\begin{minipage}[h]{0.7\linewidth}
\centering\beginpgfgraphicnamed{graph1}
% \input{graph1.tex}
\endpgfgraphicnamed
\label{fig:graph1}
\end{minipage}}
\hspace{5pt}
\subfloat[Graph 2]{
\begin{minipage}[h]{0.5\linewidth}
\centering
\resizebox{\textwidth}{!}{
%\beginpgfgraphicnamed{graph2}
\begin{tikzpicture}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (79.497,61.429);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (79.497,61.429);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (79.497,61.429);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\definecolor[named]{fillColor}{rgb}{1.00,1.00,1.00}
\draw[fill=fillColor,draw opacity=0.00,] ( 0.00, 0.00) rectangle (79.497,61.429);
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (79.497,61.429);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\definecolor[named]{drawColor}{rgb}{0.00,0.00,0.00}
\node[rotate= 90.00,color=drawColor,anchor=base,inner sep=0pt, outer sep=0pt, scale= 1.00] at ( 1.592,31.059) {Mackenzie Net Sales};
\end{scope}
\begin{scope}
\path[clip] ( 0.00, 0.00) rectangle (79.497,61.429);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
\end{tikzpicture}
}
%\endpgfgraphicnamed
\label{fig:graph2}
\end{minipage}}
\subfloat[Graph 3]{
\begin{minipage}[h]{0.5\linewidth}
\centering\beginpgfgraphicnamed{graph3}
% \input{graph3.tex}
\endpgfgraphicnamed
\label{fig:graph3}
\end{minipage}}
\caption{Three Graphs}
\end{figure}
\end{document}
Veuillez également tester si cela fonctionne pour vous. Si c'est le cas, essayez de modifier celui-ci jusqu'à ce qu'il ne fonctionne plus. Quel est le changement de rupture?