前のセクション(出力に影響する変数を参照)では、Emacs
Lispプリンターが出力用にデータをどのようにフォーマットするかを制御するさまざまな変数を説明しました。これらは一般的には変更用にユーザーが利用できますが、デフォルトのフォーマットでデータを出力したり、あるいは他の手段でユーザーセッティングをオーバーライドしたい場合があるかもしれません。たとえばEmacs
Lispのデータをファイルに格納したい場合には、そのデータがprint-lengthのセッティングによって短縮されたくはないでしょう。
そのためにprin1およびprin1-to-stringという関数にはオプションとしてoverrides引数があります。この引数にはt(すべてのプリント用変数をデフォルト値にリセット)、あるいはいくつかの変数にたいするセッティングのリストのいずれかを指定できます。このリストの要素はそれぞれt(“デフォルトへのリセット”を意味しており、通常はリストの最初の要素)、あるいはcarが出力変数を意味するシンボルでcdrがその変数にたいする値であるようなペアーを指定できます。
たとえば以下はデフォルトだけを用いてプリントします:
(prin1 object nil t)
以下はカレントのプリントセッティングを用いてobjectをプリントしますが、print-lengthの値を5にオーバーライドします:
(prin1 object nil '((length . 5)))
そして最後はprint-lengthを5にバインドする以外はデフォルトセッティングを用いてobjectをプリントする例です:
(prin1 object nil '(t (length . 5)))
以下は使用できるシンボルと、それらのシンボルがマップされる変数のリストです:
lengthprint-lengthをオーバーライドする。
levelprint-levelをオーバーライドする。
circleprint-circleをオーバーライドする。
quotedprint-quotedをオーバーライドする。
escape-newlinesprint-escape-newlinesをオーバーライドする。
escape-control-charactersprint-escape-control-charactersをオーバーライドする。
escape-nonasciiprint-escape-nonasciiをオーバーライドする。
escape-multibyteprint-escape-multibyteをオーバーライドする。
charset-text-propertyprint-charset-text-propertyをオーバーライドする。
unreadeable-functionprint-unreadable-functionをオーバーライドする。
gensymprint-gensymをオーバーライドする。
continuous-numberingprint-continuous-numberingをオーバーライドする。
number-tableprint-number-tableをオーバーライドする。
float-formatfloat-output-formatをオーバーライドする。
integers-as-charactersprint-integers-as-charactersをオーバーライドする。
将来的には変数に直接マップされない、このパラメーターだけを介してのみ使用できるオーバーライドが更に提供されるかもしれません。