我想定义一些简写键,includegraphics[]{}
如下所示:
fullwidth -> width=\textwidth
,halfwidth -> width=0.5\textwidth
ETC。
对此最好的方法是什么?
答案1
以下将halfwidth
和键添加到与(在系列下)fullwidth
关联的键集合中。默认情况下相当于(内部设置),而相当于。\includegraphics
Gin
halfwidth
width=0.5\linewidth
\Gin@ewidth
fullwidth
width=\linewidth
\documentclass{article}
\usepackage[hmargin=2in,vmargin=1in,showframe]{geometry}% Just for this example
\usepackage{graphicx}
\makeatletter
% Add halfwidth key (default is 0.5\linewidth)
\define@key{Gin}{halfwidth}[0.5\linewidth]{%
\def\Gin@ewidth{#1}}
% Add fullwidth key (default is \linewidth)
\define@key{Gin}{fullwidth}[\linewidth]{%
\def\Gin@ewidth{#1}}
\makeatother
\begin{document}
\begin{figure}
\centering
\includegraphics[width=0.5\linewidth]{example-image}
\caption{Half width via \texttt{width}}
\medskip
\includegraphics[halfwidth]{example-image}
\caption{Half width via \texttt{halfwidth}}
\end{figure}
\clearpage
\begin{figure}
\centering
\includegraphics[width=\linewidth]{example-image}
\caption{Half width via \texttt{width}}
\medskip
\includegraphics[fullwidth]{example-image}
\caption{Half width via \texttt{fullwidth}}
\end{figure}
\end{document}
一般来说,向现有系列添加键并不难。你只需要看看它如何适应现有框架。例如,由于和halfwidth
与fullwidth
相关width
,搜索如何width
处理graphicx.dtx
以及如何使用默认值管理密钥(如果没有其他指定)就是我进行此操作的方法。
答案2
我认为最好的简写是一个简单的 LaTeX 宏,它可以简化排版冗长而重复的代码,而不必修补非常常用的命令,也不必接触 LaTeX \@guts
,也不必使用外部语言。例如,如果您经常使用图像,只需取文本宽度的 50% 和 100%,您可以使用:
\newcommand\halfimg[1]{\includegraphics[width=0.5\linewidth]{#1}}
\newcommand\fullimg[1]{\includegraphics[width=\linewidth]{#1}}
进而:
\halfimg{example-image-a} \full{example-image-b}
或者,如果您打印大量具有非常不同宽度的图像,则可以只使用一个带有可选参数的宏,而不是为几个“标准”宽度制作宏。MWE:
\documentclass[twocolumn]{article}
\usepackage{graphicx,lipsum,parskip}
\newcommand\img[2][]{\includegraphics[width=#1\linewidth]{#2}}
\begin{document}
\lipsum[1][1-3]
\img{example-image}
\img[.5]{example-image}
\img[.25]{example-image}
\img[.125]{example-image}
\img[.065]{example-image}
\lipsum[2][1-3]
\end{document}
您还可以使其更加复杂,使用具有两个以上参数的宏来允许设置另一个变量选项angle
,但恕我直言,简写应该简单、易于输入且易于记忆,否则,\includegraphics
直接使用更容易。