Skip to content
Go back

Astroテーマを自分用に修正するときのメモ・13

· Updated:

AstroPaperテーマを改造しているときに遭遇したことのメモです。

  • unist-util-visitのVisitorでツリーにノードを追加・削除した場合、次にトラバースするノードの正しいインデックスを返さなければならない
    • [CONTINUE, index]を戻り値として返す
  • CSSで、折り返した二行目から字下げしたいときは、text-indentをマイナスにすると良いそう
    • ぶら下げインデントhanging indentと呼ぶらしい
    • padding-leftが文頭のみをずらすので、これらを組み合わせれば、折り返した文章すべて含めてインデントできる
  • KaTeXが生成したMathMLの数式が意図しない見た目になっていたので、CSSで無理やり修正した
    • semanticsが内容にフィットするサイズになったり、width属性が機能していないようで、数式とtagの間の隙間が0になってしまうので、それらが最大幅を取るようにスタイルを指定した
    • 数式ブロックでも積分記号がインラインのように小さくなることがあるので、math-styleで直接指定した
    • .katexはインラインタイプでも使われているので、ブロックタイプのみを対象にするため、:has(math[display="block"])が必要
.katex:has(math[display="block"]) {
    /* 積分記号が小さくなる事がある問題を無理やり解消させる */
    mtable {
        math-style: normal;
    }

    /* tagが右端に揃わない問題を無理やり解消させる */
    semantics {
        width: 100%;
    }
    mtable[width="100%"] {
        width: 100%;
    }
    mtd[width="50%"] {
        width: 50%;
    }
}

参考資料#