diff options
author | Norbert Preining <norbert@preining.info> | 2022-10-17 03:04:58 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-10-17 03:04:58 +0000 |
commit | 95ebee51840c21223810acf500805000a2c5c0df (patch) | |
tree | a6ef2119e3a7e72ed073de7c4963850236e3f897 /macros/latex/contrib/huaz/huaz.tex | |
parent | 84ccc4dcda9db6735202d4ed21610de28392e708 (diff) |
CTAN sync 202210170304
Diffstat (limited to 'macros/latex/contrib/huaz/huaz.tex')
-rw-r--r-- | macros/latex/contrib/huaz/huaz.tex | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/macros/latex/contrib/huaz/huaz.tex b/macros/latex/contrib/huaz/huaz.tex new file mode 100644 index 0000000000..0d1eb4b74a --- /dev/null +++ b/macros/latex/contrib/huaz/huaz.tex @@ -0,0 +1,381 @@ +%% +%% `huaz.tex' documentation of the huaz package +%% +%% Copyright 2022 by Tibor Tomacs +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Tibor Tomacs. +%% +\documentclass[12pt]{article} +\usepackage{listings,xcolor,lmodern,xurl} +\usepackage[pdfstartview=FitH,colorlinks,allcolors=teal,bookmarksnumbered]{hyperref} +\usepackage[a4paper,top=1in,bottom=1.2in]{geometry} +\usepackage[T1]{fontenc} +\PassOptionsToPackage{defaults=hu-min}{magyar.ldf} +\usepackage[english,magyar]{babel} +\setlength{\parindent}{0pt} +\setlength{\parskip}{6pt} + +\lstset{literate={<}{{$\langle$}}1{>}{{$\rangle$}}1 + {ö}{{\"o}}1{ü}{{\"u}}1{ó}{{\'o}}1{é}{{\'e}}1{á}{{\'a}}1{í}{{\'i}}1} + +\lstnewenvironment{examplelst}{\lstset{ +aboveskip=\bigskipamount, +basicstyle=\footnotesize\color{blue!70!black}\ttfamily, +backgroundcolor=\color{black!3}, +rulecolor=\color{black!15}, +frame=trbl, +framesep=5pt, +columns=fullflexible, +xleftmargin=5.4pt, +xrightmargin=5.4pt, +keepspaces}}{} + +\newcommand{\commandinline}{\hspace*{-15mm}\lstinline[ +delim={[is][\color{green!50!black}\normalfont\small\sffamily]{!}{!}}, +basicstyle=\color{red!70!black}\normalfont\ttfamily, +columns=fullflexible, +keepspaces]} + +\newcommand{\verbinline}{\lstinline[ +delim={[is][\color{green!50!black}\normalfont\small\sffamily]{!}{!}}, +basicstyle=\normalfont\ttfamily, +columns=fullflexible, +keepspaces]} + +\makeatletter +\def\@oddfoot{\hfill\textsf{\color{gray}\thepage}\hfill} +\def\@evenfoot{\@oddfoot} +\def\ps@plain{\def\@oddfoot{\hfill\textsf{\color{gray}\thepage}\hfill}} +\makeatother + +\def\huaz{\textbf{\sffamily hu\color{gray}az}} + +\begin{document} + +\title{The \huaz\ package\\ + {\large v1.0 (2022/10/16)}} +\author{Tibor Tómács\\ + {\normalsize\href{email:tomacs.tibor@uni-eszterhazy.hu}{\nolinkurl{tomacs.tibor@uni-eszterhazy.hu}}}} +\date{} +\maketitle + +\begin{otherlanguage}{english} +\begin{abstract} +In Hungarian there are two definite articles, \emph{``a''} and \emph{``az''}, which are determined by the pronunciation of the subsequent word. The definite article is \emph{``az''}, if the first phoneme of the pronounced word is a vowel, otherwise it is \emph{``a''}. +The \huaz\ package helps the user to insert automatically the correct definite article for cross-references and other commands containing text. Thus, if these change, the definite articles will also change accordingly. + +\medskip +\emph{Sorry, the documentation is in Hungarian, because only users of the Hungarian language are interested.} +\end{abstract} +\end{otherlanguage} + +\section{Bevezetés} + +A magyar nyelvben a határozott névelő egy szó előtt aszerint \emph{,,a''} vagy \emph{,,az''}, hogy a szó kiejtve mássalhangzóval vagy magánhangzóval kezdődik. Például \emph{,,a szék''} vagy \emph{,,az asztal''}. Ez egyszerűnek tűnik, de gondoljon a következő esetekre: + +\begin{itemize} +\item Például ha oldalszámra akar hivatkozni, akkor a \verb|\pageref| parancsot szoktuk használni. Ha ez elé akar határozott névelőt rakni, akkor nem mindegy, hogy mi az oldalszám. Például \emph{,,az~1.~oldal''}, \emph{,,a~2.~oldal''}, \emph{,,az~5.~oldal''}, \emph{,,a~10.~oldal''}. Így egyáltalán nem biztos, hogy az ,,\verbinline|a \pageref{!<kulcs>!}|'' kód megfelelő eredményt ad. Hasonló a probléma minden kereszthivatkozás esetén (\verb|\ref|, \verb|\pageref|, \verb|\eqref|, \verb|\cite|). + +\item Az is fontos, hogy egy kifejezés római szám vagy sem. Például \emph{,,az~V.~fejezet''}, ha \emph{V} római szám, azaz 5 a jelentése. Ugyanakkor \emph{,,a~V.~fejezet''}, ha \emph{V} betűt jelöl vagy alfanumerikus szám esetén a 22 értéket (\emph{V} az angol ábécében a 22.~betű). + +\item Néhány mássalhangzó speciális tulajdonságú. Például \emph{,,az M betű''}, de \emph{,,a Magyar Közlöny''}; \emph{,,az Ny betű''}, de \emph{,,a Nyugdíjfolyósító Igazgatóság''}; stb. +\end{itemize} + +Először megemlítünk két eddigi megoldást a határozott névelők automatikus kezelésére, kiemelve azok hibáit és hiányosságait. + +\subsection{A magyar.ldf} + +Egyik lehetőség a \texttt{babel} csomag \texttt{magyar} opcióját beállító \texttt{magyar.ldf} fájl használata. Ennek teljes dokumentációja elérhető innen: \url{https://math.bme.hu/latex/magyarldf-doc.pdf}. + +Az ebben definiált \verb|\az|, \verb|\aref|, \verb|\apageref|, \verb|\acite|, stb. parancsok alapvetően jól használhatóak, de van néhány fontos hiba, melyek a \huaz\ csomag megírását motiválták: + +\begin{itemize} +\item Az \verb|\eqref| parancsnak nincs névelős verziója. Helyette az \verbinline|\aref({!<kulcs>!})| használható, de ez dőlt betűs környezetben nem álló betűs eredményt ad, mint az \verb|\eqref| esetében. Másik lehetőség, ami ezt a problémát megoldja, az \verbinline|\az{\eqref{!<kulcs>!}}| parancs. Ugyanakkor egyik megoldás sem kezeli a római számozású vagy a \verb|\tag| paranccsal címkézett egyenleteket. + +\item Az \verbinline|\az{\ref{!<kulcs>!}}| és \verbinline|\az{\pageref{!<kulcs>!}}| nem kezeli a római számozású hivatkozásokat. + +\item Az előző hiba akkor is fennáll, amikor az \verb|\az| parancsban egy római számmal kezdődő szöveg van. Például \verb|\az{V.~osztály}| eredménye \emph{,,a V.~osztály''}. + +\item Amennyiben nem kereszthivatkozáshoz, hanem egy szöveghez, vagy valamilyen szöveget tároló parancshoz kell automatikus névelő, akkor az ékezetes betűket UTF-8 kódolás esetén rosszul detektálja. A hiba alapvető oka, hogy az UTF-8 kódolású karakterek nem egy, hanem több bájton vannak kódolva, amit a \texttt{magyar.ldf} nem vesz figyelembe. Ezért például \verb|\az{ágy}| eredménye \emph{,,a ágy''}, mert nem betűként érzékeli az \emph{,,á''} betűt, így azt sem tudja, hogy ez magánhangzó. Meglepő módon \verb|\az{száz}| eredménye \emph{,,az száz''} is rossz. Ennek az az oka, hogy mivel számára az \emph{,,á''} nem betű, ezért az \emph{,,sz''} betűt különállónak tekinti, ami elé valóban \emph{,,az''} kell. + +\item Hibának ugyan nem tekinthető, de mindenesetre kényelmetlen, hogy például \verb|\az{\textbf{N betű}}| esetén a \verb|\textbf| parancs megzavarja a szó betűinek detektálását, így a névelő helytelenül \emph{,,a''} lesz. +\end{itemize} + +\subsection{A nevelok csomag} + +2015-ben készült a \texttt{nevelok} csomag, ami szintén az automatikus határozott névelők kezelésére készült. A szerzője valószínűleg nem ismerte a \texttt{magyar.ldf} már akkor létező lehetőségeit, ezért készíthette ezt a jóval kevesebbet tudó csomagot. + +2022-ben telepített \TeX-rendszeren tesztelve azt tapasztaltam, hogy nem kezeli az ékezetes betűk semmilyen formáját és sok esetben ad kereszthivatkozásoknál is rossz névelőt. Az utóbbinak az az oka, hogy közvetlenül a \verb|\ref| parancsot vizsgálja, ami nem kifejthető parancs. + +Ezen dokumentáció elkészültéig semmilyen fejlesztése nem történt. Jelen állapotában nem javasolt ennek a csomagnak a használata. + +\subsection{A \texorpdfstring{\huaz}{huaz} csomag célja és működése} + +A \huaz\ csomag célja segíteni a felhasználót abban, hogy a kereszthivatkozásokhoz és szöveget tartalmazó parancsokhoz automatikusan beszúrja a megfelelő határozott névelőt. Így ha ezek változnak, akkor a határozott névelők is megfelelően változnak. + +A másik cél ezt úgy megtenni, hogy a \texttt{magyar.ldf} és a \texttt{nevelok.sty} hibáit és hiányosságait korrigálja illetve pótolja. + +A \huaz\ csomag a következő esetekben illeszt az adott szöveg elé ,,az'' névelőt: + +\begin{enumerate} +\item Az első betű magánhangzó (legyen az kis- vagy nagybetű, ékezetes vagy sem, magyar vagy sem, UTF-8, ISO-8859-2 karakterrel vagy repülő ékezettel megadva). + +\item Az első betű olyan kis vagy nagy mássalhangzó, amit önmagában kiejtve magánhangzóval kezdünk (például F, L, M, stb.) míg a második karakter (ha van) nem betű, hanem szám, írásjel vagy szóköz. Például ,,M-10''. Ide soroltunk néhány nem magyar ékezetes mássalhangzót is. Például ,,Ň.1''. + +\item Az első két karakter egy olyan kis vagy nagy kétjegyű mássalhangzó, amit önmagában kiejtve magánhangzóval kezdünk (például Ny, Ly, Sz, stb.) míg a harmadik karakter (ha van) nem betű, hanem szám, írásjel vagy szóköz. Például ,,NY betű''. + +\item Az első karakter 5. + +\item 1, 4, 7 vagy 10 jegyű számmal kezdődik és az első számjegy 1 (egy, ezer, egymillió, egymilliárd). +\end{enumerate} + +Ha a szó elején található karakterek római számként is értelmezhetőek, akkor megválasztható, hogy azt konvertálja arab számra és a névelőt ahhoz határozza meg vagy sem. Például ,,XII/A'' esetén. + +\section{A \texorpdfstring{\huaz}{huaz} csomag használata} + +A \huaz\ csomagot a szokott módon kell betölteni: + +\commandinline|\usepackage{huaz}| + +Csomagopciók nincsenek. UTF-8 (\texttt{utf8}) és ISO-8859-2 (\texttt{latin2}) kódolású forrásfájl esetén működik, de a repülő ékezeteket is jól kezeli. Kompatibilis a \texttt{pdflatex}, \texttt{xelatex} és \texttt{lualatex} fordítókkal is. Például \texttt{pdflatex} fordítóval a következő betöltés megfelelő: + +\begin{examplelst} +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage{huaz} +\PassOptionsToPackage{defaults=hu-min}{magyar.ldf} +\usepackage[magyar]{babel} +\begin{document} + ... +\end{document} +\end{examplelst} +A \texttt{hyperref} csomaggal is kompatibilis, így az is betölthető a \huaz\ mellé. + +A \texttt{magyar.ldf} \texttt{defaults=hu-min} opciója bekapcsol néhány olyan opciót is, amely elérhetővé teszi a saját automatikus névelőparancsait. Ezt ugyan nem kötelező, de hasznos a \huaz\ csomag használata esetén kikapcsolni. Ehhez a +\begin{examplelst} +\PassOptionsToPackage{defaults=hu-min}{magyar.ldf} +\end{examplelst} +sor helyett használja a következőt: +\begin{examplelst} +\PassOptionsToPackage{defaults=hu-min,az=no, + shortrefcmds=no,hunnewlabel=no}{magyar.ldf} +\end{examplelst} + +A \texttt{xelatex} és \texttt{lualatex} fordítók esetén \texttt{babel} helyett a +\begin{examplelst} +\usepackage{polyglossia} +\setdefaultlanguage{hungarian} +\end{examplelst} +is használható. + +A \huaz\ csomag felhasználja az \texttt{xstring}, \texttt{refcount} és \texttt{iftex} csomagok szolgáltatásait, így ezek is betöltődnek. Másrészt felhasználásra kerül néhány 2021. október 10-én bevezetett változás a \LaTeX\ kerneljében, így csak az ezután telepített rendszereken működik megfelelően a csomag. + +\subsection{Parancsok} + +\commandinline|\az{!<szöveg>!}| + +A \verbinline|!<szöveg>!| elé a megfelelő határozott névelő kerül kisbetűs alakban. Ha a \verbinline|!<szöveg>!| elején római számként értelmezhető karakterek vannak, akkor a névelő az arab megfelelőjéhez igazodik. Például +\begin{examplelst} +Idén \az{V.B}~osztály rendezi a farsangot. +\end{examplelst} +eredménye ,,Idén az V.B~osztály rendezi a farsangot.''. + +A \verbinline|!<szöveg>!| lehet szöveget tároló parancs is. Például +\begin{examplelst} +\newcommand{\osztaly}{V.B} +Idén \az{\osztaly}~osztály rendezi a farsangot. +\end{examplelst} +eredménye ,,Idén az V.B~osztály rendezi a farsangot.''. + +A \verbinline|!<szöveg>!| tartalmazhat szövegformázó parancsokat is (bővebben lásd \az{\ref{subsec-kapocs}}.~alszakaszban). Például +\begin{examplelst} +\newcommand{\osztaly}{V.B} +Idén \az{\textbf{\osztaly}}~osztály rendezi a farsangot. +\end{examplelst} +eredménye ,,Idén az \textbf{V.B}~osztály rendezi a farsangot.''. + +A \verbinline|!<szöveg>!| lehet standard kereszthivatkozás is (\verb|\ref|, \verb|\pageref|, \verb|\eqref|, \verb|\cite|). Például +\begin{examplelst} +\section{Cím}\label{seca} +\section{Cím}\label{secb} +\az{\ref{seca}}.~szakaszban, \az{\textbf{\ref{secb}}}.~szakaszban +\end{examplelst} +eredménye ,,az 1. szakaszban, a \textbf{2}. szakaszban''. Ha a \texttt{section} számláló kiírása római számozásra van állítva a \verb|\renewcommand{\thesection}{\Roman{section}}| paranccsal, akkor az előző kód eredménye ,,az I. szakaszban, a \textbf{II}. szakaszban''. + +\subsubsection*{Korlátozások} +\begin{enumerate} +\item A \verbinline|!<szöveg>!| elején csak a \verb|\ref|, \verb|\pageref|, \verb|\eqref|, \verb|\cite| kereszthivatkozásokkal működik helyesen. Például a \texttt{hyperref} csomag \verb|\ref*| és \verb|\pageref*| parancsai nem működnek közvetlenül \verbinline|!<szöveg>!|-ként, de ez megoldható a később ismertetett \verb|\az*| paranccsal. + +\item A \verbinline|!<szöveg>!| elején a \verb|\cite| parancs jól működik a \texttt{natbib} csomaggal és \texttt{bibtex} esetében is. A \texttt{biblatex} csomag használata esetén akkor működik jól, ha a \texttt{style} vagy \texttt{citestyle} opciók értéke \texttt{numeric}, \texttt{numeric-verb}, \texttt{alphabetic}, \texttt{alphabetic-verb} vagy \texttt{authoryear}. Akkor is jól működik, ha nem adjuk meg a \texttt{style} illetve \texttt{citestyle} opciók egyikét sem. + +\item A pdf vázlatfájába nem lehet \verb|\az| paranccsal szöveget beilleszteni. Tehát például a következő kód nem ad helyes vázlatfát, ha \texttt{hyperref} vagy \texttt{bookmark} csomagot használ: +\begin{examplelst} +\section{...\az{\ref{sec}}...} +\end{examplelst} +Viszont a cím a szövegben, fejlécben és a tartalomjegyzékben jól fog megjelenni. A problémát a később ismertetett \verb|\azsaved| paranccsal lehet megoldani. +\end{enumerate} + +\commandinline|\az*{!<szöveg>!}| + +Ugyanaz mint a \texttt{*} nélküli esetben, de ekkor csak a névelő kerül kiírásra. Például \texttt{hyperref} csomag használatával: +\begin{examplelst} +\section{Cím}\label{sec} +\az*{\ref{sec}}~\ref*{sec}.~szakaszban +\end{examplelst} + +\commandinline|\azv{!<szöveg>!}| + +Ugyanaz mint \verbinline|\az{!<szöveg>!}|, de ha a \verbinline|!<szöveg>!| elején római számként értelmezhető karakterek vannak, akkor a névelő nem az arab megfelelőjéhez igazodik, hanem mint egyszerű karakterekhez. Például +\begin{examplelst} +\renewcommand{\thesection}{\Alph{section}} +\setcounter{section}{21} +\section{Cím}\label{sec} +\az{\ref{sec}}.~szakaszban, \azv{\ref{sec}}.~szakaszban +\end{examplelst} +eredménye ,,az V.~szakaszban, a V.~szakaszban'', mert az első esetben a V betűt római számként értelmezte, a második esetben pedig nem. Mivel most alfanumerikus számra van beállítva a \texttt{section} számláló, ezért a második eset a jó. + +\commandinline|\azv*{!<szöveg>!}| + +Ugyanaz mint a \texttt{*} nélküli esetben, de ekkor csak a névelő kerül kiírásra. + +A parancsok nevében az ,,a'' betű kicserélhető ,,A'' betűre. Ekkor a határozott névelő nagybetűvel fog kezdődni, ami mondatok elején szükséges. + +\commandinline|\Az{!<szöveg>!}|\\ +\commandinline|\Az*{!<szöveg>!}|\\ +\commandinline|\Azv{!<szöveg>!}|\\ +\commandinline|\Azv*{!<szöveg>!}| + +Például +\begin{examplelst} +\section{Cím}\label{sec} +\Az{\ref{sec}}.~szakaszban áttekintjük a téma rövid történetét. +\end{examplelst} +eredménye {,,Az 1.~szakaszban áttekintjük a téma rövid történetét.''}. + +\commandinline|\azsaved| + +Amikor kiadja az előző parancsok bármelyikét, akkor generálódik egy kifejthető \verb|\azsaved| parancs is. Ennek eredménye az a határozott névelő amelyik a szó elé kell. + +Amikor \texttt{hyperref} vagy \texttt{bookmark} csomagot használ, akkor ahogyan azt korábban említettük, a következő kód esetén a cím, fejléc, tartalomjegyzék rendben lesz, de a pdf vázlatfája nem: +\begin{examplelst} +\section{\Az{\ref{sec}}...} +\end{examplelst} +Ez az \verb|\azsaved| paranccsal a következő módon oldható meg: +\begin{examplelst} +\section{\texorpdfstring{\Az{\ref{sec}}...}{\azsaved~\ref{sec}...}} +\end{examplelst} +Ekkor a vázlatfába az +\begin{examplelst} +\azsaved~\ref{sec}... +\end{examplelst} +kód kerül, ami már helyes eredményt ad. Ez a probléma a \verb|\texorpdfstring| helyett az + +\commandinline|\aznotshow| + +paranccsal egyszerűbben is megoldható. Ugyanis ezt helyezve az \verb|\az| (vagy bármelyik verziója) elé, az eredmény nem jelenik meg, csak az \verb|\azsaved| generálódik le a megfelelő határozott névelővel. Így +\begin{examplelst} +\aznotshow\Az{\ref{sec}} +\section{\azsaved~\ref{sec}...} +\end{examplelst} +szintén helyes eredményt ad a vázlatfában is. + +\subsection{Rövidítések} + +\commandinline|\aref{!<kulcs>!} | $\equiv$ \verbinline|\az{\ref{!<kulcs>!}}|\\ +\commandinline|\aref*{!<kulcs>!} | $\equiv$ \verbinline|\az*{\ref{!<kulcs>!}}|\\ +\commandinline|\avref{!<kulcs>!} | $\equiv$ \verbinline|\azv{\ref{!<kulcs>!}}|\\ +\commandinline|\avref*{!<kulcs>!}| $\equiv$ \verbinline|\azv*{\ref{!<kulcs>!}}| + +\commandinline|\aeqref{!<kulcs>!} | $\equiv$ \verbinline|\az{\eqref{!<kulcs>!}}|\\ +\commandinline|\aeqref*{!<kulcs>!} | $\equiv$ \verbinline|\az*{\eqref{!<kulcs>!}}|\\ +\commandinline|\aveqref{!<kulcs>!} | $\equiv$ \verbinline|\azv{\eqref{!<kulcs>!}}|\\ +\commandinline|\aveqref*{!<kulcs>!}| $\equiv$ \verbinline|\azv*{\eqref{!<kulcs>!}}| + +\commandinline|\apageref{!<kulcs>!} | $\equiv$ \verbinline|\az{\pageref{!<kulcs>!}}|\\ +\commandinline|\apageref*{!<kulcs>!} | $\equiv$ \verbinline|\az*{\pageref{!<kulcs>!}}|\\ +\commandinline|\avpageref{!<kulcs>!} | $\equiv$ \verbinline|\azv{\pageref{!<kulcs>!}}|\\ +\commandinline|\avpageref*{!<kulcs>!}| $\equiv$ \verbinline|\azv*{\pageref{!<kulcs>!}}| + +\commandinline|\acite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!} | $\equiv$ \verbinline|\az{\cite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!}}|\\ +\commandinline|\acite*[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!} | $\equiv$ \verbinline|\az*{\cite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!}}|\\ +\commandinline|\avcite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!} | $\equiv$ \verbinline|\azv{\cite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!}}|\\ +\commandinline|\avcite*[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!}| $\equiv$ \verbinline|\azv*{\cite[!<szöveg>!]{!<kulcs1>!,!<kulcs2>!,!...!}}| + +A parancsok nevében az első ,,a'' betű kicserélhető ,,A'' betűre. Ekkor a határozott névelő nagybetűvel fog kezdődni, ami mondatok elején szükséges: + +\commandinline|\Aref \Avref \Aeqref \Aveqref \Apageref \Avpageref \Acite \Avcite| + +Például +\begin{examplelst} +\section{Cím}\label{seca} +\section{Cím}\label{secb} +\Aref{seca}.~és \aref{secb}.~szakaszban +\end{examplelst} +eredménye ,,Az 1. és a 2. szakaszban''. + +\subsection{A huaz kapocs}\label{subsec-kapocs} + +Amikor a \huaz\ csomag megkeresi a megfelelő határozott névelőt, akkor a szövegben található kereszthivatkozásokat lecseréli a kifejthető verziójukra, továbbá a kifejtés során a formázó parancsokat (\verb|\emph|, \verb|\textbf|, \verb|\small|, stb.) figyelmen kívül hagyja. Emiatt lehetséges, hogy például a következő kódok működnek: +\begin{examplelst} +\newcommand{\osztaly}{V.B} +Idén \az{\textbf{\osztaly}}~osztály rendezi a farsangot. +\end{examplelst} + +\begin{examplelst} +\section{Cím}\label{sec} +\az{\textbf{\ref{sec}}} +\end{examplelst} + +\commandinline|\AddToHook{huaz}{!<kód>!}| + +A \huaz\ csomag azon szövegformázó parancsokat hagyja figyelmen kívül, melyek egy előre definiált listában szerepelnek. Amennyiben olyan formázó parancsot használ, ami még ezen a listán nem található, akkor az a felhasználó által is bővíthető. Például +\begin{examplelst} +\newcommand{\myfont}[1]{{\usefont{T1}{yv1d}{m}{n}#1}} +\newcommand{\mytext}{X.A~osztály} +\az{\myfont{\mytext}} +\end{examplelst} +esetén a \verb|\myfont| nincs ezen a listán, ezért ez a kód hibával fordul. A listára az +\begin{examplelst} +\AddToHook{huaz}{\def\myfont{}} +\end{examplelst} +módon vehető fel. Ezzel azt érjük el, hogy a névelő megállapítása során a \verb|\myfont| parancs ne jelentsen semmit. Tehát a következő kód már megfelelően működik: +\begin{examplelst} +\AddToHook{huaz}{\def\myfont{}} +\newcommand{\myfont}[1]{{\usefont{T1}{yv1d}{m}{n}#1}} +\newcommand{\mytext}{X.A~osztály} +\az{\myfont{\mytext}} +\end{examplelst} +Az előző eset a \texttt{huaz} kapocs nélkül így is megoldható: +\begin{examplelst} +\newcommand{\myfont}[1]{{\usefont{T1}{yv1d}{m}{n}#1}} +\newcommand{\mytext}{X.A~osztály} +\az*{\mytext}~\myfont{\mytext} +\end{examplelst} +Ha a \verb|\myfont| a \verb|\mytext| definíciójában szerepel, akkor a \texttt{huaz} kapocs használata nem kerülhető meg: +\begin{examplelst} +\AddToHook{huaz}{\def\myfont{}} +\newcommand{\myfont}[1]{{\usefont{T1}{yv1d}{m}{n}#1}} +\newcommand{\mytext}{\myfont{X.A~osztály}} +\az{\mytext} +\end{examplelst} +Kereszthivatkozásnál, ha maga a számozás van standardtól különböző paranccsal formázva, akkor a \texttt{huaz} kapocs használata szintén nem kerülhető meg. Például +\begin{examplelst} +\AddToHook{huaz}{\def\myfont{}} +\DeclareRobustCommand{\myfont}[1]{{\usefont{T1}{yv1d}{m}{n}#1}} +\renewcommand{\thesection}{\myfont{\arabic{section}}} +\section{Cím}\label{sec} +\aref{sec} +\end{examplelst} +Itt a \verb|\myfont| azért lett erős parancsként definiálva, mert mozgó argumentumba kerül. Az előző példa esete ritkán fordul elő, mert a számláló típusának megadásánál (arab, római, stb.) nem szokás szövegformázó parancsot is alkalmazni. + +\end{document}
\ No newline at end of file |