2010-02-10 69 views
8

Tôi đang sử dụng đồ họa pgf/tikz và tôi tự hỏi làm thế nào người ta có thể kiểm soát việc mở rộng kích thước phông chữ trong đồ họa khi sử dụng chúng trong môi trường minipage/subfig?Kiểm soát kích thước phông chữ trong đồ họa trong LaTeX khi chia tỷ lệ trong minipage/subfig?

Có cách nào để đặt thủ công kích thước phông chữ vĩnh viễn cho đồ họa pgf/tikz hoặc bằng latex nói chung để làm cho kích thước phông chữ bất biến để mở rộng quy mô không?

Lý tưởng nhất là tôi muốn có thể chỉ định kích thước phông chữ cho mỗi đồ họa hoặc cho tất cả môi trường đồ họa hoặc môi trường phụ/minipage theo cách thủ công?

Dưới đây là ví dụ về cách sử dụng như được đề xuất. Cảm ơn đã giúp đỡ.

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

Có lẽ bên ngoài minipage/subfig Tôi có thể sử dụng đề xuất từ ​​bài đăng khác để làm phông chữ lớn vì đồ họa được phóng to với chiều rộng trang? Những gì tôi đã đi cho trong ví dụ là hình ảnh đầu tiên trên riêng của nó, lớn hơn, và sau đó hai ảnh nhỏ ngay bên cạnh bên cạnh với chú thích của riêng mình trong một con số.

Tôi đã thấy một số thẻ R trong tiểu sử của bạn Mica. Các đồ họa được tạo ra bằng cách sử dụng tikzDevice và được chọn trong tài liệu latex của tôi.

Vì vậy, tôi đang tạo các tệp không có môi trường tikzpicture để tôi có thể tự đặt tùy chọn ở đó. Khi tôi sử dụng số \begin{tikzpicture} \end{tikzpicture} Tôi nhận được lỗi "Kích thước quá lớn Tôi không thể làm việc với kích thước lớn hơn khoảng 19 feet. Tiếp tục và tôi sẽ sử dụng giá trị lớn nhất có thể.". Tôi cần sử dụng \beginpgfgraphicnamed{} .. \endpgfgraphicnamed{} để làm cho nó hoạt động? Không chắc tác động chính xác là gì.

Đây là một mẫu của tập tin tự động tạo ra:

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

Hy vọng điều đó hữu ích, trên tất cả các tệp là ~ 1.000 dòng vì vậy tôi đã cố gắng cắt bỏ biểu diễn o f các bit duy nhất. Xin vui lòng cho tôi biết nếu bạn cần bất cứ điều gì khác.

Rất cám ơn,

Jay

+0

mã thực tế sẽ vẫn hữu ích. tại sao bạn mở rộng một bản vẽ tikz/pgf? tại sao không chỉ vẽ nó với kích thước phù hợp? – Mica

+0

Mã được thêm, cảm ơn! :) – Jay

Trả lời

12

Tôi không chắc chắn chính xác những gì mục đích của bạn. Để thay đổi kích thước phông chữ hoặc kích thước của phần còn lại của hình ảnh?Có rất nhiều khả năng để đạt được bất kỳ trong số này:

hộp Ví dụ của tôi với một hộp 1cm x 1cm lớn:

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

Quy mô các yếu tố đồ họa, nhưng KHÔNG đoạn Phúc Âm:

\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 tọa độ chỉ (Tức là, nếu không có đơn vị nào được chỉ định, nó sử dụng số nhân của x, y và z vector được chỉ định):

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

dài Explicit không thay đổi với điều này:

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

Scale tất cả mọi thứ, ngay cả những văn bản (theo pgfmanual, điều này không được khuyến khích):

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

Cùng hiệu lực thi hành lệnh sử dụng LaTeX:

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

Thay đổi kích thước phông chữ cục bộ, nhưng kích thước của các yếu tố đồ họa không thay đổi:

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

Thay đổi kích thước phông chữ trong tất cả các môi trường tikzpicture tiếp theo (\tikzset có thể được sử dụng để thiết lập các tùy chọn ở trên, quá):

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

\tikzset vẫn địa phương trong nhóm:

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

tôi don Không biết liệu bạn có thể chỉnh sửa các tệp graph?.tex hoặc các tệp này được tạo không? Có lẽ bạn có thể chuyển các tùy chọn cho chương trình tạo ra môi trường tikzpicture. Nếu không, chỉ cần đặt tùy chọn mong muốn trong phạm vi mong muốn của bạn bằng cách sử dụng \tikzset.

Hy vọng, điều đó sẽ hữu ích.

EDIT: Nếu các tùy chọn (như font=) được định nghĩa tại địa phương trong graph?.tex, sau đó những được ưu tiên so với các tùy chọn định nghĩa bên ngoài. Nếu đây là trường hợp, bạn chỉ có thể không ghi đè chúng từ bên ngoài. Bạn sẽ phải chỉnh sửa các tập tin.

EDIT: "tối thiểu" Ví dụ này làm việc cho tôi (cho thấy một "Mackenzie Doanh thu thuần" thực sự lớn vượt quá chiều rộng của 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} 

Hãy kiểm tra xem việc này cho bạn, quá. Nếu có, hãy cố gắng sửa đổi cái này cho đến khi nó không hoạt động nữa. Thay đổi đột phá là gì?

+0

Cảm ơn tất cả thông tin Meinersbur, điều đó thật tuyệt. Có một số tùy chọn có thể được kiểm soát như tôi có thể tạo ra các tập tin để tôi tự xác định môi trường tikzpicture nhưng điều này ném một lỗi "Kích thước quá lớn tôi không thể làm việc với kích thước lớn hơn khoảng 19 feet." – Jay

+0

Sẽ tốt hơn nếu không chỉnh sửa các phần nội bộ của các tệp đồ họa được tạo tự động. Không có "font =" trong các tệp nhưng thiết lập \ tikzset {font = \ scriptsize} dường như không có tác dụng? – Jay

+0

Mục tiêu của tôi là để có kích thước phông chữ 10p cho phép nói cho arugment, bất kể như thế nào hte tikz đồ họa được recaled (subfig, minipage, ...). Cụ thể trong các thiết lập tôi đăng các phông chữ lớn hơn trong đồ họa hàng đầu và nhỏ (và không đọc được) trong đồ họa thấp hơn side-by-side ... – Jay