% \iffalse %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{upquote} % [2012/04/19 v1.3 upright-quote and grave-accent glyphs in verbatim] % %<*driver> \documentclass{ltxdoc} \usepackage{upquote} \usepackage{url} \DisableCrossrefs \RecordChanges \setcounter{secnumdepth}{-1} % suppress part and section numbers \begin{document} \DocInput{upquote.dtx} \end{document} % % \fi % % \CheckSum{40} % %\GetFileInfo{upquote.sty} % %\title{\textsf{upquote} -- upright-quote and grave-accent glyphs\linebreak % in verbatim\thanks{This file describes version \fileversion, % last revised \filedate.}} %\author{Michael A. Covington\thanks{Artificial Intelligence Center, % The University of Georgia, \texttt{http://www.ai.uga.edu/\char126mc/}} , % Frank Mittelbach, % Markus G.~Kuhn\thanks{University of Cambridge, Computer Laboratory, % \texttt{http://www.cl.cam.ac.uk/\char126mgk25/}}} %\date{\filedate} % %\maketitle % %\section{Introduction} % %By default, the \LaTeX\ \verb+\verb+ macro and \texttt{verbatim} %environment display ASCII characters 27 and 60 as \texttt{'} and %\texttt{`}, respectively, in line with how these two characters are %used to typeset opening and closing quotation marks elsewhere in %\TeX. However, the character-set standards define character 27 to %represent a straight single quotation mark \texttt{\char13} and %character 60 as a grave accent \texttt{\char18}. This is what most %modern fonts show, and what readers of software source code are now %likely to expect~\cite{Cov94,Kuh99}. The curly quotation mark %characters \texttt{`} and \texttt{'} are instead associated with %Unicode positions U+2018 and U+2019. % %\section{Usage} % %Add \verb+\usepackage{upquote}+ to the preamble (preferably after any %packages that change fonts or font encoding), and the behaviour of %the macros \verb+\verb+ and \verb+\verb*+ and the environments %\texttt{verbatim} and \texttt{verbatim*} will change such that ASCII %characters 27 and 60 appear as \texttt{\char13} and \texttt{\char18} %rather than \texttt{'} and \texttt{`}. This does not affect \verb+\tt+, %\verb+\texttt+, etc. % %When the Computer Modern typewriter font \texttt{cmtt} in Knuth's %original OT1 encoding is used (i.e., \verb+\encodingdefault=OT1+, %\verb+\ttdefault=cmtt+), then the two replacement glyphs are taken %from that same font, where they are already available at positions %13 and 18. If any other font or font encoding is used, then the %\texttt{textcomp} package is loaded and its \verb+\textquotesingle+ %and \verb+\textasciigrave+ macros are used to typeset these characters. % %This package loads \texttt{textcomp.sty} only if the use of a %non-\texttt{cmtt} font or a non-OT1 font encoding was already evident %at the point where \texttt{upquote.sty} was loaded. If such changes %happen later, add |\usepackage{textcomp}| yourself. % %\StopEventually{ % \begin{thebibliography}{1} % \bibitem{Cov94} M.~Covington, \emph{Computer Languages in Type}, % Journal of Scholarly Publishing, 26.1:34--41, 1994. % \bibitem{Kuh99} M.~Kuhn, \emph{ASCII and Unicode quotation marks}, % 1999.\\ \url{http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html} % \end{thebibliography} %} % % \part{Appendix} % \appendix % \section{Implementation} % %\changes{v1.0}{2000/12/11}{Fix bug that replaced '0 and `0} %\changes{v1.1}{2003/06/19}{Switched to textcomp package} %\changes{v1.2}{2012/04/04}{Use textcomp only with fonts other than the default cmtt with OT1} %\changes{v1.3}{2012/04/19}{Bug fix: removed two spurious space characters from \@noligs} % %We check |\encodingdefault| and |\ttdefault| to see whether the %glyphs that are already in \texttt{cmtt} as |\char13| %(\texttt{\char13}) and |\char18| (\texttt{\char18}) can be used, or %whether textcomp has to be loaded to access such glyphs. % % \begin{macrocode} \newcommand\upquote@cmtt{cmtt} \newcommand\upquote@OTone{OT1} \ifx\encodingdefault\upquote@OTone \ifx\ttdefault\upquote@cmtt\else\RequirePackage{textcomp}\fi \else \RequirePackage{textcomp} \fi % \end{macrocode} %The |\@noligs| macro is called by |\verb| and |\begin{verbatim}| to %turn the characters \texttt{` < > , ' -} into active characters that %merely print themselves rather than activating ligatures. % %This package merely adds code to \verb+\@noligs+ that changes the %glyphs used for \texttt{`} and \texttt{'}. % \begin{macrocode} \begingroup \catcode`'=\active \catcode``=\active \g@addto@macro\@noligs {\let'\textquotesingle \let`\textasciigrave \ifx\encodingdefault\upquote@OTone \ifx\ttdefault\upquote@cmtt \def'{\char13 }% \def`{\char18 }% \fi\fi} \endgroup % \end{macrocode} %We check |\encodingdefault| and |\ttdefault| again at each invocation %of |\verb| or |\begin{verbatim}|, such that users can change fonts %and encodings within a document. %\Finale