TikZ:如何将调用文档的字体大小传递给被调用的独立 tikz 文件?

TikZ:如何将调用文档的字体大小传递给被调用的独立 tikz 文件?

我希望主调用文档的字体大小的任何更改都会影响文本的字体大小和独立文件的绘图尺寸,因为article字体大小的任何当前更改都不会影响独立文件。

下图显示,尽管在调用文档中进行了更改,但独立 tikz 绘图的文本字体大小并没有变化。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

\begin{filecontents*}{pic.tex}
    \documentclass[tikz]{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
        \begin{tikzpicture}[x=1em, y=1em, font=\normalsize]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass{article}
\usepackage[fontsize=14pt]{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
    fontsize = 14pt
    \includestandalone{pic}
\end{document}

更新 1(编译@Cicada 答案的案例(d))

\begin{filecontents*}{pic\jobname.tex}
    \documentclass{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
          \color{red}
            inside
        \begin{tikzpicture}[x=1em, y=1em]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage[fontsize=14pt]{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
\section*{d}
    fontsize = 14pt \includestandalone{pic\jobname}

    \huge fontsize huge \includestandalone{pic\jobname}

    \tiny fontsize tiny \includestandalone{pic\jobname}
\end{document}

输出

4 页几乎空白

在此处输入图片描述

https://docdro.id/4t5urCy

主文档的日志文件

https://pastebin.com/ws9Fj0tA

独立文件的日志文件

https://pastebin.com/Dt7phZrU

答案1

没有答案,因为据我所知,这个问题涉及包含在主文件中的独立图像(PDF),但前提是独立 PDF 只需编译一次以节省编译时间。

相反,如果使用独立源代码,独立 PDF 将继承任何适用的主文档设置,如字体大小,但独立 PDF 将在每次运行主文档时被(重新)编译。


如果使用源代码:

(原始答案)

不要font=\normalsize在你的 tikz 图片内使用。

(a)您的问题代码没有在正确的时间加载 tikz:“环境 tikzpicture 未定义。”,日志显示。tikz需要加载包可以使用 tikz 命令。

无插图(a)。

(b)\begin{tikzpicture}[x=1em, y=1em, font=\normalsize]设置矩形内的字体大小,覆盖处理过程中调用文件所使用的字体大小。矩形大小设置为相对字体大小 ( em),因此会随之扩展或收缩。

文字正常大小

平均能量损失

\begin{filecontents*}{pic\jobname.tex}
    \documentclass{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
        \begin{tikzpicture}[x=1em, y=1em, font=\normalsize]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass{article}
\usepackage{tikz}
\usepackage[fontsize=14pt]{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
\section*{b}
    fontsize = 14pt \includestandalone{pic\jobname}

    \huge fontsize huge \includestandalone{pic\jobname}

    \tiny fontsize tiny \includestandalone{pic\jobname}
\end{document}

(c)\begin{tikzpicture}[x=1em, y=1em]这样做是为了不覆盖字体大小。

字体大小改变

平均能量损失

\begin{filecontents*}{pic\jobname.tex}
    \documentclass{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
        \begin{tikzpicture}[x=1em, y=1em]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass{article}
\usepackage{tikz}
\usepackage[fontsize=14pt]{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
\section*{c}
    fontsize = 14pt \includestandalone{pic\jobname}

    \huge fontsize huge \includestandalone{pic\jobname}

    \tiny fontsize tiny \includestandalone{pic\jobname}
\end{document}

(d) 请注意,在包含的文件中,格式化命令(例如颜色)仅限于文件本身。这意味着包含的文件的内容在其自己的组中处理(就像{...}或等价物一样)。

本地组

平均能量损失

\begin{filecontents*}{pic\jobname.tex}
    \documentclass{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
          \color{red}
            inside
        \begin{tikzpicture}[x=1em, y=1em]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage[fontsize=14pt]{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
\section*{d}
    fontsize = 14pt \includestandalone{pic\jobname}

    \huge fontsize huge \includestandalone{pic\jobname}

    \tiny fontsize tiny \includestandalone{pic\jobname}
\end{document}

(e)documentclass 的 Fontsize 选项按预期工作。

类字体大小选项

平均能量损失

\begin{filecontents*}{pic\jobname.tex}
    \documentclass{standalone}
    \usetikzlibrary{shapes}
    \begin{document}
          \color{red}
            inside
        \begin{tikzpicture}[x=1em, y=1em]
            \draw (0,0) rectangle node{Test} (2,2);
        \end{tikzpicture}
    \end{document} 
\end{filecontents*}

\documentclass[12pt]{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{scrextend}
\usepackage[mode=build, subpreambles=false]{standalone}
\begin{document}
\section*{e}
        \fontname\font\\
    fontsize = 12pt \includestandalone{pic\jobname}

    \huge       \fontname\font\\ fontsize huge \includestandalone{pic\jobname}

    \tiny\fontname\font\\ fontsize tiny \includestandalone{pic\jobname}
\end{document}

相关内容