LaTeX Tips

時々必要になるが、その時には多分忘れているであろう知識を書き残しておく。自分が見て方針を思い出すためのメモなので基本的に解説はしないし、ここに書いてあるコードは厳密であるとは限らない。

datatool に於いて指定した key に対応する value を得る

usepackage の罠

\usepackage{} で指定するパッケージ名は datatool である。ユーザ・ガイドには datatool-fpdatatool-pgfmath が紹介されているが、これは失敗する。

本題

対象となる CSV ファイルの内容:

header name, display number
機能概要, 1.1.1

‘header name’ が「機能概要」である行の列 ‘display number’ の値を \tempValue に格納する例:

\DTLloaddb{example_db}{example_db.csv}
\DTLgetvalueforkey{\tempValue}{display number}{example_db}{header name}{機能概要}
result: \tempValue

ヘッダに含まれるスペースの罠

CSV のヘッダにスペースが含まれるとき、\DTLgetvalueforkey に失敗する可能性が高い。失敗すると “Missing number, treated as zero.” というエラーが出る。\DTLgetvalueforkey の引数で半角スペースを含むものを “” で囲むと “” まで含めてヘッダとして解釈されてしまう。結局、ヘッダに半角スペースを含めないのが無難である。

bytefield の使用例

キャプション,色付きビット・フィールド

見出しと色付きビット・フィールドの例

上の例を生成したコードの主要な部分

\usepackage[x11names]{xcolor}

% bytefield hack
% 1. [Combining color, bitboxes* and base alignment](https://tex.stackexchange.com/questions/371175/combining-color-bitboxes-and-base-alignment)
% 2. [](https://www.latex4technics.com/?note=3c6du2)
\newcommand{\colorbitbox}[3]{%
    \rlap{\bitbox{#2}{\color{#1}\rule{\width}{\height}}}%
    \bitbox{#2}{#3}%
}

\begin{document}
    \begin{table}[H]
        \centering
        \caption{\small データ構造}
        \footnotesize
        \begin{bytefield}[bitwidth=6em,bitheight=3ex]{8}
            \bitheader[endianness=little]{0-7} \\
            \wordbox{1}{A[7:0]} \\
            \\
            \bitheader[endianness=little,lsb=8]{8-15} \\
            \wordbox{1}{A[15:8]} \\
            \\
            \bitheader[endianness=little,lsb=16]{16-23} \\
            \wordbox{1}{B[7:0]} \\
            \\
            \bitheader[endianness=little,lsb=24]{24-31} \\
            \wordbox{1}{B[15:8]} \\
            \\
            \bitheader[endianness=little,lsb=32]{32-39} \\
            \bitbox{2}{B[17:16]} & \bitbox{3}{\escapeUnderscore{opt}} & \bitbox{1}{\escapeUnderscore{enable}} & \colorbitbox{Snow2}{2}{reserved (always 0)}
        \end{bytefield}
    \end{table}
\end{document}

投稿者: motchy

An embedded software and FPGA engineer for measuring instrument.

コメントを残す