我有很多像
这样的行\includegraphics[width=12cm,height=9cm]{W_muonPtCosTheta_Corr.pdf}
在我的文本文件中。我需要找到包含它的每一行,并在此之前和之后添加一行。所以最终输出应该像
\begin{tikzpicture}
\draw (0, 0) node[inner sep=0]
{\includegraphics[width=12cm,height=9cm]{W_muon_pt.pdf}};
\draw (2, 3) node {\color{red} $W_{P_T}$};
\end{tikzpicture}
答案 0 :(得分:2)
使用gnu sed你可以这样做:
gsed -i 's/\\includegraphics\[width=12cm,height=9cm\]{[^.]*\.pdf}/\\begin{tikzpicture}\n\\draw (0, 0) node[inner sep=0]\n{&};\n\\draw (2, 3) node {\\color{red} $W_{P_T}$};\n\\end{tikzpicture}\n/' file
答案 1 :(得分:2)
纯粹的LaTeX解决方案。
将以下定义添加到LaTeX文件的前导码
\let\savedincludegraphics\includegraphics
\renewcommand{\includegraphics}[2][]{
\begin{tikzpicture}
\draw (0, 0) node[inner sep=0] {
\savedincludegraphics[#1]{#2}};
\draw (2, 3) node {\color{red} $W_{P_T}$};
\end{tikzpicture}}
这将使用重新定义的扩展替换宏includegraphics
的每次出现。您可以向宏添加其他参数以进一步自定义输出。
要引入变量标题,您需要更改\includegraphics
的签名。正如评论中指出的那样,最好创建一个新命令。
\newcommand{\includegraphicscaption}[3][]{
\begin{tikzpicture}
\draw (0, 0) node[inner sep=0] {
\savedincludegraphics[#1]{#2}};
\draw (2, 3) node {\color{red} #3};
\end{tikzpicture}}
此命令可用作 \ includegraphicscaption [width = 12cm,height = 9cm] {W_muon_pt.pdf} {$ W_ {P_T} $}
编辑:原始解决方案中存在拼写错误。