Kontroll -Schriftgröße in Grafiken in Latex beim Skalieren in Minipage/Sub -Defizierung?

StackOverflow https://stackoverflow.com/questions/2239328

  •  19-09-2019
  •  | 
  •  

Frage

Ich verwende PGF/Tikz -Grafiken und frage mich, wie man die Skalierung von Schriftgrößen in der Grafik steuern kann, wenn man sie in Minipage-/Sub -Defig -Umgebungen verwendet?

Gibt es eine Möglichkeit, eine dauerhafte Schriftgröße für PGF/Tikz -Grafiken oder in Latex im Allgemeinen manuell festzulegen, um eine Schriftgröße für die Skalierung invariant zu machen?

Idealerweise möchte ich in der Lage sein, eine Schriftgröße pro Grafik oder für alle Grafiken oder Sub -DeFig/Minipage -Umgebungen manuell anzugeben?

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 kann ich außerhalb von Minipage/Subfig die Vorschläge aus dem anderen Beitrag verwenden, um die Schriftart groß zu machen, da die Grafik mit der Seitenbreite skaliert ist? Was ich im Beispiel wollte, war das erste Bild für sich selbst, größer und dann zwei kleine Denkmale direkt untereinander mit ihren eigenen Bildunterschriften in einer Figur.

Ich habe einige R -Tags in Ihrem Profilmarka gesehen. Die Grafiken werden mit TikzDevice generiert und in meinem Latex -Dokument aufgenommen.

Ich generiere also die Dateien ohne die Tikzpicture -Umgebung, damit ich dort selbst Optionen einstellen kann. Wenn ich das benutze \begin{tikzpicture} \end{tikzpicture} Ich bekomme den Fehler "Dimension zu groß Ich kann nicht mit Größen arbeiten als etwa 19 Fuß. Weiter und ich werde den größten Wert verwenden, den ich kann.". Ich muss verwenden \beginpgfgraphicnamed{} .. \endpgfgraphicnamed{} Um es zum Laufen zu bringen? Ich bin mir nicht sicher, wie genau die Auswirkungen sind.

Hier ist ein Beispiel der automatisch generierten 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, dass über die gesamte Datei ~ 1.000 Zeilen entspricht, also habe ich versucht, eine Darstellung der einzigartigen Bits auszuschneiden. Bitte lassen Sie mich wissen, ob Sie noch etwas brauchen.

Danke vielmals,

Jay

War es hilfreich?

Lösung

Ich bin mir nicht ganz sicher, was Ihr Ziel ist. Die Schriftgröße oder die Größe des Restes des Bildes ändern? Es gibt mehrere Möglichkeiten, um eines davon zu erreichen:

Mein Beispielbox mit einer 1 cm x 1 cm großen Box:

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

Skalieren Sie die grafischen Elemente, aber nicht den 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}

Skalieren Sie nur die Koordinaten (dh, wenn keine Einheit angegeben ist, multiplizierte Multiplikationen des angegebenen X-, Y- und Z -Vektors):

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

Damit werden explizite Längen nicht geändert:

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

Skalieren Sie alles, sogar den Text (laut 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 unter Verwendung von Latex -Befehlen:

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

Ä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 Sie die Schriftgröße in allen nachfolgenden Tikzpicture -Umgebungen (\tikzset Kann auch die obigen Optionen einstellen):):

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

\tikzset bleibt in Gruppen lokal:

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

Ich weiß nicht, ob Sie die Dateien bearbeiten können graph?.tex, oder sind diese erzeugt? Vielleicht können Sie Optionen an das Programm übergeben, das die generiert tikzpicture Umgebung. Ansonsten stellen Sie einfach die gewünschte Option in Ihrem gewünschten Bereich ein \tikzset.

Ich hoffe, das hilft.

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

BEARBEITEN: Dieses "minimale" Beispiel funktioniert für mich (zeigt einen wirklich großen "Mackenzie -Nettoumsatz", der die Breite des Unterstellers übersteigt)

\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 testen Sie, ob dies auch für Sie funktioniert. Wenn dies der Fall ist, versuchen Sie, diese zu ändern, bis es nicht mehr funktioniert. Was ist die Breaking -Veränderung?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top