我想在我的 LaTeX 文档中生成一个 tikz-timing 信号并将其保存,使用外部库作为 pdf 文件。
以下是组合代码的示例:
\documentclass[border=5pt]{scrbook}
\usepackage{tikz-timing}
\usetikzlibrary{external}
\tikzexternalize[
figure list=true,
prefix=./]
\usetikztiminglibrary{nicetabs} % a bit strange with \Huge; use belowrulesep to adjust
\begin{document}
\begin{figure}
\begin{tikztimingtable}
& 4L \\
& 4H \\
& 2LCH \\
& [C]CCCC \\
& 2{2C} \\
\extracode
\tablegrid[black!25,step=1]
\end{tikztimingtable}
\end{figure}
\end{document}
我收到的错误是:
Opening 'test.figlist' for writing.
**Writing './signal1' to 'test.figlist'.
)
Runaway argument?
\par
! File ended while scanning use of \tikzexternal@laTeX@collect@until@end@tikzpi
cture.
<inserted text>
答案1
不幸的是tikztimingtable
,与库不兼容external
。但是\texttiming
和\timing
宏可以工作。不兼容的原因是tikzpicture
嵌套在tikztimingtable
不受支持的库中的,external
如第 32.2 节所述要求v2.10 TikZ/PGF 手册。发生此错误的原因是,external
库无法找到 ,\end{tikzpicture}
因为它位于 内\end{tikztimingtable}
。
避免错误的一种解决方法是禁用tikztimingtable
s 的外部化,如中所述tikzexternalize 仅适用于(或不适用于)标记的图形。您可以在之前在 内添加一个\tikzexternaldisable
宏。但是,您只能在其他s 上获得此好处。如果您只有s,则可以完全避免使用。figure
tikztimingtable
tikzpicture
tikztimingtable
external
\documentclass{scrbook}
\usepackage{tikz-timing}
\usetikzlibrary{external}
\tikzexternalize[
figure list=true,
prefix=./]
\usetikztiminglibrary{nicetabs} % a bit strange with \Huge; use belowrulesep to adjust
\begin{document}
\begin{figure}
\tikzexternaldisable
\begin{tikztimingtable}
& 4L \\
& 4H \\
& 2LCH \\
& [C]CCCC \\
& 2{2C} \\
\extracode
\tablegrid[black!25,step=1]
\end{tikztimingtable}
\end{figure}
\end{document}
的替代方法external
是standalone
使用类和包。使用这种方法,您必须将相关代码放在一个单独的文件中,并在其中添加完整的前言。然后,此文件可以自行编译,即独立文件,这对于较大的图片非常有用,因为在创建过程中必须经常重新编译。使用包,standalone
您可以包含独立文件而无需删除前言。它还允许从独立文件自动生成 PDF 图像。请参阅手册并搜索mode
。
% main document
\documentclass{scrbook}
\usepackage[mode=buildnew]{standalone}
\usepackage{tikz-timing}
\usetikztiminglibrary{nicetabs} % a bit strange with \Huge; use belowrulesep to adjust
\begin{document}
\begin{figure}
\includestandalone{sometttable}
\end{figure}
\end{document}
% sometttable.tex
\documentclass{standalone}
\usepackage{tikz-timing}
\usetikztiminglibrary{nicetabs} % a bit strange with \Huge; use belowrulesep to adjust
\begin{document}
\begin{tikztimingtable}
& 4L \\
& 4H \\
& 2LCH \\
& [C]CCCC \\
& 2{2C} \\
\extracode
\tablegrid[black!25,step=1]
\end{tikztimingtable}
\end{document}