1

ラッパーラテックスファイルでコンパイルしたtikzタイミング図がいくつかあります。このラッパーは、latex パッケージ スタンドアロンを使用して、pdf および png ファイルを生成します。これらすべてのラッパー ファイルを保存して、1 つだけ置き換えたいと思います。さらに、ファイル名のリストを PowerShell 関数にパイプして、一般的なラッパー ファイルである各波形 tex ファイルを処理したいと考えています。

すべてのファイルを Gist にアップロードしました。

詳細:

Waveform.tex\input{...}マクロ内にプレースホルダーを持つラッパー tex ファイルです。このプレースホルダーは、PowerShell スクリプトに置き換えられます。

\documentclass[convert={density=600,size=2000x800,outext=.png}]{standalone}

\usepackage[utf8]{inputenc}              % UTF-8 tex file input incoding
\usepackage[T1]{fontenc}                 % Type1 font encoding
\usepackage[ngerman]{babel}              % new german writing rules; must be loaded before microtype
\usepackage{courier}                            % set courier font as default for teletype writer (texttt, ttfamily, ...)
\usepackage[usenames,svgnames,table]{xcolor}    % load colors and color-names

\usepackage{pgf}                    % primitive drawing library
\usepackage{tikz}                   % PGF frontend, drawing macros
\usepackage{tikz-timing}            % spezial TikZ library for waveform/timing diagrams
  \usetikztiminglibrary{nicetabs}         %  sublibrary for better looking timingtables

\begin{document}
  \input{%%WaveformFile%%}
  %\input{IICController}    % uncomment this if timing-diagram is a fixed file name
\end{document}

IICController.tex は波形の例です。

%
\tikztimingmetachar{A}[1]{#1{Z[black]};}
%
\begin{tikztimingtable}[
  timing/table/header/.style={font=\bf},
  timing/wscale=2,
  timing/nice tabs,
]
Master\_BusRequest  & L H H  4H 4H 4H 4H  L  \\
Master\_BusGrant  & L L H  4H 4H 4H 4H  L  \\
Master\_BusAbort  & L L L 4L 4L 4L 4L L  \\
Master\_WP\_Valid  & L L L 4H 4H 4H 4H L  \\
Master\_WP\_Data  & A A A 4D{Phy Adr + R/W} 4D{Reg Adr} 4D{D0.0} 4D{D0.1} A \\
Master\_WP\_Last  & L L L 4L 4L 4L 4H L  \\
Master\_WP\_Ack    & L L L 3LH 3LH 3LH 3LH L  \\
\extracode
  \tableheader{Signalname}{Signalverlauf}
  \tablerules
  \begin{background}[shift={(0.1,0)},help lines]
    \vertlines{0,2,...,40}
  \end{background}
\end{tikztimingtable}

そして最後に、これが私の PowerShell スクリプトです。

function Compile-Waveform
  { [CmdletBinding()]Param(
      [Parameter(
        Mandatory=$True,
        Position=0,
        ValueFromPipeline=$true,
        ValueFromPipelineByPropertyName=$true)]
      [String[]]$InputFiles
    )
    Begin
      { $WrapperFile    = "Waveform.tex"
        $WrapperContent = Get-Content -Path $WrapperFile -Encoding ASCII -Raw
      }
    Process
      { #Write-Host "WrapperContent" -ForegroundColor Green
        #Write-Host $WrapperContent -ForegroundColor Gray
        #Write-Host ""

        foreach($InputFile in $InputFiles)
          { Write-Host "processing file: '$Inputfile'" -ForegroundColor Yellow
            $OutputFile = [String]$InputFile.Replace(".tex", ".png")
            $Temp = $WrapperContent -replace "%%WaveformFile%%",$InputFile

            #Write-Host "Temp" -ForegroundColor Green
            #Write-Host $Temp -ForegroundColor Gray
            #Write-Host ""

            Write-Output $Temp | & 'C:\Program Files\MiKTeX 2.9\miktex\bin\x64\pdflatex.exe' -shell-escape -time-statistics -synctex=1 -interaction=nonstopmode
          }
      }
  }

スクリプトの使用方法

のフォルダに移動しますIICController.tex。*.ps1 ファイルをソースし、最後に見つかったすべての波形ファイルを PowerShell 関数にパイプします。

cd d:\temp\waveform
. compile.ps1
dir IICController.tex | Compile-Waveform

これで、pdflatex はエラー ログを出力します。

processing file: 'D:\git\SATAController\doc\Waveforms\Simple.tex'
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (MiKTeX 2.9 64-bit)
**entering extended mode
LaTeX2e <2014/05/01>
Babel <3.9l> and hyphenation patterns for 68 languages loaded.
! Emergency stop.
<*> ...600,size=2000x800,outext=.png}]{standalone}

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on texput.log.
gross execution time: 26 ms
user mode: 0 ms, kernel mode: 15 ms, total: 15

puttex.logコンソール出力と同じ内容です。

何が起こっているのか誰にも分かりますか?

PowerShell で固定ファイル名 (2 行目を参照) で Wavefom.tex を実行すると\input、すべて正常に動作します。

4

0 に答える 0