2010-02-10 3 views
8

Ich verwende pgf/tikz Grafiken und ich frage mich, wie man die Skalierung von Schriftgrößen in den Grafiken steuern kann, wenn sie in Minipage/Subfig-Umgebungen verwendet werden?Steuern Sie die Schriftgröße in Grafiken in LaTeX beim Skalieren in Minipage/Subfig?

Gibt es eine Möglichkeit, eine dauerhafte Schriftgröße für pgf/tikz-Grafiken oder in Latex im Allgemeinen so festzulegen, dass die Schriftgrößenanpassung invariant gegenüber der Skalierung ist?

Idealerweise würde ich gerne eine Schriftgröße pro Grafik oder für alle Grafiken oder Subfig/Minipage-Umgebungen manuell festlegen können?

Hier ist ein Beispiel für die Verwendung wie vorgeschlagen. Danke für die Hilfe.

\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} 

Vielleicht außerhalb der mini/subfig ich die Vorschläge von dem anderen Posting kann die Schriftart groß zu machen, da die Grafik mit der Seitenbreite skaliert? In dem Beispiel ging es um das erste eigene Bild, das größer war, und dann um zwei kleine Bilder, die nebeneinander mit ihren eigenen Bildunterschriften in einer Figur nebeneinander lagen.

Ich sah einige R-Tags in Ihrem Profil Mica. Die Grafiken werden mit TikzDevice erstellt und in meinem Latex-Doc aufgenommen.

Also ich erzeuge die Dateien ohne die Tikzpicture-Umgebung, so dass ich dort selbst Optionen einstellen kann. Wenn ich die \begin{tikzpicture} \end{tikzpicture} benutze, bekomme ich den Fehler "Dimension zu groß Ich kann nicht mit Größen größer als etwa 19 Fuß arbeiten. Fortfahren und ich werde den größten Wert verwenden, den ich kann.". Ich brauche \beginpgfgraphicnamed{} .. \endpgfgraphicnamed{}, damit es funktioniert? Nicht sicher, was die Auswirkung genau ist. Hier

ist eine Probe der automatisch generierte Datei:

\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} 

Hoffentlich ist das hilfreich, über die ganze Datei ist ~ 1000 Zeilen, also habe ich versucht, eine Darstellung o ausschneiden f die einzigartigen Bits. Bitte lassen Sie mich wissen, wenn Sie noch etwas brauchen.

Vielen Dank,

Jay

+0

der eigentliche Code wäre immer noch nützlich. Warum skalierst du eine Tikz/Pgf-Zeichnung? Warum zeichnest du es nicht einfach auf die richtige Größe? – Mica

+0

Code hinzugefügt, danke! :) – Jay

Antwort

12

Ich bin nicht ganz sicher, was Ihr Ziel ist. Um die Schriftgröße oder die Größe des Restes des Bildes zu ändern?Es gibt mehr Möglichkeiten, eine diese zu erreichen:

Meinen Beispiel-Box mit einer 1 cm x 1 cm großen Kiste:

\begin{tikzpicture} 
    \draw (0,0) rectangle (1,1) -- +(-1,-1); 
    \node(text) at (0.5,0.5) {Text}; 
\end{tikzpicture} 

Maßstab der grafischen Elemente, aber nicht dem Text:

\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} 

Skala nur die Koordinaten (dh wenn keine Einheit angegeben wurde, wurden Multiplikationen des angegebenen x-, y- und z-Vektors verwendet):

\begin{tikzpicture}[x=5mm,y=5mm] 
    \draw (0,0) rectangle (1,1) -- +(-1,-1); 
    \node(text) at (0.5,0.5) {Text}; 
\end{tikzpicture} 

Explicit Längen nicht mit dieser Änderung:

\begin{tikzpicture}[x=5mm,y=5mm] 
    \draw (0,0) rectangle (1cm,1cm) -- +(-1cm,-1cm); 
    \node(text) at (0.5cm,0.5cm) {Text}; 
\end{tikzpicture} 

Maßstab alles, auch den Text (nach dem pgfmanual, wird dies nicht empfohlen):

\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} 

Gleicher Effekt mit LaTeX Befehle:

Ändern Sie die Schriftgröße lokal, aber die Größe der grafischen Elemente wird nicht geändert:

\begin{tikzpicture}[font=\scriptsize] 
    \draw (0,0) rectangle (1,1) -- +(-1,-1); 
    \node(text) at (0.5,0.5) {Text}; 
\end{tikzpicture} 

Ändern der Schriftgröße in allen nachfolgenden tikzpicture Umgebungen (\tikzset können die Optionen oben auch eingestellt werden):

\tikzset{font=\scriptsize} 
\begin{tikzpicture} 
    \draw (0,0) rectangle (1,1) -- +(-1,-1); 
    \node(text) at (0.5,0.5) {Text}; 
\end{tikzpicture} 

\tikzset lokal bleibt in Gruppen:

\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} 

I don weiß nicht, ob Sie die Dateien graph?.tex bearbeiten können, oder werden diese erzeugt? Vielleicht können Sie Optionen an das Programm weitergeben, das die tikzpicture-Umgebung generiert. Andernfalls stellen Sie einfach die gewünschte Option in Ihrem gewünschten Bereich mit \tikzset ein.

Hoffe, das hilft.

EDIT: Wenn die Optionen (wie font=) lokal im graph?.tex definiert sind, dann werden diese erhalten Vorrang vor den Optionen außerhalb definiert. Wenn dies der Fall ist, können Sie sie nicht von außen überschreiben. Sie müssten die Dateien bearbeiten.

EDIT: Dieses „minimal“ Beispiel funktioniert für mich (einen wirklich großen „Mackenzie Nettoumsatz“ zeigt, dass die subfigure Breite überschreitet)

\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} 

Bitte prüfen, ob dies für Dich funktioniert auch. Wenn dies der Fall ist, versuchen Sie, diese zu ändern, bis sie nicht mehr funktioniert. Was ist die entscheidende Veränderung?

+0

Danke für die Informationen Meinersbur, das ist großartig. Es gibt einige Optionen, die gesteuert werden können, wie ich die Dateien erstellen kann, so dass ich die tikzpicture-Umgebung manuell vorschicke, aber das wirft den Fehler "Dimension zu groß, ich kann nicht mit Größen größer als etwa 19 Fuß arbeiten.". – Jay

+0

Es wäre besser, interne Teile der automatisch generierten Grafikdateien nicht zu bearbeiten. Es gibt keine "font =" in den Dateien, aber Einstellung \ tikzset {font = \ scriptsize} scheint keine Wirkung zu haben? – Jay

+0

Mein Ziel ist es, die Schriftgröße 10P lässt sich sagen, für Arugment, unabhängig davon, wie Hte Tikz Grafik neu skaliert wird (Subfig, Minipage, ...). Speziell im Setup habe ich geschrieben, dass die Schrift größer in der oberen Grafik und klein (und unlesbar) in der Seite unten liegenden Grafik ist ... – Jay

Verwandte Themen