Controllo dimensione del carattere in grafica in LaTeX durante il ridimensionamento in minipage / subfig?

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

  •  19-09-2019
  •  | 
  •  

Domanda

Sto usando grafica PGF / TikZ e mi chiedo come si possa controllare il ridimensionamento delle dimensioni dei font nella grafica quando le si usa in ambienti minipage / subfig?

C'è un modo per impostare manualmente una dimensione di carattere permanente per la grafica PGF / TikZ o in lattice, in generale, in modo da rendere carattere dimensionamento invariante di scala?

Idealmente mi piacerebbe essere in grado di specificare manualmente una dimensione di carattere per ogni elemento grafico o per tutti gli elementi grafici o ambienti subfig / minipage?

Ecco un esempio di utilizzo come suggerito. Grazie per l'aiuto.

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

Forse al di fuori del minipage / subfig posso utilizzare i suggerimenti dall'altro annuncio a rendere il carattere di grandi dimensioni dal momento che il grafico viene ridimensionato con la larghezza della pagina? Quello che stavo per l'esempio è stata la prima immagine su di essa la propria, più grande, e poi due smallimages proprio sotto fianco a fianco con i loro didascalie in una figura.

Ho visto alcuni tag R nel tuo profilo Mica. La grafica vengono generati utilizzando tikzDevice e sono raccolti nel mio doc lattice.

Così sto generando i file senza l'ambiente tikzpicture in modo che le opzioni è possibile impostare manualmente io stesso. Quando uso il \begin{tikzpicture} \end{tikzpicture} ottengo l'errore "Dimensione troppo grande non posso lavorare con i formati più grandi di circa 19 piedi. Continua e io usare il valore più grande che posso." . Ho bisogno di utilizzare \beginpgfgraphicnamed{} .. \endpgfgraphicnamed{} per farlo funzionare? Non sono sicuro che l'impatto è esattamente.

Ecco un esempio del file generato automaticamente:

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

Si spera che è utile, su tutto il file è ~ 1.000 linee in modo ho cercato di tagliare fuori una rappresentazione dei bit unici. Per favore fatemi sapere se avete bisogno di qualsiasi altra cosa.

Molte grazie,

Jay

È stato utile?

Soluzione

Io non sono esattamente sicuro di cosa il vostro scopo è. Per modificare la dimensione del carattere o la dimensione del resto dell'immagine? Ci sono più possibilità per raggiungere uno di questi:

Il mio esempio di dialogo con un 1 centimetro x 1 centimetri grande scatola:

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

Scala gli elementi grafici, ma non il testo:

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

Scale solo le coordinate (Cioè, se non viene specificato alcun apparecchio, ha usato moltiplica delle x specificate, yez vector):

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

lunghezze espliciti non vengono modificate con questo:

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

Scala tutto, anche il testo (in base al pgfmanual, questo non è consigliato):

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

Lo stesso effetto utilizzando i comandi LaTeX:

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

Modificare la dimensione del carattere a livello locale, ma la dimensione di elementi grafici non vengono modificati:

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

Modificare la dimensione del carattere in tutti gli ambienti tikzpicture successive (\tikzset può essere utilizzato per impostare le opzioni di cui sopra, anche):

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

\tikzset rimane locale in gruppi:

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

Non so se è possibile modificare il file graph?.tex, o sono questi generato? Forse si può passare le opzioni al programma che genera l'ambiente tikzpicture. In caso contrario, è sufficiente impostare l'opzione desiderata nel campo di applicazione desiderata utilizzando \tikzset.

La speranza, che aiuta.

Modifica : Se le opzioni (come font=) sono definiti a livello locale nel graph?.tex, allora questi ottengono la precedenza sulle opzioni definite al di fuori. Se questo è il caso, si può solo non li sovrascrivere dall'esterno. Avresti per modificare i file.

Modifica : Questo esempio "minimale" funziona per me (che mostra davvero un grande "Mackenzie netto di vendita" che supera la larghezza della subfigure)

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

Si prega di verificare se questo funziona per voi, anche. Se lo fa, quindi provare a modificare questo uno fino a quando non funziona più. Qual è il cambiamento di rottura?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top