From 165b8a035001cffcc97eca9a9522c10c8dc8f416 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 5 May 2024 19:42:43 +0000 Subject: huaz (5may24) git-svn-id: svn://tug.org/texlive/trunk@71180 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/huaz/huaz.pdf | Bin 358059 -> 371130 bytes Master/texmf-dist/doc/latex/huaz/huaz.tex | 620 ++++++++++++++++-------------- Master/texmf-dist/tex/latex/huaz/huaz.sty | 252 +++++++++--- 3 files changed, 532 insertions(+), 340 deletions(-) diff --git a/Master/texmf-dist/doc/latex/huaz/huaz.pdf b/Master/texmf-dist/doc/latex/huaz/huaz.pdf index 9a7ee91180a..1de65fbd309 100644 Binary files a/Master/texmf-dist/doc/latex/huaz/huaz.pdf and b/Master/texmf-dist/doc/latex/huaz/huaz.pdf differ diff --git a/Master/texmf-dist/doc/latex/huaz/huaz.tex b/Master/texmf-dist/doc/latex/huaz/huaz.tex index 4c539cbdd45..4b178dbb44b 100644 --- a/Master/texmf-dist/doc/latex/huaz/huaz.tex +++ b/Master/texmf-dist/doc/latex/huaz/huaz.tex @@ -18,45 +18,56 @@ \documentclass[12pt]{article} \usepackage[a4paper,top=1in,bottom=1in]{geometry} \usepackage{listings,xcolor,lmodern,xurl,multicol} +\usepackage[T1]{fontenc} +\PassOptionsToPackage{ + defaults=hu-min, + labelitems=unchanged, + }{magyar.ldf} +\usepackage[english,magyar]{babel} \usepackage[ pdfstartview=FitH, colorlinks, - allcolors=teal, + allcolors=purple, bookmarksnumbered, bookmarksopen, ]{hyperref} -\usepackage[T1]{fontenc} -\PassOptionsToPackage{defaults=hu-min,labelitems=unchanged}{magyar.ldf} -\usepackage[english,magyar]{babel} +\usepackage{upquote} + \setlength{\parindent}{0pt} \setlength{\parskip}{6pt} +\def\codefont{\usefont{T1}{pcrs}{m}{n}} + \lstset{literate={<}{{$\langle$}}1{>}{{$\rangle$}}1 - {ö}{{\"o}}1{ő}{{\H o}}1{ü}{{\"u}}1{ó}{{\'o}}1{é}{{\'e}}1{á}{{\'a}}1{í}{{\'i}}1} - -\lstnewenvironment{examplelst}{\lstset{ -aboveskip=\bigskipamount, -basicstyle=\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\normalsize\ttfamily, -columns=fullflexible, -keepspaces]} - -\newcommand{\verbinline}{\lstinline[ -delim={[is][\color{green!50!black}\normalfont\small\sffamily]{!}{!}}, -basicstyle=\normalfont\normalsize\ttfamily, -columns=fullflexible, -keepspaces]} + {ű}{{\H u}}1{ö}{{\"o}}1{ő}{{\H o}}1{ü}{{\"u}}1 + {ó}{{\'o}}1{é}{{\'e}}1{á}{{\'a}}1{í}{{\'i}}1} + +\lstnewenvironment{examplelst}{% + \lstset{ + aboveskip=\bigskipamount, + basicstyle=\color{blue!70!black}\small\codefont, + backgroundcolor=\color{black!3}, + rulecolor=\color{black!15}, + frame=trbl, + framesep=5pt, + columns=fullflexible, + xleftmargin=5.4pt, + xrightmargin=5.4pt, + keepspaces}}{} + +\newcommand{\huazcmd}{\hspace*{-15mm}% + \lstinline[ + delim={[is][\color{teal}\normalfont\small\sffamily]{!}{!}}, + basicstyle=\color{magenta}\normalfont\small\codefont, + columns=fullflexible, + keepspaces]} + +\newcommand{\code}{% + \lstinline[ + delim={[is][\color{teal}\normalfont\small\sffamily]{!}{!}}, + basicstyle=\normalfont\small\codefont, + columns=fullflexible, + keepspaces]} \makeatletter \def\@oddfoot{\hfill\textsf{\color{gray}\thepage}\hfill} @@ -64,13 +75,29 @@ keepspaces]} \def\ps@plain{\def\@oddfoot{\hfill\textsf{\color{gray}\thepage}\hfill}} \makeatother -\def\huaz{\textbf{\sffamily hu\color{gray}az}} +\definecolor{hured}{RGB}{207,36,54} +\definecolor{hugreen}{RGB}{69,113,79} +\usepackage{contour} +\def\huazlogo{% + {\contourlength{.8pt}\Huge + \sbox0{\contour{black!30}{\Huge\bfseries\sffamily\color{white}HUAZ}}% + \mbox{}% + \lower-\dimeval{2\ht0/3}% + \rlap{{\color{hured}\rule{\wd0}{\dimeval{\ht0/3}}}}% + {\color{hugreen}\rule{\wd0}{\dimeval{\ht0/3}}}% + \llap{\usebox0}}} + +\def\huaz{\textbf{\sffamily hu\itshape\color{gray}az}} \def\labelenumi{\textbf{\theenumi.}} +\def\huqq#1{,,{\color{gray}#1}''} + +\def\paragraph#1{\par\bigskip\textbf{#1.}} + \begin{document} -\title{The \huaz\ package\\{\large v2.0 (2024/04/28)}} +\title{\huazlogo\\ The \huaz\ package\\{\large v2.1 (2024/05/05)}} \author{Tibor Tómács\\ {\normalsize\href{email:tomacs.tibor@gmail.com}{\nolinkurl{tomacs.tibor@gmail.com}}}} \date{} @@ -78,103 +105,101 @@ keepspaces]} \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''}. +There are two definite articles in Hungarian, ``a'' and ``az'', depending on the first sound of the word that follows. If the word begins with a vowel sound, the definite article is ``az'', otherwise it is ``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. +The \huaz\ package helps the user to automatically insert the correct definite article for cross-references and other commands containing text. +This way, if the number or text changes, the definite articles will change accordingly. -{The documentation is in Hungarian, because only Hungarian-speaking users are interested.} +The documentation of the \huaz\ package is in Hungarian, as it is assumed that only Hungarian-speaking users 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''}. +A magyar nyelvben a határozott névelő egy szó előtt aszerint \huqq{a} vagy \huqq{az}, hogy a szó kiejtve mássalhangzóval vagy magánhangzóval kezdődik. +Például \huqq{a szék} vagy \huqq{az asztal}. Ez egyszerű szabály, de írásban összetett vizsgálatot igényel. Itt felsorolunk néhány nehézséget: \begin{itemize} \item -Ha oldalszámra akarunk hivatkozni, akkor a \verb|\pageref| parancsot szoktuk használni. +Ha oldalszámra akarunk hivatkozni, akkor a \code|\pageref| parancsot szoktuk használni. Ha ez elé kell 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{!!}|'' kód megfelelő eredményt ad. -Hasonló a probléma minden kereszthivatkozás esetén (\verb|\ref|, \verb|\pageref|, \verb|\eqref|, \verb|\cite|). +Például \huqq{az~1.~oldal}, \huqq{a~2.~oldal}, \huqq{az~5.~oldal}, \huqq{a~10.~oldal}. +Így egyáltalán nem biztos, hogy az ,,\code|a \pageref{!!}|'' kód megfelelő eredményt ad. +Hasonló a probléma minden kereszthivatkozás esetén (\code|\ref|, \code|\pageref|, \code|\eqref|, \code|\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ű). +Például \huqq{az~V.~fejezet}, ha V római szám, azaz 5 a jelentése. +Ugyanakkor \huqq{a~V.~fejezet}, ha V betűt jelöl vagy alfanumerikus szám esetén a 22 értéket (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. +Például \huqq{a Magyar Közlöny} de \huqq{az M betű}; \huqq{a Nyugdíjfolyósító Igazgatóság} de \huqq{az Ny betű}; 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} +\subsection{A \texttt{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. +Egyik lehetőség a \code{babel} csomag \code{magyar} opcióját beállító \code{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: +Az ebben definiált \code|\az|, \code|\aref|, \code|\apageref|, \code|\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({!!})| 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{!!}}| parancs. -Ugyanakkor egyik megoldás sem kezeli a római számozású vagy a \verb|\tag| paranccsal címkézett egyenleteket. +Az \code|\eqref| parancsnak nincs névelős verziója. +Helyette az \code|\aref({!!})| használható, de ez dőlt betűs környezetben nem álló betűs eredményt ad, mint az \code|\eqref| esetében. +Másik lehetőség, ami ezt a problémát megoldja, az \code|\az{\eqref{!!}}| parancs. +Ugyanakkor egyik megoldás sem kezeli a római számozású vagy a \code|\tag| paranccsal címkézett egyenleteket. \item -Az \verbinline|\az{\ref{!!}}| és \verbinline|\az{\pageref{!!}}| nem kezeli a római számozású hivatkozásokat. +Az \code|\az{\ref{!!}}| és \code|\az{\pageref{!!}}| 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''}. +Az előző hiba akkor is fennáll, amikor az \code|\az| parancsban egy római számmal kezdődő szöveg van. +Például \code|\az{V.~osztály}| eredménye \huqq{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. +Amennyiben nem kereszthivatkozáshoz, hanem egy szöveghez, vagy valamilyen szöveget tároló parancshoz kell automatikus névelő, akkor az ékezetes betűket \texttt{UTF-8} kódolás esetén rosszul detektálja, mivel azok nem egy, hanem több bájton vannak kódolva, amit a \code{magyar.ldf} nem vesz figyelembe. +Ezért például \code|\az{ágy}| eredménye \huqq{a ágy}, mert nem betűként érzékeli az \huqq{á} betűt, így azt sem tudja, hogy ez magánhangzó. +Meglepő módon \code|\az{száz}| eredménye \huqq{az száz} is rossz. +Ennek oka, hogy számára az \huqq{á} nem betű, ezért az \huqq{sz} betűt különállónak tekinti, ami elé valóban \huqq{az} kell. \item -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. +Például \code|\az{\textbf{N betű}}| esetén a \code|\textbf| parancs megzavarja a szó betűinek detektálását, így a névelő helytelenül \huqq{a} lesz. \end{itemize} -\subsection{A nevelok csomag} +\subsection{A \texttt{nevelok} csomag} -A \texttt{nevelok} csomag szintén az automatikus határozott névelők kezelésére készült. -Nem kezeli az ékezetes betűk semmilyen formáját és sok esetben ad kereszthivatkozásoknál rossz névelőt. -Az utóbbinak az az oka, hogy közvetlenül a \verb|\ref| és \verb|\pageref| parancsokat vizsgálja, amelyek nem kifejthetőek. -Jelenlegi állapotában nem ajánlott használni ezt a csomagot. +A \code{nevelok} csomag szintén a határozott névelők automatikus beillesztéséhez készült. +Nem kezeli az ékezetes betűk semmilyen formáját és sok esetben ad kereszthivatkozásoknál rossz névelőt, ugyanis közvetlenül a \code|\ref| és \code|\pageref| parancsokat vizsgálja, amelyek nem kifejthetőek. +Ezért ennek a csomagnak a jelenlegi verzióját nem szabad használni! \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. +A \huaz\ csomag segíti 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. +Fontos cél volt ezt úgy megtenni, hogy a \code{magyar.ldf} és a \code{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: +A \huaz\ csomag a következő esetekben illeszt az adott szöveg elé \huqq{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). +Az első betű magánhangzó (legyen az kis- vagy nagybetű, ékezetes vagy sem, magyar vagy sem, \texttt{UTF-8}, \texttt{ISO-8859-2} karakterrel vagy ékezet paranccsal 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''. +Például \huqq{M-10}. +Ide soroltunk néhány nem magyar ékezetes mássalhangzót is. +Például \huqq{Ň.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ű''. +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 \huqq{SZ betű}. \item Az első karakter 5. @@ -183,18 +208,16 @@ Az első karakter 5. 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. +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 \huqq{V. emelet} esetén. \section{A \texorpdfstring{\huaz}{huaz} csomag használata} A \huaz\ csomagot a szokott módon kell betölteni: -\commandinline|\usepackage{huaz}| +\huazcmd|\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ő: +Kompatibilis a \code{latex}, \code{pdflatex}, \code{xelatex} és \code{lualatex} fordítókkal is. +A \code{latex} és \code{pdflatex} fordítóval a következő betöltés megfelelő: \begin{examplelst} \documentclass{article} @@ -206,64 +229,71 @@ Például \texttt{pdflatex} fordítóval a következő betöltés megfelelő: ... \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. -Ezeket nem kötelező, de hasznos a \huaz\ csomag használata esetén kikapcsolni. -Ehhez a +Az ékezetes betűket \texttt{UTF-8} (\code{utf8}) és \texttt{ISO-8859-2} (\code{latin2}) kódolású forrásfájl esetén, illetve ékezet parancsokkal (\code|\'|, \code|\"|, \code|\H|, stb.) is jól kezeli. + +A \code{hyperref} csomaggal is kompatibilis, így az is betölthető a \huaz\ mellé. + +A \code{magyar.ldf} \code{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. +Ha ezeket a \huaz\ csomag használata esetén ki akarja kapcsolni, akkor 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} +\PassOptionsToPackage{ + defaults=hu-min, + az=no, + shortrefcmds=no, + hunnewlabel=no + }{magyar.ldf} \end{examplelst} +Ezt nem kell feltétlenül megtenni, mert a \huaz\ csomag átdefiniálja a \code{magyar.ldf} névelőparancsait függetlenül attól, hogy a \code{babel} előtt vagy után töltötte be. -A \texttt{xelatex} és \texttt{lualatex} fordítók esetén \texttt{babel} helyett a +A \code{xelatex} és \code{lualatex} fordítók esetén \code{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. +A \huaz\ csomag felhasználja az \code{xstring}, \code{refcount} és \code{iftex} csomagok szolgáltatásait, így ezek is betöltődnek. +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{!!}| +\huazcmd|\az{!!}| -A \verbinline|!!| elé a megfelelő határozott névelő kerül kisbetűs alakban. -Ha a \verbinline|!!| római számként is értelmezhető (pl.~,,XII''), esetleg azt írásjel vagy szóköz követi (pl.~,,XII.A''), akkor a névelő az arab megfelelőjéhez igazodik. +A \code|!!| elé a megfelelő határozott névelő kerül kisbetűs alakban. +Ha a \code|!!| római számként is értelmezhető (pl.~\huqq{XII}), esetleg azt írásjel vagy szóköz követi (pl.~\huqq{XII.A}), 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.''. +eredménye \huqq{Idén az~V.B~osztály rendezi a farsangot.}. De \begin{examplelst} -\az{VB} \az{V6} +\az{VB}, \az{V4} \end{examplelst} -eredménye ,,a VB a V6'' lesz, mert a ,,V'' után betű illetve szám következik, ezért nem 5-nek értelmezi, hanem V betűnek. +eredménye \huqq{a~VB, a~V4} lesz, mert V után betű illetve szám következik, ezért nem 5-nek, hanem V betűnek értelmezi mindkét esetben. -A \verbinline|!!| lehet szöveget tároló parancs is. +A \code|!!| 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.''. +eredménye \huqq{Idén az~V.B~osztály rendezi a farsangot.}. -A \verbinline|!!| tartalmazhat szövegformázó parancsokat is (bővebben lásd \az{\ref{subsec-ignoralt-parancsok}}.~alszakaszban). +A \code|!!| tartalmazhat szövegformázó parancsokat is (bővebben lásd \az{\ref{subsec-ignoralt-parancsok}}.~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.''. +eredménye \huqq{Idén az~\textbf{V.B}~osztály rendezi a farsangot.}. -A \verbinline|!!| lehet standard kereszthivatkozás is (\verb|\ref|, \verb|\ref*|, \verb|\pageref|, \verb|\pageref*|, \verb|\eqref|, \verb|\refeq|, \verb|\cite|). +A \code|!!| lehet kereszthivatkozás is. Például \begin{examplelst} \section{Cím}\label{seca} @@ -271,34 +301,47 @@ Például \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''. +eredménye \huqq{az~1.~szakaszban, a~\textbf{2}.~szakaszban}. + +Ha a \code{section} számláló kiírása római számozásra van állítva a +\begin{examplelst} +\renewcommand{\thesection}{\Roman{section}} +\end{examplelst} +paranccsal, akkor az előző kód eredménye \huqq{az I. szakaszban, a \textbf{II}. szakaszban}. \subsubsection*{Korlátozások} \begin{enumerate} \item -A \verbinline|!!| elején csak a \verb|\ref|, \verb|\ref*|, \verb|\pageref|, \verb|\pageref*|, \verb|\eqref|, \verb|\refeq|, \verb|\cite| kereszthivatkozásokkal működik helyesen. -(Az \verb|\eqref| az \texttt{amsmath}, a \verb|\refeq| pedig a \texttt{mathtools} csomaggal van definiálva.) +A \code|!!| elején a \code|\ref|, \code|\ref*|, \code|\pageref|, \code|\pageref*|, \code|\eqref|, \code|\refeq| kereszthivatkozásokkal működik helyesen. +Az \code|\eqref| az \code{amsmath}, a \code|\refeq| pedig a \code{mathtools} csomaggal van definiálva. \item -A \verbinline|!!| 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. +A \code|!!| elején a \code|\cite| jól működik a \code{natbib} csomaggal és \code{bibtex} esetében is. + +A \code{biblatex} csomaggal a \code|\cite|, \code|\citeauthor|, \code|\textcite|, \code|\citeyear| akkor működik jól, ha a \code{style} vagy \code{citestyle} opciók értéke: + +\code{numeric}\\ +\code{numeric-verb}\\ +\code{alphabetic}\\ +\code{alphabetic-verb}\\ +\code{authoryear} + +Akkor is jól működik, ha nem adjuk meg a \code{style} illetve \code{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 (bár a cím a szövegben, fejlécben és a tartalomjegyzékben jól fog megjelenni). +A pdf vázlatfájába nem lehet \code|\az| paranccsal szöveget beilleszteni. +Tehát például a következő kód nem ad helyes vázlatfát, ha \code{hyperref} vagy \code{bookmark} csomagot használ (bár a cím a szövegben, fejlécben és a tartalomjegyzékben jól fog megjelenni). \begin{examplelst} \section{...\az{\ref{sec}}...} \end{examplelst} -A problémát a később ismertetett \verb|\azsaved| illetve \verb|\aznotshow| parancsokkal lehet megoldani. +A problémát a később ismertetett \code|\azsaved| illetve \code|\aznotshow| parancsokkal lehet megoldani. \end{enumerate} -\commandinline|\az*{!!}| +\huazcmd|\az*{!!}| -Ugyanaz mint a \verb|*| nélküli esetben, de ekkor csak a névelő kerül kiírásra. -Például, ha az \texttt{amsmath} és \texttt{hyperref} csomagok használata mellett szeretnénk egy link nélküli egyenlethivatkozást, akkor ezt (mivel nincs \verb|\eqref*| definiálva) például így tehetjük meg: +Ugyanaz mint a \code|*| nélküli esetben, de ekkor csak a névelő kerül kiírásra. +Például, ha az \code{amsmath} és \code{hyperref} csomagok használata mellett szeretnénk egy link nélküli egyenlethivatkozást, akkor ezt (mivel nincs \code|\eqref*| definiálva) például így tehetjük meg: \begin{examplelst} \begin{equation}\label{eq} a=b @@ -309,16 +352,16 @@ Szebb lenne a mondat határozott névelővel a képlet száma előtt, de most ne \begin{examplelst} \az{\textup{(\ref*{eq})}} \end{examplelst} -kód, mert az első karakter a \texttt{(} jel lesz, és nem a képlet száma. -Így minden esetben ,,a'' lesz a névelő. +kód, mert az első karakter a \code{(} jel lesz, és nem a képlet száma. +Így minden esetben \huqq{a} lesz a névelő. Ezt a következő módon javíthatjuk: \begin{examplelst} \az*{\ref{eq}} \textup{(\ref*{eq})} \end{examplelst} -\commandinline|\azv{!!}| +\huazcmd|\azv{!!}| -Ugyanaz mint \verbinline|\az{!!}|, de ha a \verbinline|!!| 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. +Ugyanaz mint az \code|\az{!!}|, de ha a \code|!!| 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}} @@ -326,60 +369,60 @@ Például \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ó. +eredménye \huqq{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 \code{section} számláló, ezért a második eset a jó. -\commandinline|\azv*{!!}| +\huazcmd|\azv*{!!}| -Ugyanaz mint a \verb|*| nélküli esetben, de ekkor csak a névelő kerül kiírásra. +Ugyanaz mint a \code|*| nélküli esetben, de ekkor csak a névelő kerül kiírásra. -\commandinline|\Az{!!}|\\ -\commandinline|\Az*{!!}|\\ -\commandinline|\Azv{!!}|\\ -\commandinline|\Azv*{!!}| +\huazcmd|\Az{!!}|\\ +\huazcmd|\Az*{!!}|\\ +\huazcmd|\Azv{!!}|\\ +\huazcmd|\Azv*{!!}| -Ugyanaz, mint a kis ,,\texttt{a}'' betűvel kezdődő parancsok, de ekkor a határozott névelő nagybetűvel kezdődik, ami mondatok elején szükséges. +Ugyanaz, mint a kis \code{a} betűvel kezdődő parancsok, de ekkor a határozott névelő nagybetűvel kezdődik, ami mondatok elején szükséges. 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. +\Az{\ref{sec}}.~szakaszban \dots \end{examplelst} -eredménye {,,Az 1.~szakaszban áttekintjük a téma rövid történetét.''}. +eredménye \huqq{Az 1.~szakaszban \dots}. -\commandinline|\azsaved| +\huazcmd|\azsaved| -Az előző parancsok bármelyikét használva, generálódik egy kifejthető \verb|\azsaved| parancs. -Ennek eredménye az a határozott névelő amelyik a szó elé kell. +Az előző parancsok bármelyikét használva, generálódik egy kifejthető \code|\azsaved| parancs. +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: +Amikor \code{hyperref} vagy \code{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: +Ez az \code|\azsaved| paranccsal a következő módon oldható meg: \begin{examplelst} -\section{% - \texorpdfstring{\Az{\ref{sec}}...}{\azsaved~\ref{sec}...}} +\section{\texorpdfstring {\Az*{\ref{sec}}} {\azsaved} + \ref{sec}...} \end{examplelst} Ekkor a vázlatfába az \begin{examplelst} -\azsaved~\ref{sec}... +\azsaved \ref{sec}... \end{examplelst} -kód kerül, ami már helyes eredményt ad. +kód kerül, ami már helyes eredményt ad. -\commandinline|\aznotshow| +\huazcmd|\aznotshow| -Az előző probléma a \verb|\texorpdfstring| helyett ezzel a 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. +Az előző probléma a \code|\texorpdfstring| helyett ezzel a paranccsal egyszerűbben is megoldható. +Ugyanis ezt helyezve az \code|\az| (vagy bármelyik verziója) elé, az eredmény nem jelenik meg, csak az \code|\azsaved| generálódik le a megfelelő határozott névelővel. Így \begin{examplelst} \aznotshow\Az{\ref{sec}} -\section{\azsaved~\ref{sec}...} +\section{\azsaved \ref{sec}...} \end{examplelst} szintén helyes eredményt ad a vázlatfában is. -\commandinline|\azseparator{!!}| +\huazcmd|\azseparator{!!}| -Ezzel lehet megadni, hogy a határozott névelő és a \verbinline|!!| mivel legyen elválasztva. +Ezzel lehet megadni, hogy a határozott névelő és a \code|!!| mivel legyen elválasztva. Alapértelmezetten ez a törhetetlen normál méretű szóköz, ami \begin{examplelst} \azseparator{~} @@ -393,35 +436,35 @@ módon tehető meg. \subsection{Rövidítések} -A \verb|\ref|, \verb|\ref*|, \verb|\eqref|, \verb|\refeq|, \verb|\pageref|, \verb|\pageref*|, \verb|\cite| kereszthivatkozások elé nem csak az előbbi parancsokkal tehetünk határozott névelőt, ugyanis mindegyiknek van egy rövidített egyparancsos verziója is: +A \code|\ref|, \code|\ref*|, \code|\eqref|, \code|\refeq|, \code|\pageref|, \code|\pageref*|, \code|\cite| kereszthivatkozások elé nem csak az előbbi parancsokkal tehetünk határozott névelőt, ugyanis mindegyiknek van egy rövidített egyparancsos verziója is: -\commandinline|\aref{!!} | $\equiv$ \verbinline|\az{\ref{!!}}|\\ -\commandinline|\aref*{!!} | $\equiv$ \verbinline|\az{\ref*{!!}}|\\ -\commandinline|\avref{!!} | $\equiv$ \verbinline|\azv{\ref{!!}}|\\ -\commandinline|\avref*{!!}| $\equiv$ \verbinline|\azv{\ref*{!!}}| +\huazcmd|\aref{!!} | $\equiv$ \code|\az{\ref{!!}}|\\ +\huazcmd|\aref*{!!} | $\equiv$ \code|\az{\ref*{!!}}|\\ +\huazcmd|\avref{!!} | $\equiv$ \code|\azv{\ref{!!}}|\\ +\huazcmd|\avref*{!!}| $\equiv$ \code|\azv{\ref*{!!}}| -\commandinline|\aeqref{!!} | $\equiv$ \verbinline|\az{\eqref{!!}}|\\ -\commandinline|\aveqref{!!} | $\equiv$ \verbinline|\azv{\eqref{!!}}| +\huazcmd|\aeqref{!!} | $\equiv$ \code|\az{\eqref{!!}}|\\ +\huazcmd|\aveqref{!!} | $\equiv$ \code|\azv{\eqref{!!}}| -\commandinline|\arefeq{!!} | $\equiv$ \verbinline|\az{\refeq{!!}}|\\ -\commandinline|\avrefeq{!!} | $\equiv$ \verbinline|\azv{\refeq{!!}}| +\huazcmd|\arefeq{!!} | $\equiv$ \code|\az{\refeq{!!}}|\\ +\huazcmd|\avrefeq{!!} | $\equiv$ \code|\azv{\refeq{!!}}| -\commandinline|\apageref{!!} | $\equiv$ \verbinline|\az{\pageref{!!}}|\\ -\commandinline|\apageref*{!!} | $\equiv$ \verbinline|\az{\pageref*{!!}}|\\ -\commandinline|\avpageref{!!} | $\equiv$ \verbinline|\azv{\pageref{!!}}|\\ -\commandinline|\avpageref*{!!}| $\equiv$ \verbinline|\azv{\pageref*{!!}}| +\huazcmd|\apageref{!!} | $\equiv$ \code|\az{\pageref{!!}}|\\ +\huazcmd|\apageref*{!!} | $\equiv$ \code|\az{\pageref*{!!}}|\\ +\huazcmd|\avpageref{!!} | $\equiv$ \code|\azv{\pageref{!!}}|\\ +\huazcmd|\avpageref*{!!}| $\equiv$ \code|\azv{\pageref*{!!}}| -\commandinline|\acite[!!]{!!,!!,!...!} | $\equiv$ \verbinline|\az{\cite[!!]{!!,!!,!...!}}|\\ -\commandinline|\avcite[!!]{!!,!!,!...!} | $\equiv$ \verbinline|\azv{\cite[!!]{!!,!!,!...!}}| +\huazcmd|\acite[!!]{!!,!!,!...!} | $\equiv$ \code|\az{\cite[!!]{!!,!!,!...!}}|\\ +\huazcmd|\avcite[!!]{!!,!!,!...!} | $\equiv$ \code|\azv{\cite[!!]{!!,!!,!...!}}| -A parancsok nevében az első ,,\texttt{a}'' betű kicserélhető ,,\texttt{A}'' betűre. +A parancsok nevében az első \code{a} betű kicserélhető \code{A} betűre. Ekkor a határozott névelő nagybetűvel kezdődik, ami mondatok elején szükséges: -\commandinline|\Aref \Aref* \Avref \Avref*|\\ -\commandinline|\Aeqref \Aveqref|\\ -\commandinline|\Arefeq \Avrefeq|\\ -\commandinline|\Apageref \Apageref* \Avpageref \Avpageref*|\\ -\commandinline|\Acite \Avcite| +\huazcmd|\Aref \Aref* \Avref \Avref*|\\ +\huazcmd|\Aeqref \Aveqref|\\ +\huazcmd|\Arefeq \Avrefeq|\\ +\huazcmd|\Apageref \Apageref* \Avpageref \Avpageref*|\\ +\huazcmd|\Acite \Avcite| Például \begin{examplelst} @@ -429,72 +472,76 @@ Például \section{Cím}\label{secb} \Aref{seca}.~és \aref{secb}.~szakaszokban \end{examplelst} -eredménye ,,Az 1. és a 2. szakaszokban''. +eredménye \huqq{Az 1. és a 2. szakaszokban}. \subsection{Ignorált parancsok}\label{subsec-ignoralt-parancsok} -Amikor a \huaz\ csomag megkeresi a megfelelő határozott névelőt, akkor a szövegben a következő parancsokat figyelmen kívül hagyja: +Amikor a \huaz\ csomag megkeresi a megfelelő határozott névelőt, akkor a szövegben a következő parancsokat a nem szöveget tároló argumentumaikkal együtt (ha van) figyelmen kívül hagyja: \begin{multicols}{4} -\verb|\bfseries|\\ -\verb|\color|\\ -\verb|\emph|\\ -\verb|\em|\\ -\verb|\enquote|\\ -\verb|\fbox|\\ -\verb|\fontencoding|\\ -\verb|\fontfamily|\\ -\verb|\fontseries|\\ -\verb|\fontshape|\\ -\verb|\fontsize|\\ -\verb|\footnotesize|\\ -\verb|\framebox|\\ -\verb|\Huge|\\ -\verb|\huge|\\ -\verb|\itshape|\\ -\verb|\LARGE|\\ -\verb|\Large|\\ -\verb|\large|\\ -\verb|\lowercase|\\ -\verb|\makebox|\\ -\verb|\MakeLowercase|\\ -\verb|\MakeUppercase|\\ -\verb|\mbox|\\ -\verb|\mdseries|\\ -\verb|\normalfont|\\ -\verb|\normalsize|\\ -\verb|\rmfamily|\\ -\verb|\scriptsize|\\ -\verb|\scshape|\\ -\verb|\selectfont|\\ -\verb|\sffamily|\\ -\verb|\slshape|\\ -\verb|\small|\\ -\verb|\sscshape|\\ -\verb|\swshape|\\ -\verb|\textbf|\\ -\verb|\textcolor|\\ -\verb|\textit|\\ -\verb|\textmd|\\ -\verb|\textnormal|\\ -\verb|\textqq|\\ -\verb|\textrm|\\ -\verb|\textsc|\\ -\verb|\textsf|\\ -\verb|\textsl|\\ -\verb|\textssc|\\ -\verb|\textsw|\\ -\verb|\texttt|\\ -\verb|\textulc|\\ -\verb|\textup|\\ -\verb|\tiny|\\ -\verb|\told|\\ -\verb|\ttfamily|\\ -\verb|\ulcshape|\\ -\verb|\underline|\\ -\verb|\uppercase|\\ -\verb|\upshape|\\ -\verb|\usefont| +\code|\bfseries|\\ +\code|\color|\\ +\code|\emph|\\ +\code|\em|\\ +\code|\enquote|\\ +\code|\fbox|\\ +\code|\fontencoding|\\ +\code|\fontfamily|\\ +\code|\fontseries|\\ +\code|\fontshape|\\ +\code|\fontsize|\\ +\code|\footnotesize|\\ +\code|\framebox|\\ +\code|\hbox|\\ +\code|\href|\\ +\code|\huge|\\ +\code|\Huge|\\ +\code|\itshape|\\ +\code|\large|\\ +\code|\Large|\\ +\code|\LARGE|\\ +\code|\lowercase|\\ +\code|\makebox|\\ +\code|\MakeLowercase|\\ +\code|\MakeUppercase|\\ +\code|\mbox|\\ +\code|\mdseries|\\ +\code|\negthinspace|\\ +\code|\normalfont|\\ +\code|\normalsize|\\ +\code|\num|\\ +\code|\rmfamily|\\ +\code|\scriptsize|\\ +\code|\scshape|\\ +\code|\selectfont|\\ +\code|\sffamily|\\ +\code|\slshape|\\ +\code|\small|\\ +\code|\sscshape|\\ +\code|\swshape|\\ +\code|\textbf|\\ +\code|\textcolor|\\ +\code|\textit|\\ +\code|\textmd|\\ +\code|\textnormal|\\ +\code|\textqq|\\ +\code|\textrm|\\ +\code|\textsc|\\ +\code|\textsf|\\ +\code|\textsl|\\ +\code|\textssc|\\ +\code|\textsw|\\ +\code|\texttt|\\ +\code|\textulc|\\ +\code|\textup|\\ +\code|\tiny|\\ +\code|\told|\\ +\code|\ttfamily|\\ +\code|\ulcshape|\\ +\code|\underline|\\ +\code|\uppercase|\\ +\code|\upshape|\\ +\code|\usefont| \end{multicols} Emiatt lehetséges, hogy a következő kódok jól működnek: @@ -514,31 +561,30 @@ De ez is helyes eredményt ad: \newcommand{\osztaly}{V.A~osztály} \az{\myfont{\osztaly}} \end{examplelst} -Azért kapunk helyes eredményt, mert a \verb|\myfont| kifejtésében található \verb|\usefont| szerepel az előző listában. Ha a \verb|\myfont| erős parancsként lett volna definiálva, akkor már nem működne megfelelően az előző kód (lásd később). Ebben az esetben a \verb|\myfont| parancsot is fel kell venni a listára. +Azért kapunk helyes eredményt, mert a \code|\myfont| kifejtésében található \code|\usefont| szerepel az előző listában. Ha a \code|\myfont| erős parancsként lett volna definiálva, akkor már nem működne megfelelően az előző kód (lásd később). Ebben az esetben a \code|\myfont| parancsot is fel kell venni a listára. -\commandinline|\huazignorecmd[!!]{!!}| +\huazcmd|\huazignorecmd[!!]{!!}| Az ignoráló listát ezzel lehet bővíteni. -A \verbinline|!!| helyére az ignorálandó parancsot kell írni az argumentumai és \texttt{*} nélkül. -Az \verbinline|!!| \texttt{0} és \texttt{9} közötti egész szám lehet. -Amennyiben ezektől eltérő a beírt \verbinline|!!|, akkor erre figyelmeztet a fordító. - +A \code|!!| helyére az ignorálandó parancsot kell írni az argumentumai és \code{*} nélkül. +Az \code|!!| \code{0} és \code{9} közötti egész szám lehet. +Amennyiben ezektől eltérő a beírt \code|!!|, akkor erre figyelmeztet a fordító. A használata három esetre bontható. \paragraph{1. eset} % -Opció nélkül használva, a \verbinline|!!| a névelő megállapításakor törlődik, de az utána írt \texttt{*}, opció vagy argumentum nem. +Opció nélkül használva, a \code|!!| a névelő megállapításakor törlődik, de az utána írt \code{*}, opció vagy argumentum nem. Deklarációs parancsok esetén jól használható. -Például a \verb|\tiny| parancs így lett besorolva a listába: +Például a \code|\tiny| parancs így lett besorolva a listába: \begin{examplelst} \huazignorecmd{\tiny} \end{examplelst} -Ugyanez alkalmazható abban az esetben is, ha a \verbinline|!!|-nak nincs csillagos verziója sem opciója, továbbá az első \verb|{ }| jelek közé írt argumentuma a figyelembe vett szöveg. Például a \verb|\textrm| ilyen, ezért így lett besorolva: +Ugyanez alkalmazható abban az esetben is, ha a \code|!!|-nak nincs csillagos verziója sem opciója, továbbá az első \code|{ }| jelek közé írt argumentuma a figyelembe vett szöveg. Például a \code|\textrm| ilyen, ezért így lett besorolva: \begin{examplelst} \huazignorecmd{\textrm} \end{examplelst} -A \texttt{shadowtext} csomag \verb|\shadowtext| parancsa nincs a listában, ezért a következő kód eredménye hibás lesz: +A \code{shadowtext} csomag \code|\shadowtext| parancsa nincs a listában, ezért a következő kód eredménye hibás lesz: \begin{examplelst} \newcommand{\osztaly}{X.A~osztály} \az{\shadowtext{\osztaly}} @@ -547,7 +593,7 @@ A listára \begin{examplelst} \huazignorecmd{\shadowtext} \end{examplelst} -módon vehető fel, mert a \verb|\shadowtext| parancsnak sem opciója sem csillagos verziója nincs, továbbá egyetlen argumentuma a szöveg. +módon vehető fel, mert a \code|\shadowtext| parancsnak sem opciója sem csillagos verziója nincs, továbbá egyetlen argumentuma a szöveg. Tehát a következő kód már megfelelően működik: \begin{examplelst} \huazignorecmd{\shadowtext} @@ -559,7 +605,7 @@ Megjegyezzük, hogy az előző eset így is megoldható: \newcommand{\osztaly}{X.A~osztály} \az*{\osztaly}~\shadowtext{\osztaly} \end{examplelst} -Ha a \verb|\shadowtext| az \verb|\osztaly| definíciójában szerepel, akkor nem tudjuk megkerülni a \verb|\huazignorecmd| használatát az előző módon: +Ha a \code|\shadowtext| az \code|\osztaly| definíciójában szerepel, akkor nem tudjuk megkerülni a \code|\huazignorecmd| használatát az előző módon: \begin{examplelst} \huazignorecmd{\shadowtext} \newcommand{\osztaly}{\shadowtext{X.A~osztály}} @@ -568,7 +614,7 @@ Ha a \verb|\shadowtext| az \verb|\osztaly| definíciójában szerepel, akkor nem \paragraph{2. eset} % -Ha az \verbinline|!!| \texttt{0}, akkor a \verbinline|!!| és az utána található első \verb|{| jelig található kódok mindegyike ignorálódik a névelő megállapításakor. +Ha az \code|!!| \code{0}, akkor a \code|!!| és az utána található első \code|{| jelig található kódok mindegyike ignorálódik a névelő megállapításakor. Tehát például \begin{examplelst} \huazignorecmd[0]{\foo} @@ -582,7 +628,7 @@ kódokban a \foo \foo* \foo[...] \foo*[...] \end{examplelst} mindegyike figyelmen kívül lesz hagyva a névelő megállapításakor. -A \verb|\makebox| például +A \code|\makebox| például \begin{examplelst} \huazignorecmd[0]{\makebox} \end{examplelst} @@ -590,23 +636,24 @@ módon lett besorolva, ezért például \begin{examplelst} \makebox[2cm][s]{szöveg} \end{examplelst} -esetén a \verb|\makebox[2cm][s]| rész törlődik és csak a ,,szöveg'' lesz figyelembe véve. +esetén a \code|\makebox[2cm][s]| rész törlődik és csak a \huqq{szöveg} lesz figyelembe véve. -Ha a formázó parancs erős, akkor a \verb|\huazignorecmd| használata nem kerülhető meg még akkor sem, ha a listán szereplő parancsokkal épül fel. +Ha a formázó parancs erős, akkor a \code|\huazignorecmd| használata nem kerülhető meg még akkor sem, ha a listán szereplő parancsokkal épül fel. Például \begin{examplelst} \huazignorecmd[0]{\myfont} -\DeclareRobustCommand{\myfont}[2][cmr]{{\usefont{T1}{#1}{m}{n}#2}} +\DeclareRobustCommand{\myfont}[2][cmr] + {{\usefont{T1}{#1}{m}{n}#2}} \renewcommand{\thesection}{\myfont[yv1d]{\arabic{section}}} \section{Cím}\label{sec} \aref{sec} \end{examplelst} -Ebben a példában nem hagyható el a \texttt{[0]}, mert a \verb|\myfont|-nak van opciója. +Ebben a példában nem hagyható el a \code{[0]}, mert a \code|\myfont|-nak van opciója. \paragraph{3. eset} % -Ha az \verbinline|!!| \texttt{1} és \texttt{9} közötti egész szám, akkor a \verb|\huazignorecmd| parancs a névelő megállapítása során a \verbinline|!!|-ot és az utána következő első \verb|{| jelig tartó kódokat ignorálja, továbbá ezután az első \verbinline|!!| darab \verb|{ }| jelek közé írt részeket szintén figyelmen kívül hagyja. +Ha az \code|!!| \code{1} és \code{9} közötti egész szám, akkor a \code|\huazignorecmd| parancs a névelő megállapítása során a \code|!!|-ot és az utána következő első \code|{| jelig tartó kódokat ignorálja, továbbá ezután az első \code|!!| darab \code|{ }| jelek közé írt részeket szintén figyelmen kívül hagyja. Tehát például \begin{examplelst} \huazignorecmd[1]{\foo} @@ -616,7 +663,7 @@ esetén a \foo{...} \foo*{...} \foo[...]{...} \foo*[...]{...} \end{examplelst} kódok mindegyike figyelmen kívül lesz hagyva a névelő megállapításakor. -Például a \verb|\textcolor| parancs +Például a \code|\textcolor| parancs \begin{examplelst} \huazignorecmd[1]{\textcolor} \end{examplelst} @@ -628,7 +675,7 @@ parancsban a \begin{examplelst} \textcolor[RGB]{20,30,40} \end{examplelst} -kódrész ignorálva lesz, és csak a ,,\texttt{szöveg}'' kerül vizsgálatra a névelő megállapításakor. +kódrész ignorálva lesz, és csak a ,,\code{szöveg}'' kerül vizsgálatra a névelő megállapításakor. Ha a \begin{examplelst} \huazignorecmd[2]{\foo} @@ -639,7 +686,7 @@ parancsot használjuk, akkor a \foo[...]{...}{...} \foo*[...]{...}{...} \end{examplelst} kódok mindegyike figyelmen kívül lesz hagyva a névelő megállapításakor. -Például a \verb|\fontsize| parancs +Például a \code|\fontsize| parancs \begin{examplelst} \huazignorecmd[2]{\fontsize} \end{examplelst} @@ -649,33 +696,30 @@ módon lett a listába sorolva, így a \end{examplelst} parancs figyelmen kívül lesz hagyva a névelő megállapításakor. - - - \subsection{A kereszthivatkozások kifejthető verziói} Ha a szöveg elején kereszthivatkozás van, akkor a határozott névelő megállapítása előtt a kereszthivatkozás parancsát le kell cserélni annak kifejthető verziójára. -A \texttt{refcount} csomag két ilyen parancsot definiál: -A \verb|\getrefnumber| a \verb|\ref|, \verb|\ref*|, \verb|\eqref|, \verb|\refeq| esetén -használható, a \verb|\getpagerefnumber| pedig a \verb|\pageref| és \verb|\pageref*| esetén. +A \code{refcount} csomag két ilyen parancsot definiál: +A \code|\getrefnumber| a \code|\ref|, \code|\ref*|, \code|\eqref|, \code|\refeq| esetén +használható, a \code|\getpagerefnumber| pedig a \code|\pageref| és \code|\pageref*| esetén. -\commandinline|\huazrefcmd{!!}| +\huazcmd|\huazrefcmd{!!}| -Ezzel a paranccsal elérhető, hogy a \verbinline|!!| helyére beírt parancsot és annak csillagos verzióját a határozott névelő megállapítása során a \verb|\getrefnumber| paranccsal helyettesítse. +Ezzel a paranccsal elérhető, hogy a \code|!!| helyére beírt parancsot és annak csillagos verzióját a határozott névelő megállapítása során a \code|\getrefnumber| paranccsal helyettesítse. -A \verb|\ref|, \verb|\ref*|, \verb|\eqref|, \verb|\refeq| parancsok így lettek besorolva a \huaz\ csomagban: +A \code|\ref|, \code|\ref*|, \code|\eqref|, \code|\refeq| parancsok így lettek besorolva a \huaz\ csomagban: \begin{examplelst} \huazrefcmd{\ref} \huazrefcmd{\eqref} \huazrefcmd{\refeq} \end{examplelst} -Ezzel már az \verb|\eqref*| és \verb|\refeq*| is működne, de ezek a csillagos verziók nincsenek definiálva a csillag nélküli verziókat definiáló \texttt{amsmath} illetve \texttt{mathtools} csomagokban. Ezt mi is pótolhatjuk, amire \aref{subsec-eqref}.~alszakaszban láthatunk megoldást. +Ezzel már az \code|\eqref*| és \code|\refeq*| is működne, de ezek a csillagos verziók nincsenek definiálva a csillag nélküli verziókat definiáló \code{amsmath} illetve \code{mathtools} csomagokban. Ezt mi is pótolhatjuk, amire \aref{subsec-eqref}.~alszakaszban láthatunk megoldást. -\commandinline|\huazpagerefcmd{!!}| +\huazcmd|\huazpagerefcmd{!!}| -Ezzel a paranccsal elérhető, hogy a \verbinline|!!| helyére beírt parancsot és annak csillagos verzióját a határozott névelő megállapítása során a \verb|\getpagerefnumber| paranccsal helyettesítse. +Ezzel a paranccsal elérhető, hogy a \code|!!| helyére beírt parancsot és annak csillagos verzióját a határozott névelő megállapítása során a \code|\getpagerefnumber| paranccsal helyettesítse. -A \verb|\pageref| és \verb|\pageref*| parancsok így lettek besorolva a \huaz\ csomagban: +A \code|\pageref| és \code|\pageref*| parancsok így lettek besorolva a \huaz\ csomagban: \begin{examplelst} \huazrefcmd{\pageref} \end{examplelst} @@ -684,16 +728,16 @@ Ezekre láthatunk egy alkalmazást \aref{subsec-autoref}.~alszakaszban. \subsection{Az \texttt{\textbackslash autoref} és \texttt{\textbackslash autopageref} parancsok}\label{subsec-autoref} -Ezeket a parancsokat a \texttt{hyperref} csomag definiálja. +Ezeket a parancsokat a \code{hyperref} csomag definiálja. Ezekkel hivatkozva egy címkére, nem csak a sorszám, hanem a sorszámozott egység neve (szakasz, alszakasz, oldal, stb.) is megjelenik link formájában. Ezeknek léteznek csillagos verzióik is, melyeknek ugyanaz a hatásuk, de nem generálnak linket. -Magyar nyelvű dokumentumokban nem lehet közvetlenül alkalmazni, mert az angol szabály szerint ,,1.~szakasz'' helyett ,,szakasz~1'' lesz az eredménye a következőnek: +Magyar nyelvű dokumentumokban nem lehet közvetlenül alkalmazni, mert az angol szabály szerint \huqq{1.~szakasz} helyett \huqq{szakasz~1} lesz az eredménye a következőnek: \begin{examplelst} \section{Cím}\label{sec} \autoref*{sec} \end{examplelst} -Ezért a használatához először ,,magyarosítani kell'' a következő kóddal a \texttt{hyperref} betöltése után a preambulumban: +A használatához először magyarosítani kell a következő kóddal a \code{hyperref} betöltése után a preambulumban: \begin{examplelst} \usepackage{regexpatch} \makeatletter @@ -707,14 +751,14 @@ Ezért a használatához először ,,magyarosítani kell'' a következő kóddal {\pageref*{#2}.~oldal} {\hyperref[{#2}]{\pageref*{#2}.~oldal}}} \end{examplelst} -Ezután már ,,1.~szakasz'' lesz az eredmény. +Ezután már \huqq{1.~szakasz} lesz az eredmény. -Ha az így módosított \verb|\autoref|, \verb|\autoref*|, \verb|\autopageref|, \verb|\autopageref*| parancsokhoz automatikus határozott névelőt szeretnénk, akkor írjuk be a következőket a \huaz\ betöltése után: +Ha az így módosított \code|\autoref|, \code|\autoref*|, \code|\autopageref|, \code|\autopageref*| parancsokhoz automatikus határozott névelőt szeretnénk, akkor írjuk be a következőket a \huaz\ betöltése után: \begin{examplelst} \huazrefcmd{\autoref} \huazpagerefcmd{\autopageref} \end{examplelst} -Ezután a következő kód eredménye ,,Az 1. szakasz az 1. oldalon kezdődik.'' lesz: +Ezután a következő kód eredménye \huqq{Az 1. szakasz az 1. oldalon kezdődik.} lesz: \begin{examplelst} \section{Cím}\label{sec} \Az{\autoref*{sec}} \az{\autopageref*{sec}on} kezdődik. @@ -722,16 +766,16 @@ Ezután a következő kód eredménye ,,Az 1. szakasz az 1. oldalon kezdődik.'' \subsection{Az \texttt{\textbackslash eqref*} és \texttt{\textbackslash refeq*} parancsok}\label{subsec-eqref} -A \verb|\ref| és \verb|\pageref| parancsoknak definiált a csillagos verziójuk is, amely alapesetben nem különbözik a normál verziótól, de a \texttt{hyperref} csomaggal használva a csillag nélküli verzió linket generál, míg a csillagos nem. +A \code|\ref| és \code|\pageref| parancsoknak definiált a csillagos verziójuk is, amely alapesetben nem különbözik a normál verziótól, de a \code{hyperref} csomaggal használva a csillag nélküli verzió linket generál, míg a csillagos nem. -Az \texttt{amsmath} csomag által definiált \verb|\eqref| a \texttt{hyperref} csomaggal együtt használva szintén generál linket, de ennek nincs definiálva csillagos verziója, így ekkor a link nélküli verzió nem érhető el közvetlenül. +Az \code{amsmath} csomag által definiált \code|\eqref| a \code{hyperref} csomaggal együtt használva szintén generál linket, de ennek nincs definiálva csillagos verziója, így ekkor a link nélküli verzió nem érhető el közvetlenül. További gond az ilyen link nélküli egyenlethivatkozás előtti automatikus névelő megadása. Négy lehetséges megoldást mutatunk. \begin{enumerate} \item -A \texttt{NoHyper} környezet használatával: +A \code{NoHyper} környezet használatával: \begin{examplelst} \begin{equation}\label{eq} a=b @@ -741,16 +785,17 @@ a=b \end{examplelst} \item -Az \verb|\az*| parancs használatával: +Az \code|\az*| parancs használatával: \begin{examplelst} \begin{equation}\label{eq} a=b \end{equation} -\emph{Lásd \az*{\ref{eq}} \textup{(\ref*{eq})} egyenletet!} +\emph{Lásd \az*{\ref{eq}} \textup{(\ref*{eq})} + egyenletet!} \end{examplelst} \item -Az \verb|\eqrefstyle| parancs definiálásával és a \verb|\huazignorecmd| paranccsal, amely az előzőnek egy kényelmesebben használható verziója: +Az \code|\eqrefstyle| parancs definiálásával és a \code|\huazignorecmd| paranccsal, amely az előzőnek egy kényelmesebben használható verziója: \begin{examplelst} \makeatletter \newcommand{\eqrefstyle}[1]{\textup{\tagform@{#1}}} @@ -764,7 +809,7 @@ a=b \end{examplelst} \item -Ebben az esetben definiáljuk az \verb|\eqref| csillagos verzióját (az \texttt{amsmath} betöltése után), amely nem generál linket a \texttt{hyperref} csomaggal együtt használva: +Ebben az esetben definiáljuk az \code|\eqref| csillagos verzióját (az \code{amsmath} betöltése után), amely nem generál linket a \code{hyperref} csomaggal együtt használva: \begin{examplelst} \makeatletter \DeclareDocumentCommand{\eqref}{ s m }{% @@ -781,15 +826,15 @@ a=b \end{equation} \emph{Lásd \az{\eqref*{eq}} egyenletet!} \end{examplelst} -kód helyes eredményt ad, mert a \huaz\ csomagban nem csak az \verb|\eqref|, hanem az \verb|\eqref*| is a kifejthető \verb|\getrefnumber| parancsra lesz kicserélve a határozott névelő meghatározásánál. +kód helyes eredményt ad, mert a \huaz\ csomagban nem csak az \code|\eqref|, hanem az \code|\eqref*| is a kifejthető \code|\getrefnumber| parancsra lesz kicserélve a határozott névelő meghatározásánál. \end{enumerate} -Ugyanez a probléma a \texttt{mathtools} csomag által definiált \verb|\refeq| és a \texttt{hyperref} csomag együttes használata esetében. +Ugyanez a probléma a \code{mathtools} csomag által definiált \code|\refeq| és a \code{hyperref} csomag együttes használata esetében. Az előző négy megoldás mindegyikét lehet alkalmazni megfelelő módosításokkal: \begin{enumerate} \item -A \texttt{NoHyper} környezet használatával: +A \code{NoHyper} környezet használatával: \begin{examplelst} \begin{equation}\label{eq} a=b @@ -799,7 +844,7 @@ a=b \end{examplelst} \item -Az \verb|\az*| parancs használatával: +Az \code|\az*| parancs használatával: \begin{examplelst} \begin{equation}\label{eq} a=b @@ -808,7 +853,7 @@ a=b \end{examplelst} \item -A \verb|\refeqstyle| parancs definiálásával: +A \code|\refeqstyle| parancs definiálásával: \begin{examplelst} \newcommand{\refeqstyle}[1]{\textup{#1}} @@ -817,10 +862,10 @@ a=b \end{equation} \emph{Lásd \az{\refeqstyle{\ref*{eq}}} egyenletet!} \end{examplelst} -Itt nincs szükség a \verb|\huazignorecmd{\refeqstyle}| használatára. +Itt nincs szükség a \code|\huazignorecmd{\refeqstyle}| használatára. \item -A \verb|\refeq*| parancs definiálásával: +A \code|\refeq*| parancs definiálásával: \begin{examplelst} \DeclareDocumentCommand{\refeq}{ s m }{% \textup{% @@ -835,18 +880,18 @@ a=b \end{equation} \emph{Lásd \az{\refeq*{eq}} egyenletet!} \end{examplelst} -kód helyes eredményt ad, mert a \huaz\ csomagban nem csak a \verb|\refeq|, hanem a \verb|\refeq*| is a kifejthető \verb|\getrefnumber| parancsra lesz kicserélve a határozott névelő meghatározásánál. +kód helyes eredményt ad, mert a \huaz\ csomagban nem csak a \code|\refeq|, hanem a \code|\refeq*| is a kifejthető \code|\getrefnumber| parancsra lesz kicserélve a határozott névelő meghatározásánál. \end{enumerate} \subsection{Parancsok átdefiniálása a határozott névelő megállapításakor} -A \verb|\huazignorecmd|, \verb|\huazrefcmd| és \verb|\huazpagerefcmd| parancsok is a címben szereplő funkciót látják el, de speciális esetekben. +A \code|\huazignorecmd|, \code|\huazrefcmd| és \code|\huazpagerefcmd| parancsok is a címben szereplő funkciót látják el, de speciális esetekben. Ezek általánosított verziója a következő parancs: -\commandinline|\huazdefcmd{!<átdefiniáló kód>!}| +\huazcmd|\huazdefcmd{!<átdefiniáló kód>!}| -Az \verbinline|!<átdefiniáló kód>!| helyére egy parancsnak azt a definícióját kell írni, amelynek a határozott névelő megállapítása során kell érvényesülnie. -Például a következő kódokban az egymást követő sorok ekvivalensek: +Az \code|!<átdefiniáló kód>!| helyére egy parancsnak azt a definícióját kell írni, amelynek a határozott névelő megállapítása során kell érvényesülnie. +Felsorolunk néhány kódpárt, melyek ekvivalensek egymással: \begin{examplelst} \huazignorecmd{\tiny} \huazdefcmd{\def\tiny{}} @@ -872,12 +917,11 @@ Alkalmazásként tekintsük a következő kódot, amely hibával fog fordulni: \newcommand{\tananyag}{\LaTeX\ alapjai} A mai óra anyaga \az{\tananyag}. \end{examplelst} -A megfelelő eredményhez a \verb|\LaTeX| parancsot át kell definiálni a névelő megállapításakor: +A megfelelő eredményhez a \code|\LaTeX| parancsot át kell definiálni a névelő megállapításakor: \begin{examplelst} \huazdefcmd{\def\LaTeX{latex}} \newcommand{\tananyag}{\LaTeX\ alapjai} - A mai óra anyaga \az{\tananyag}. \end{examplelst} - +Az eredmény \huqq{A mai óra anyaga a \LaTeX.} lesz. \end{document} \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/huaz/huaz.sty b/Master/texmf-dist/tex/latex/huaz/huaz.sty index 97b93c265be..19ae1dacba7 100644 --- a/Master/texmf-dist/tex/latex/huaz/huaz.sty +++ b/Master/texmf-dist/tex/latex/huaz/huaz.sty @@ -18,7 +18,7 @@ %% The Current Maintainer of this work is Tibor Tómács. %% \NeedsTeXFormat{LaTeX2e}[2021/10/10] -\ProvidesPackage{huaz}[2024/04/28 v2.0 Automatic Hungarian definite articles] +\ProvidesPackage{huaz}[2024/05/05 v2.1 Automatic Hungarian definite articles] \RequirePackage{xstring,refcount,iftex} @@ -33,36 +33,62 @@ %================================================= % % utf8: -% \huaz@list@A = ö,ü,ó,ő,ú,é,á,ű,í,Ö,Ü,Ó,Ő,Ú,É,Á,Ű,Í,Ä,À,Ã,Â,Ă,Å,Ą,Æ,ä,à,ã,â,ă,å,ą,æ,Ë,È,Ê,Ě,Ę,ë,è,ê,ě,ę,Ï,Í,Ì,Î,ï,ì,î,Ò,Õ,Ô,Ø,OE,ò,õ,ô,ø,Ù,Û,Ů,ù,û,ů -% \huaz@list@X = Ĺ,Ł,ļ,ĺ,ł,Ņ,Ń,Ñ,Ň,Ŋ,ń,ñ,ň,ŋ,Ŗ,Ŕ,Ř,ŗ,ŕ,ř,Ş,Ș,Ś,Š,ş,ș,ś,š,Ÿ,Ý,ÿ,ý +% \huaz@list@A = ö,ü,ó,ő,ú,é,á,ű,í,Ö,Ü,Ó,Ő,Ú,É,Á,Ű,Í,Ä,À,Ã,Â,Ă,Å,Ą,Æ,ä,à,ã,â,ă,å,ą,æ, +% Ë,È,Ê,Ě,Ę,ë,è,ê,ě,ę,Ï,Í,Ì,Î,ï,ì,î,Ò,Õ,Ô,Ø,OE,ò,õ,ô,ø,Ù,Û,Ů,ù,û,ů +% \huaz@list@S = Ĺ,Ł,ļ,ĺ,ł,Ņ,Ń,Ñ,Ň,Ŋ,ń,ñ,ň,ŋ,Ŗ,Ŕ,Ř,ŗ,ŕ,ř,Ş,Ș,Ś,Š,ş,ș,ś,š,Ÿ,Ý,ÿ,ý % % latin2: % \huaz@list@A = Ą,ą,Á,Â,Ă,Ä,É,Ę,Ë,Ě,Í,Î,Ó,Ô,Ő,Ö,Ů,Ú,Ű,Ü,á,â,ă,ä,é,ę,ë,ě,í -% \huaz@list@X = Ľ,Ś,Š,Ş,ś,š,ş,Ŕ,Ĺ,Ń,Ň,Ř,Ý,ĺ +% \huaz@list@S = Ľ,Ś,Š,Ş,ś,š,ş,Ŕ,Ĺ,Ń,Ň,Ř,Ý,ĺ % %================================================= -\ifpdftex +\ifpdftex% latex, pdflatex \def\huaz@utfviii{utf8} \ifx\inputencodingname\huaz@utfviii - \def\huaz@list@A{^^c3^^b6,^^c3^^bc,^^c3^^b3,^^c5^^91,^^c3^^ba,^^c3^^a9,^^c3^^a1,^^c5^^b1,^^c3^^ad,^^c3^^96,^^c3^^9c,^^c3^^93,^^c5^^90,^^c3^^9a,^^c3^^89,^^c3^^81,^^c5^^b0,^^c3^^8d,^^c3^^84,^^c3^^80,^^c3^^83,^^c3^^82,^^c4^^82,^^c3^^85,^^c4^^84,^^c3^^86,^^c3^^a4,^^c3^^a0,^^c3^^a3,^^c3^^a2,^^c4^^83,^^c3^^a5,^^c4^^85,^^c3^^a6,^^c3^^8b,^^c3^^88,^^c3^^8a,^^c4^^9a,^^c4^^98,^^c3^^ab,^^c3^^a8,^^c3^^aa,^^c4^^9b,^^c4^^99,^^c3^^8f,^^c3^^8d,^^c3^^8c,^^c3^^8e,^^c3^^af,^^c3^^ac,^^c3^^ae,^^c3^^92,^^c3^^95,^^c3^^94,^^c3^^98,^^4f^^45,^^c3^^b2,^^c3^^b5,^^c3^^b4,^^c3^^b8,^^c3^^99,^^c3^^9b,^^c5^^ae,^^c3^^b9,^^c3^^bb,^^c5^^af} - \def\huaz@list@X{^^c4^^b9,^^c5^^81,^^c4^^bc,^^c4^^ba,^^c5^^82,^^c5^^85,^^c5^^83,^^c3^^91,^^c5^^87,^^c5^^8a,^^c5^^84,^^c3^^b1,^^c5^^88,^^c5^^8b,^^c5^^96,^^c5^^94,^^c5^^98,^^c5^^97,^^c5^^95,^^c5^^99,^^c5^^9e,^^c8^^98,^^c5^^9a,^^c5^^a0,^^c5^^9f,^^c8^^99,^^c5^^9b,^^c5^^a1,^^c5^^b8,^^c3^^9d,^^c3^^bf,^^c3^^bd} + \def\huaz@list@A{% + ^^c3^^b6,^^c3^^bc,^^c3^^b3,^^c5^^91,^^c3^^ba,^^c3^^a9,^^c3^^a1,^^c5^^b1,^^c3^^ad,% + ^^c3^^96,^^c3^^9c,^^c3^^93,^^c5^^90,^^c3^^9a,^^c3^^89,^^c3^^81,^^c5^^b0,^^c3^^8d,% + ^^c3^^84,^^c3^^80,^^c3^^83,^^c3^^82,^^c4^^82,^^c3^^85,^^c4^^84,^^c3^^86,^^c3^^a4,% + ^^c3^^a0,^^c3^^a3,^^c3^^a2,^^c4^^83,^^c3^^a5,^^c4^^85,^^c3^^a6,^^c3^^8b,^^c3^^88,% + ^^c3^^8a,^^c4^^9a,^^c4^^98,^^c3^^ab,^^c3^^a8,^^c3^^aa,^^c4^^9b,^^c4^^99,^^c3^^8f,% + ^^c3^^8d,^^c3^^8c,^^c3^^8e,^^c3^^af,^^c3^^ac,^^c3^^ae,^^c3^^92,^^c3^^95,^^c3^^94,% + ^^c3^^98,^^4f^^45,^^c3^^b2,^^c3^^b5,^^c3^^b4,^^c3^^b8,^^c3^^99,^^c3^^9b,^^c5^^ae,% + ^^c3^^b9,^^c3^^bb,^^c5^^af} + \def\huaz@list@S{% + ^^c4^^b9,^^c5^^81,^^c4^^bc,^^c4^^ba,^^c5^^82,^^c5^^85,^^c5^^83,^^c3^^91,^^c5^^87,% + ^^c5^^8a,^^c5^^84,^^c3^^b1,^^c5^^88,^^c5^^8b,^^c5^^96,^^c5^^94,^^c5^^98,^^c5^^97,% + ^^c5^^95,^^c5^^99,^^c5^^9e,^^c8^^98,^^c5^^9a,^^c5^^a0,^^c5^^9f,^^c8^^99,^^c5^^9b,% + ^^c5^^a1,^^c5^^b8,^^c3^^9d,^^c3^^bf,^^c3^^bd} \huaz@must@oneunit@false \fi \def\huaz@latinii{latin2} \ifx\inputencodingname\huaz@latinii - \def\huaz@list@A{^^a1,^^b1,^^c1,^^c2,^^c3,^^c4,^^c9,^^ca,^^cb,^^cc,^^cd,^^ce,^^d3,^^d4,^^d5,^^d6,^^d9,^^da,^^db,^^dc,^^e1,^^e2,^^e3,^^e4,^^e5,^^e9,^^ea,^^eb,^^ec,^^ed,^^ee,^^f3,^^f4,^^f5,^^f6,^^f9,^^fa,^^fb,^^fc} - \def\huaz@list@X{^^a3,^^a5,^^a6,^^a9,^^aa,^^b3,^^b6,^^b9,^^ba,^^c0,^^c5,^^d1,^^d2,^^d8,^^dd,^^df,^^e0,^^f1,^^f2,^^f8,^^fd} + \def\huaz@list@A{% + ^^a1,^^b1,^^c1,^^c2,^^c3,^^c4,^^c9,^^ca,^^cb,^^cc,^^cd,^^ce,^^d3,^^d4,^^d5,^^d6,% + ^^d9,^^da,^^db,^^dc,^^e1,^^e2,^^e3,^^e4,^^e5,^^e9,^^ea,^^eb,^^ec,^^ed,^^ee,^^f3,% + ^^f4,^^f5,^^f6,^^f9,^^fa,^^fb,^^fc} + \def\huaz@list@S{% + ^^a3,^^a5,^^a6,^^a9,^^aa,^^b3,^^b6,^^b9,^^ba,^^c0,^^c5,^^d1,^^d2,^^d8,^^dd,^^df,% + ^^e0,^^f1,^^f2,^^f8,^^fd} \huaz@must@oneunit@true \fi - \ifx\inputencodingname\huaz@utfviii\else - \ifx\inputencodingname\huaz@latinii\else - \PackageError{huaz}{You should use utf8 or latin2 inputenc}{} - \fi - \fi -\else - \def\huaz@list@A{^^^^00f6,^^^^00fc,^^^^00f3,^^^^0151,^^^^00fa,^^^^00e9,^^^^00e1,^^^^0171,^^^^00ed,^^^^00d6,^^^^00dc,^^^^00d3,^^^^0150,^^^^00da,^^^^00c9,^^^^00c1,^^^^0170,^^^^00cd,^^^^00c4,^^^^00c0,^^^^00c3,^^^^00c2,^^^^0102,^^^^00c5,^^^^0104,^^^^00c6,^^^^00e4,^^^^00e0,^^^^00e3,^^^^00e2,^^^^0103,^^^^00e5,^^^^0105,^^^^00e6,^^^^00cb,^^^^00c8,^^^^00ca,^^^^011a,^^^^0118,^^^^00eb,^^^^00e8,^^^^00ea,^^^^011b,^^^^0119,^^^^00cf,^^^^00cd,^^^^00cc,^^^^00ce,^^^^00ef,^^^^00ec,^^^^00ee,^^^^00d2,^^^^00d5,^^^^00d4,^^^^00d8,^^^^004f,^^^^0045,^^^^00f2,^^^^00f5,^^^^00f4,^^^^00f8,^^^^00d9,^^^^00db,^^^^016e,^^^^00f9,^^^^00fb,^^^^016f} - \def\huaz@list@X{^^^^0139,^^^^0141,^^^^013c,^^^^013a,^^^^0142,^^^^0145,^^^^0143,^^^^00d1,^^^^0147,^^^^014a,^^^^0144,^^^^00f1,^^^^0148,^^^^014b,^^^^0156,^^^^0154,^^^^0158,^^^^0157,^^^^0155,^^^^0159,^^^^015e,^^^^0218,^^^^015a,^^^^0160,^^^^015f,^^^^0219,^^^^015b,^^^^0161,^^^^0178,^^^^00dd,^^^^00ff,^^^^00fd} + \ifdefined\huaz@list@A\else\PackageError{huaz}{You should use utf8 or latin2 inputenc}{}\fi +\else% xelatex lualatex + \def\huaz@list@A{% + ^^^^00f6,^^^^00fc,^^^^00f3,^^^^0151,^^^^00fa,^^^^00e9,^^^^00e1,^^^^0171,^^^^00ed,% + ^^^^00d6,^^^^00dc,^^^^00d3,^^^^0150,^^^^00da,^^^^00c9,^^^^00c1,^^^^0170,^^^^00cd,% + ^^^^00c4,^^^^00c0,^^^^00c3,^^^^00c2,^^^^0102,^^^^00c5,^^^^0104,^^^^00c6,^^^^00e4,% + ^^^^00e0,^^^^00e3,^^^^00e2,^^^^0103,^^^^00e5,^^^^0105,^^^^00e6,^^^^00cb,^^^^00c8,% + ^^^^00ca,^^^^011a,^^^^0118,^^^^00eb,^^^^00e8,^^^^00ea,^^^^011b,^^^^0119,^^^^00cf,% + ^^^^00cd,^^^^00cc,^^^^00ce,^^^^00ef,^^^^00ec,^^^^00ee,^^^^00d2,^^^^00d5,^^^^00d4,% + ^^^^00d8,^^^^004f,^^^^0045,^^^^00f2,^^^^00f5,^^^^00f4,^^^^00f8,^^^^00d9,^^^^00db,% + ^^^^016e,^^^^00f9,^^^^00fb,^^^^016f} + \def\huaz@list@S{% + ^^^^0139,^^^^0141,^^^^013c,^^^^013a,^^^^0142,^^^^0145,^^^^0143,^^^^00d1,^^^^0147,% + ^^^^014a,^^^^0144,^^^^00f1,^^^^0148,^^^^014b,^^^^0156,^^^^0154,^^^^0158,^^^^0157,% + ^^^^0155,^^^^0159,^^^^015e,^^^^0218,^^^^015a,^^^^0160,^^^^015f,^^^^0219,^^^^015b,% + ^^^^0161,^^^^0178,^^^^00dd,^^^^00ff,^^^^00fd} \huaz@must@oneunit@true \fi @@ -76,19 +102,24 @@ \AddToHook{huaz}{% % - % Accent commands will be considered as one syntax unit - \let\"\relax\let\'\relax\let\`\relax\let\~\relax\let\^\relax\let\=\relax\let\.\relax% - \let\b\relax\let\B\relax\let\c\relax\let\d\relax\let\H\relax\let\k\relax\let\r\relax\let\u\relax\let\v\relax% + % Accent commands are considered as one unit + \let\"\relax\let\'\relax\let\`\relax\let\~\relax% \def\'{} ==> \az*{\'{X}}=\az*{X}=\az*{10}=a is not correct + \let\^\relax\let\=\relax\let\.\relax% + \let\b\relax\let\B\relax\let\c\relax\let\d\relax% + \let\H\relax\let\k\relax\let\r\relax\let\u\relax\let\v\relax% % - % Change letter commands - \def\AA{a}\def\aa{a}\def\AE{a}\def\ae{a}\def\IJ{ij}\def\ij{ij}% - \def\l{l}\def\NG{N}\def\ng{n}\def\O{o}\def\o{o}\def\OE{oe}\def\oe{oe}% - \def\SS{s}\def\ss{s}\def\TH{th}\def\th{th}% - \def\DJ{dj}\def\dj{dj}\def\DH{dh}\def\dh{dh}% + % Redefining letter commands + \def\AA{a}\def\aa{a}\def\AE{a}\def\ae{a}% + \def\IJ{a}\def\ij{a}\def\i{a}% \def\i{i} ==> \az*{\i x}=\az*{ix}=\az*{9}=a is not correct + \def\O{a}\def\o{a}\def\OE{a}\def\oe{a}% + \def\l{s}\def\NG{s}\def\ng{s}\def\SS{s}\def\ss{s}% % - % Change sign commands to period + % Redefinition of punctuation commands to period \def\&{.}\def\#{.}\def\%{.}\def\_{.}% % + % Redefinition of space commands to normal space + \def\,{ }\def\:{ }\def\;{ }\def\enspace{ }\def\enskip{ }\def\quad{ }\def\qquad{ }% + % % Ignore commands \def\usefont#1#2#3#4{}% \def\fontsize#1#2{}% @@ -117,12 +148,15 @@ \def\uppercase{}\def\lowercase{}\def\MakeUppercase{}\def\MakeLowercase{}% \def\textcolor#1#{\@gobble}% \textcolor[...]{...}{text} and \textcolor{...}{text} --> text \def\color#1#{\@gobble}% \color[...]{...}text and \color{...}text --> text - \def\mbox{}\def\fbox{}% + \def\href#1#{\@gobble}% \href{URL}{text} --> text + \def\mbox{}\def\fbox{}\def\hbox{}% \def\makebox#1#{}% \makebox{text} and \makebox[opt]{text} --> text \def\framebox#1#{}% \framebox{text} and \framebox[opt]{text} --> text \def\textqq{}% \def\enquote#1#{}% \enquote{text} and \enquote*{text} --> text \def\told{}% + \def\num#1#{}% (siunitx package) \num[...]{1000000} --> 1000000 + \def\negthinspace{}\def\!{}% % % Expandable cross-references commands \def\ref#1#{\getrefnumber}% \ref{...} and \ref*{...} --> \getrefnumber{...} @@ -130,6 +164,9 @@ \def\eqref#1#{\getrefnumber}% \eqref{...} (amsmath) and \eqref*{...} (!!) --> \getrefnumber{...} \def\refeq#1#{\getrefnumber}% \refeq{...} (mathtools) and \refeq*{...} (!!) --> \getrefnumber{...} \def\cite{\huaz@cite}% + \def\citeauthor{\huaz@citeauthor}% + \def\textcite{\huaz@citeauthor}% + \def\citeyear{\huaz@citeyear}% } %================================================= @@ -224,12 +261,16 @@ \UseHook{huaz}% \huaz@must@z@false% % - % 1. syntax unit e,u,i,o,a,E,U,I,O,A,5 + % 1. unit: e,u,i,o,a,E,U,I,O,A,5 + % \StrChar{#1}{1}[\huaz@temp]% \@for\huaz@list:={e,u,i,o,a,E,U,I,O,A,5}% \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% % - % 1. syntax unit accent command and 2. character e,u,i,o,a,E,U,I,O,A (e.g. "\'A") + % 1. unit: accent command + % 2. unit: e,u,i,o,a,E,U,I,O,A + % "\'A" "\'{A}" + % \ifhuaz@must@z@\else% \huaz@temp@if@false% \StrChar{#1}{1}[\huaz@temp]% @@ -242,15 +283,41 @@ \fi% \fi% % - % 1. character in \huaz@list@A + % 1. unit: \",\',\`,\~,\^,\=,\. + % 2. unit: space(s) + % 3. unit: e,u,i,o,a,E,U,I,O,A + % "\' A", "\' A", "\' {A}" + % + \ifhuaz@must@z@\else% + \huaz@temp@if@false% + \StrChar{#1}{1}[\huaz@temp]% + \@for\huaz@list:={\",\',\`,\~,\^,\=,\.}% + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@temp@if@true}{}}% + \ifhuaz@temp@if@% + \huaz@temp@if@false% + \StrChar{#1}{2}[\huaz@temp]% + \IfStrEq{\huaz@temp}{ }{\huaz@temp@if@true}{}% + \fi% + \ifhuaz@temp@if@% + \StrChar{#1}{3}[\huaz@temp]% + \@for\huaz@list:={e,u,i,o,a,E,U,I,O,A}% + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% + \fi% + \fi% + % + % 1. unit: \huaz@list@A + % \ifhuaz@must@z@\else% - \ifhuaz@must@oneunit@\StrLeft{#1}{1}[\huaz@tempa]\else\StrLeft{#1}{2}[\huaz@tempa]\fi% in pdflatex(utf8) Ő is two syntax units; in pdflatex(latin2)/xelatex/lualatex Ő is one syntax unit + \ifhuaz@must@oneunit@\StrLeft{#1}{1}[\huaz@tempa]\else\StrLeft{#1}{2}[\huaz@tempa]\fi% in pdflatex(utf8) Ő is two units; in pdflatex(latin2)/xelatex/lualatex Ő is one unit \@for\huaz@list:=\huaz@list@A% \do{\StrLeft{\huaz@list}{2}[\huaz@tempb]% \IfStrEq{\huaz@tempa}{\huaz@tempb}{\huaz@must@z@true}{}}% \fi% % - % 1. character f,l,m,n,s,r,x,y,F,L,M,N,S,R,X,Y,\huaz@list@X and the 2. character is not letter (e.g. "M-10") + % 1. unit: f,l,m,n,s,r,x,y,F,L,M,N,S,R,X,Y,\huaz@list@S(one unit) + % 2. unit: punctuation + % "M-10" + % \ifhuaz@must@z@\else% \huaz@temp@if@false% \StrChar{#1}{2}[\huaz@temp]% @@ -262,14 +329,18 @@ \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% \ifhuaz@must@oneunit@% \ifhuaz@must@z@\else% - \@for\huaz@list:=\huaz@list@X% in pdflatex(latin2)/xelatex/lualatex Š is one syntax unit + \@for\huaz@list:=\huaz@list@S% in pdflatex(latin2)/xelatex/lualatex Š is one unit \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% \fi% \fi% \fi% \fi% % - % 1. syntax unit accent command, 2. character f,l,m,n,r,x,y,F,L,M,N,S,R,X,Y and the 3. character is not letter (e.g. "\^Y.") + % 1. unit: accent command + % 2. unit: f,l,m,n,r,x,y,F,L,M,N,S,R,X,Y + % 3. unit: punctuation + % "\^Y." + % \ifhuaz@must@z@\else% \huaz@temp@if@false% \StrChar{#1}{3}[\huaz@temp]% @@ -280,15 +351,47 @@ \StrChar{#1}{2}[\huaz@temp]% \@for\huaz@list:={f,l,m,n,s,r,x,y,F,L,M,N,S,R,X,Y}% \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@temp@if@true}{}}% - \ifhuaz@temp@if@% - \StrChar{#1}{1}[\huaz@temp]% - \@for\huaz@list:={\",\',\`,\~,\^,\=,\.,\b,\B,\c,\d,\H,\k,\r,\u,\v}% - \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% - \fi% + \fi% + \ifhuaz@temp@if@% + \StrChar{#1}{1}[\huaz@temp]% + \@for\huaz@list:={\",\',\`,\~,\^,\=,\.,\b,\B,\c,\d,\H,\k,\r,\u,\v}% + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% + \fi% + \fi% + % + % 1. unit: \",\',\`,\~,\^,\=,\. + % 2. unit: space(s) + % 3. unit: f,l,m,n,r,x,y,F,L,M,N,S,R,X,Y + % 4. unit: punctuation + % "\^ Y." + % + \ifhuaz@must@z@\else% + \huaz@temp@if@false% + \StrChar{#1}{4}[\huaz@temp]% + \@for\huaz@list:={;,`,',",+,!,/,=,(,),<,>,@,.,?,:,-,*,0,1,2,3,4,5,6,7,8,9,{,},{ },{},\unskip,\kern}% \kern, \unskip for active characters + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@temp@if@true}{}}% + \ifhuaz@temp@if@% + \huaz@temp@if@false% + \StrChar{#1}{3}[\huaz@temp]% + \@for\huaz@list:={f,l,m,n,s,r,x,y,F,L,M,N,S,R,X,Y}% + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@temp@if@true}{}}% + \fi% + \ifhuaz@temp@if@% + \huaz@temp@if@false% + \StrChar{#1}{2}[\huaz@temp]% + \IfStrEq{\huaz@temp}{ }{\huaz@temp@if@true}{}% + \fi% + \ifhuaz@temp@if@% + \StrChar{#1}{1}[\huaz@temp]% + \@for\huaz@list:={\",\',\`,\~,\^,\=,\.}% + \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% \fi% \fi% % - % first two characters ly,Ly,LY,ny,Ny,NY,sz,Sz,SZ,\huaz@list@X and the 3. character is not letter (e.g. "NY" or "SZ-2") + % 1-2. units: ly,Ly,LY,ny,Ny,NY,sz,Sz,SZ,\huaz@list@S(two units) + % 3. unit: punctuation + % "NY" "SZ-2" + % \ifhuaz@must@z@\else% \huaz@temp@if@false% \StrChar{#1}{3}[\huaz@temp]% @@ -300,14 +403,17 @@ \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% \ifhuaz@must@oneunit@\else% \ifhuaz@must@z@\else% - \@for\huaz@list:=\huaz@list@X% in pdflatex(utf8) Š is two syntax units + \@for\huaz@list:=\huaz@list@S% in pdflatex(utf8) Š is two units \do{\IfStrEq{\huaz@temp}{\huaz@list}{\huaz@must@z@true}{}}% \fi% \fi% \fi% \fi% % - % 1. character 1 and the 2. character is not number (e.g. "1H") + % 1. unit: 1 + % 2. unit: not digit + % "1H" + % \ifhuaz@must@z@\else% \StrChar{#1}{1}[\huaz@temp]% \IfStrEq{\huaz@temp}{1}{% @@ -316,14 +422,17 @@ }{}% \fi% % - % 1000,...,1999 and the 5. character is not number ("ezer...") + % 1000,...,1999 + % 5. unit: not digit + % "1000. sor" --> ezredik sor + % \ifhuaz@must@z@\else% \StrLen{#1}[\huaz@temp]% \setcounter{huaz@temp@count}{\huaz@temp}% \ifnum\value{huaz@temp@count}>3% \StrChar{#1}{1}[\huaz@temp]% \IfStrEq{\huaz@temp}{1}{% - \StrMid{#1}{2}{4}[\huaz@temp]% + \StrLeft{#1}{4}[\huaz@temp]% \IfInteger{\huaz@temp}{% \StrChar{#1}{5}[\huaz@temp]% \IfInteger{\huaz@temp}{}{\huaz@must@z@true}% @@ -332,14 +441,17 @@ \fi% \fi% % - % 1000000,...,1999999 and the 8. character is not number ("egymillió...") + % 1000000,...,1999999 + % 8. unit: not digit + % "1000000 ember" --> egymillió ember + % \ifhuaz@must@z@\else% \StrLen{#1}[\huaz@temp]% \setcounter{huaz@temp@count}{\huaz@temp}% \ifnum\value{huaz@temp@count}>6% \StrChar{#1}{1}[\huaz@temp]% \IfStrEq{\huaz@temp}{1}{% - \StrMid{#1}{2}{7}[\huaz@temp]% + \StrLeft{#1}{7}[\huaz@temp]% \IfInteger{\huaz@temp}{% \StrChar{#1}{8}[\huaz@temp]% \IfInteger{\huaz@temp}{}{\huaz@must@z@true}% @@ -348,14 +460,17 @@ \fi% \fi% % - % 1000000000,...,1999999999 and the 11. character is not number ("egymilliárd...") + % 1000000000,...,1999999999 + % 11. unit: not digit + % "1000000000 ember" --> egymilliárd ember + % \ifhuaz@must@z@\else% \StrLen{#1}[\huaz@temp]% \setcounter{huaz@temp@count}{\huaz@temp}% \ifnum\value{huaz@temp@count}>9% \StrChar{#1}{1}[\huaz@temp]% \IfStrEq{\huaz@temp}{1}{% - \StrMid{#1}{2}{10}[\huaz@temp]% + \StrLeft{#1}{10}[\huaz@temp]% \IfInteger{\huaz@temp}{% \StrChar{#1}{11}[\huaz@temp]% \IfInteger{\huaz@temp}{}{\huaz@must@z@true}% @@ -564,8 +679,8 @@ % %================================================= -\def\huaz@x@#1#{\huaz@citelist} -\def\huaz@cite{\huaz@x@\relax} +\def\huaz@cite@#1#{\huaz@citelist} +\def\huaz@cite{\huaz@cite@\relax} \def\huaz@citelist#1{\huaz@@citelist#1,\relax,} \def\huaz@@citelist#1,{\ifx#1\relax\else\@nameuse{huaz@bib@#1},\expandafter\huaz@@citelist\fi}% @@ -588,6 +703,7 @@ \def\bibcite#1#2{\global\@namedef{huaz@bib@#1}{\huaz@bibparam#2}\huaz@old@bibcite{#1}{#2}} % \@ifpackageloaded{biblatex}{ + \settoggle{blx@labelalpha}{true} \def\huaz@biblatexlabel{} \ifx\blx@opt@eldt@style\@empty\ifx\blx@opt@eldt@citestyle\@empty\def\huaz@biblatexlabel{\strfield{labelnumber}}\fi\fi \def\huaz@temp{numeric} @@ -603,12 +719,44 @@ \ifx\blx@opt@eldt@style\huaz@temp\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi \ifx\blx@opt@eldt@citestyle\huaz@temp\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi \def\huaz@temp{authoryear} - \ifx\blx@opt@eldt@style\huaz@temp\settoggle{blx@labelalpha}{true}\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi - \ifx\blx@opt@eldt@citestyle\huaz@temp\settoggle{blx@labelalpha}{true}\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi + \ifx\blx@opt@eldt@style\huaz@temp\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi + \ifx\blx@opt@eldt@citestyle\huaz@temp\def\huaz@biblatexlabel{\strfield{labelalpha}}\fi \ifx\huaz@biblatexlabel\@empty\else \AtEveryBibitem{\protected@write\@auxout{}{\string\global\string\@namedef{huaz@bib@\strfield{entrykey}}{\huaz@biblatexlabel}}} \fi}{}} +%================================================= +% +% \huaz@citeauthor +% +%================================================= + +\def\huaz@citeauthor@#1#{\huaz@citeauthorlist} +\def\huaz@citeauthor{\huaz@citeauthor@\relax} +\def\huaz@citeauthorlist#1{\huaz@@citeauthorlist#1,\relax,} +\def\huaz@@citeauthorlist#1,{\ifx#1\relax\else\@nameuse{huaz@bibalpha@#1},\expandafter\huaz@@citeauthorlist\fi} + +\AddToHook{begindocument/before}{ + \@ifpackageloaded{biblatex}{ + \AtEveryBibitem{\protected@write\@auxout{}{\string\global\string\@namedef{huaz@bibalpha@\strfield{entrykey}}{\strfield{labelalpha}}}} + }{}} + +%================================================= +% +% \huaz@citeyear +% +%================================================= + +\def\huaz@citeyear@#1#{\huaz@citeyearlist} +\def\huaz@citeyear{\huaz@citeyear@\relax} +\def\huaz@citeyearlist#1{\huaz@@citeyearlist#1,\relax,} +\def\huaz@@citeyearlist#1,{\ifx#1\relax\else\@nameuse{huaz@bibyear@#1},\expandafter\huaz@@citeyearlist\fi} + +\AddToHook{begindocument/before}{ + \@ifpackageloaded{biblatex}{ + \AtEveryBibitem{\protected@write\@auxout{}{\string\global\string\@namedef{huaz@bibyear@\strfield{entrykey}}{\strfield{year}}}} + }{}} + %================================================= % % end -- cgit v1.2.3