ドキュメントをLaTeXにエクスポートするときに、Emacsのorg-modeで「DONE」キーワードを使用してすべての見出しに取り消し線を追加するための最良の方法は何ですか?今の私の設定は
(defun my-latex-filter-headline-done (text backend info)
"Ensure dots in headlines."
(when (org-export-derived-backend-p backend 'latex)
(save-match-data
(when (let ((case-fold-search t))
(string-match "\\\\\\([a-z]+\\){\\(.*DONE.*\\)}"
text))
(if (not (string-match ".*hsout.*" text))
(replace-match "\\\\\\1{\\\\hsout{\\2}}"
t nil text))))))
(eval-after-load 'ox
'(progn
(add-to-list 'org-export-filter-headline-functions
'my-latex-filter-headline-done)))
そして私の文書には
#+LATEX_HEADER: \DeclareRobustCommand{\hsout}[1]{\texorpdfstring{\sout{#1}}{#1}}
そのため、次のような組織ドキュメントがある場合
* DONE test
次のようなものにエクスポートされます
% header stuff…
\begin{document}
\section{\hsout{{\bfseries\sffamily DONE} test}}
\end{document}
通常はストライクスルーなしですが、
% header stuff…
\begin{document}
\section{{\bfseries\sffamily DONE} test}
\end{document}
\hsout
見出しで取り消し線を使用するには、マクロを使用する必要があります。このアプローチにはいくつかの欠点があります。
LATEX_HEADER
すべてのドキュメントにを追加する必要があります。\section[aaaa]{bbbbbbb}
)があります。それを含めたい場合は、すでにかなり醜い、別の醜い正規表現をelispに追加する必要があります。したがって、最初の私の質問。誰かがより良い方法を知っていますか?
これが部分的です。。。これにより、次の各組織ファイルのエントリが保存されますLATEX-HEADER
。
(setq org-latex-default-packages-alist
'(("AUTO" "inputenc" t)
("T1" "fontenc" t)
("" "fixltx2e" nil)
("" "graphicx" t)
("" "longtable" nil)
("" "float" nil)
("" "wrapfig" nil)
("" "rotating" nil)
("normalem" "ulem" t)
("" "amsmath" t)
("" "textcomp" t)
("" "marvosym" t)
("" "wasysym" t)
("" "amssymb" t)
("" "hyperref" nil)
"\\tolerance=1000"
"\\DeclareRobustCommand{\\hsout}[1]{\\texorpdfstring{\\sout{#1}}{#1}}"
))
別のオプションを使用することです:
(setq org-latex-packages-alist
'(
"\\DeclareRobustCommand{\\hsout}[1]{\\texorpdfstring{\\sout{#1}}{#1}}"
))
リストに追加する追加の方法:
(add-to-list 'org-latex-packages-alist
"\\DeclareRobustCommand{\\hsout}[1]{\\texorpdfstring{\\sout{#1}}{#1}}")
または
(add-to-list 'org-latex-default-packages-alist
"\\DeclareRobustCommand{\\hsout}[1]{\\texorpdfstring{\\sout{#1}}{#1}}")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加