![TikZ:如何将调用文档的字体大小传递给被调用的独立 tikz 文件?](https://linux22.com/image/425550/TikZ%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3%E7%9A%84%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%E4%BC%A0%E9%80%92%E7%BB%99%E8%A2%AB%E8%B0%83%E7%94%A8%E7%9A%84%E7%8B%AC%E7%AB%8B%20tikz%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我希望主调用文档的字体大小的任何更改都会影响文本的字体大小和独立文件的绘图尺寸,因为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 页几乎空白
主文档的日志文件
独立文件的日志文件
答案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}