1文字マクロ

1文字マクロ

長さが最大 ​​1 つのトークンを持つマクロを定義したいと思います。

\wはマクロであり、wの後の部分はマクロ名の一部として扱われません。\wTestと同じです\w Test。他のマクロがで始まっていなくても構いません。めちゃくちゃになっています(少なくとも私のドキュメントでは、私は何も使用していないので)。明らかに、他のパッケージに干渉することはないはずです。

あるいは、それが不可能な場合は、 や などの特殊文字を再定義して、^その|作業を実行できるようにしたいと思います。たとえば、 なしで使用することもできます。

|何かを入力したいとします

\documentclass{article}

\def\|{hello\,}

\begin{document}
\|world

\end{document}

しかし、私はむしろ |world を使いたいです。(私の文書は 2 つか 3 つの特別なマクロだけで非常に単純なので、これらのマークアップを可能な限り最も単純な表現に減らす方がはるかに論理的です。たとえば、私は通常の方法で|は または を^文書で使用しないので、それらを使用していくつかのマークアップを表すことができます。tex がそれらをどのように解釈するかだけを処理すればいいのです) 私の文書にはリスクはありません。プレーンテキストか、tex/latex マクロが非常に少ないためです(プレーンテキストをマークアップするために、\vspace と \hspace、および中央揃えなどのいくつかの単純な環境と 3 つの独自のマクロを使用しています)。

例えば、

私はそうするかもしれない

This is a |test paragraph^. 
\begin{center} and this^ is |centered \end{center}

ここで、| と ^ は、元の段落を乱雑にするかなり複雑(長い)マークアップである可能性があります。実際、環境さえ取り除けばよいでしょう。

This is a |test paragraph^.
<and this^ is |centered>

(2 番目のものが 1 番目のものよりはるかに読みやすいことに注目してください)

答え1

最初の提案 (と同じように扱われる\wというマクロ) には、かなりのハッキングが必要になると思います。2 番目の提案では、関連する文字の catcode を に設定するだけです。\wTest\w Test\active

\documentclass{article}
\catcode`|=\active
\def|{abc}
\begin{document}
|
\end{document}

答え2

単一シンボルコマンドの考えは捨てるべきです\w。wを変更する必要があり\catcode、これはコマンドに影響を与えるだけでなく、始めるただし、名前に w が含まれるすべてのコマンドは、ドキュメント自体に w が含まれていない場合でも、非常に驚​​くべき副作用を引き起こす可能性があります。

\documentclass{article}
\begin{document}
\catcode`\w=12
\tableofcontents
\section{abc}
\end{document}

他のアイデアについても同じことが言えます。特定のシンボルを入力しないことを確信するだけでは十分ではありません。外部ファイル (toc、aux、lof、bbl など) がそのシンボルを使用していないことも確信する必要があります。

答え3

LuaTeX を使用している場合は、タイプセッティング エンジンによって認識される前にテキスト ファイルを傍受することができます。たとえば、ConTeXt では次のように使用できます。

\usemodule[translate]

\def\wTest{default}

\translateinput[\string\w][Something else ]

\starttext
\wTest

\enableinputtranslation
\wTest \crlf
\wAgain
\disableinputtranslation

\wTest
\stoptext

これにより

ここに画像の説明を入力してください

見るluatex/ConTeXt モジュール「translate」を luaLaTeX に移植するモジュールを luaLaTeX に移植するためtranslate

答え4

アルファベット以外の文字、他の用途に使用されていない文字、または特別な状況でのみ使用されている文字を選択するのが最適です。

|は、一部のパッケージで逐語的な省略形として(ペアで)使用されますが、それが必要ない場合は、妥当な候補です。 +<または は>良い候補になるかもしれません。星印付きの LaTeX コマンドや環境がまったく必要ない場合は、 があります*

以下は避けることをお勧めします: ~、、、、、、、、、そしてもちろん。#$@%^_\

プレーン tex は、latex よりもはるかに寛容である可能性がありますが、もちろん、既存のパッケージの利点はありません。

関連情報