1

更新 2: 問題は Django の問題ではありません。Django に到達する前に、Python は間違いなく文字を削除していました。修正は、文字列を生として定義することです

inputs['variable'] = r'{\bf this is code} \\'

更新: これは、一見したよりも深い質問であることがわかりました。問題は、python が django に到達する前に文字列リテラルを置き換えていることです。解決策が見つかったら、さらに調査して更新します。

レポート生成用の LaTeX テンプレートを操作するために django を使用していますが、Django が文字列の一部を置き換える方法に関して多くの問題が発生しています。

具体的には、latex コードを含む変数を挿入しようとしたときに 2 つの問題に遭遇しました。

1 つ目は、小なり記号などの HTML 文字を HTML コードに置き換えることでした。これはもちろん、LaTeX インタープリターにとって意味不明なものです。次のように、コンテキストを自動エスケープしないように設定することでこれを修正しました。

c = Context(inputs)
c.autoescape = False

ただし、2 番目の問題は、Django が文字列リテラルを対応する文字に置き換えるため、二重のバックスラッシュが \ になり、\b がバックスペースになることです。Django にこれらの文字をそのまま残すにはどうすればよいですか?

inputs['variable'] = '{\bf this is code} \\'

使用しても壊れません

{{variable}}

django テンプレートで参照するには?

4

1 に答える 1

0

上記の更新で述べたように、Django ではまったく問題はありませんでした。Python は、文字列が Django に到達する前に文字列リテラルを解釈していました。修正は、文字列を raw として定義することでした。

inputs['variable'] = r'{\bf this is code} \\'
于 2010-12-29T01:00:38.593 に答える