๋ fontenc
๊ทธ์ ํจ๊ป๋ก๋๋ฉ๋๋ค T1
์ต์
์ \NewDocumentCommand
๊ทธ๋๋ก ์ธ์๊ฐ ๋จน๋๋ค ์ฒ์ -
์ ๋ด์ฉ์ด ํฌํจ ๋ ๊ฒฝ์ฐ --
์ ์๊ด์์ด ( ์ฌ์ฉ๋ ๊ตฌ๋ถ ๊ธฐํธ ์ค):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xparse}
\NewDocumentCommand {\myverb} { v } {#1}
\begin{document}
\ttfamily
\verb|--all|
\myverb{-all}
\myverb{--all}
\myverb{---all}
\end{document}
๋ณด๊ณ ์๋ ๊ฒ์ ํ์๊ธฐ ๊ธ๊ผด์ --
ํฉ์์
๋๋ค. \texttt{--}
๋ผ๊ณ ์ฐ๋ ๊ฒฝ์ฐ ๋จ์ผ ๋์๋ ํ์๋์ง๋ง PDF์์ ๋ณต์ฌํ๋ฉด ์ค์ ๋ก en-dash์์ ์ ์ ์์ต๋๋ค. ํฌ์ฐฉ๋ ์ธ์๋ฅผ \showtokens
ํ๊ฑฐ๋ \@noligs
์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์ต๋๋ค(LaTeX๋ \verb
์์ --
์ธ์ํ๊ธฐ --
):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xparse}
\makeatletter
% \NewDocumentCommand {\myverb} { v } { \showtokens{#1} }
\NewDocumentCommand {\myverb} { v } {#1}
\begin{document}
\makeatletter
\ttfamily \<strong i="13">@noligs</strong>
-- and \verb|--all|
- and \myverb{-all}
-- and \myverb{--all}
--- and \myverb{---all}
\end{document}
๊ทธ๋ฌ๋ xparse์์ v๋ ๊ทธ๋๋ก(๊ทธ๋ ์ง ์์ต๋๊น?) LaTeX์์๋ ํฉ์๊ฐ ์ต์ ๋ ํ์๊ธฐ๋ฅผ ์๋ฏธํ๋ฏ๋ก v๋ ์ ์๊ฐ์๋ ๊ทธ๋ ๊ฒ ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฅ ๊ทธ๋๋ก ๊ฐ์ ธ์ต๋๋ค(์ฌ๊ธฐ์ ๊ทธ๋๋ก๋ \let\do\<strong i="5">@makeother</strong> \dospecials
). \@noligs
๋ ์ธ์ ์ค์บ์ ์ํ catcode ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ด๊ฒ์ (์ด๋ก ์ ์ผ๋ก) catcode-other ํ ํฐ๋ง ์๋ ํ์ฑ ํ ํฐ์ ์ฝ์
ํ๋ฏ๋ก ์ธ์๊ฐ ์กฐํ ์ด์ธ์ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ด ๊ณ ์ ํ catcode ์ค์ ์ ์ถ๊ฐํ ์ ์๋๋ก ํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
\NewDocumentCommand {\myverb} { v{\@noligs} } {#1}
@FrankMittelbach ๋๋ "verbatim"์ด "์ฌ์ฉ์๊ฐ ์์ฑํ ๊ฒ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ด"์ ์๋ฏธํ๋ค๋ PhelypeOleinik์ ๋์ํฉ๋๋ค. <hyphen hyphen>
~ <endash>
ํฉ์๋ "์ธ์ ์ก๊ธฐ ๋ฒ๊ทธ"๋ณด๋ค "๊ธ๊ผด ๊ธฐ๋ฅ"์ ๊ฐ๊น์ต๋๋ค. ๋ํ \ttfamily
๋ "๊ณ ์ ํญ ๊ธ๊ผด = ํฉ์ ์์"์ ์๋ฏธํ์ง ์์ต๋๋ค. ์ผ๋ถ ๊ณ ์ ํญ ์์ฒด๋ ์ฝ๋๋ฟ๋ง ์๋๋ผ ๋ณธ๋ฌธ ์ ํ์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ด๋ฌํ ๊ฒฝ์ฐ ํ์ดํ ํฉ์๋ฅผ ํ์ ํ์ง ์์์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ \NewDocumentCommand {\myverb} { v } {#1}\myverb{--all}
๋ \verb|--all|
์ฒ๋ผ ํ๋ํด์ผ ํ์ง ์์ต๋๊น?
@dbitouze โ ๊ทธ๋ ์ง ์์ต๋๋ค. \verb์๋ ์ธ์ ์ก๊ธฐ์ ์์์ ๋ ๋ถ๋ถ์ด ์์ต๋๋ค. \NewDocumentCommand์ "v" ์ค์ ์ ์ ์๋ง ์ํํฉ๋๋ค.
@Phelype - ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ง ์๋ ํ, ๋น์ ์ ์ ์์ ์ด๊ฒ ์ด์์ ํ์ง
\NewDocumentCommand {\myverb} { v } { {\<strong i="9">@noligs</strong> #1} }
๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ ํ์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. @dbitouze๋ก ๋์๊ฐ์ \verb๋ฅผ ๋ณต์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
\makeatletter
\NewDocumentCommand {\myverb} { v } { {\@noligs\ttfamily #1} }
\makeatother
2020๋
6์ 25์ผ ๋ชฉ์์ผ 08:22 Denis Bitouzรฉ [email protected]
์ผ๋ค:
ํ์ง๋ง \NewDocumentCommand {\myverb} { v } {#1}\myverb{--all} ์ ์๋์ง ์์ต๋๊น?
\verb|--all|์ฒ๋ผ ํ๋ํ๋ ค๋ฉด?โ
์ ํํ๋ ์๋์ง๋ง v
๋ ์ธ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ์ด๋ฏ๋ก ์ฝ์ต๋๋ค.
verbatim, verb๋ ๋ํ ๋นํ์ค ๊ณ ์ ํญ ๊ธ๊ผด๋ก ๋ด์ฉ์ ์กฐํํฉ๋๋ค.
ํฉ์๋ฅผ ์ต์ ํ๋ ์ค์ .
๋ฐ๋ผ์ ํ์ฌ ๊ธ๊ผด๋ก ์ธ์๋ฅผ ์กฐํํ๊ธฐ ์ํด #1
๋์
ํ ํ์๊ฐ
\verbatim@font\<strong i="19">@noligs</strong>
\language\l<strong i="20">@nohyphenation</strong>
\ @noligs ๊ฐ ํ์ํ๋ค๋ ์ ์ ์ ์ธํ๊ณ
\ defverbatim@nolig@list {\
ํ์ฑ์ผ๋ก ์ค์ ํ์ฌ v๋ฅผ ํ์ฑ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๋๋
\ @noligs ๊ฐ ์๋ํ ์ ์๋๋ก ์ค์บํ ํฐ ์ฃผ์์ ๋ํผ ์ ๊ณต
์ฌ๊ธฐ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/latex3/latex3/issues/756#issuecomment-649302149 ๋๋
๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AAJVYAVLBB4ABB3DD5TETRDRYL3MPANCNFSM4OHMH74A
.
@dbitouze ์๋์, ์ ์ฌ์ฑ์ ์ธ์๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ์์์๋ง ๊ฐ๋ฅํฉ๋๋ค. \myverb!abc!๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์ํ๋ฉ๋๋ค.
์นดํ ๊ณ ๋ฆฌ ์ฝ๋ 10("๊ณต๋ฐฑ")์ด ์ง์ ๋ ๊ณต๋ฐฑ์ ์ ์ธํ๊ณ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋ 12("๊ธฐํ") ๋ฐ 13("ํ์ฑ")์ ํ ํฐ์ผ๋ก ๊ตฌ์ฑ๋ ์ธ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ธ์ ํ์๋ ์ธ์๋ฅผ ์ฝ๊ธฐ๋ง ํ๊ณ ์กฐํํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธ๊ผด ๋ช
๋ น์ด๋ ๋ค๋ฅธ ๋ช
๋ น์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก \@noligs
๋ฅผ ์ ์ฉํ๋๋ก ์ฌ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ํฉ์๋ฅผ ์ต์ ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. luatex๋ฅผ ์ฌ์ฉํ๋ฉด Ligatures=Resetall
์ ์ฉํ ์ ์๊ณ pdflatex๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฐ ๋ค๋ฅธ ๊ธ๊ผด๋ก \pdfnoligatures
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
~~~~
\RequirePackage{์์ -cm}
\documentclass{๊ธฐ์ฌ}
\usepackage[T1]{๊ธ๊ผด}
\usepackage{xfp,xparse}
\makeatletter
\NewDocumentCommand {\myverb} { v } {{\fontsize{\fpeval{\ f@size+0.0001 }}{\normalbaselineskip}\selectfont\pdfnoligatures\font #1}}
\makeatother
\begin{๋ฌธ์}
--๋ชจ๋
๋์ฌ|--๋ชจ๋|
\myverb{-all}
\myverb{--all}
\myverb{---all}
\๊ฐ์ฃผํฌ๊ธฐ
--all \myverb{--all}
\ttํจ๋ฐ๋ฆฌ
--๋ชจ๋
๋์ฌ|--๋ชจ๋|
\myverb{-all}
\myverb{--all}
\myverb{---all}
\๊ฐ์ฃผํฌ๊ธฐ
--all \myverb{--all}
\end{๋ฌธ์}
~~~~
@phelype - ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ง ์๋ ํ, ๋น์ ์ ์ ์์ ์ด๊ฒ ์ด์์ ํ์ง
\NewDocumentCommand {\myverb} { v } { {\ @noligs #1} }
@wspr ์ข
๋ฅ๋ ์์ง๋ง ์๋์: \@noligs
๋ -
(๋ฐ ๋ค๋ฅธ ๋ฌด๋ฆฌ)์ catcode๋ฅผ 13์ผ๋ก ๋ณ๊ฒฝํ ๋ค์ \def-{\leavevmode\kern\z@\char`-}
๋ก ์ ์ํฉ๋๋ค. catcode ๋ณ๊ฒฝ, ์ธ์๋ฅผ ์ก๊ธฐ ์ ์ ์ํํด์ผ ํ๋ฏ๋ก( \scantokens
๊ณ ๋ คํ์ง ์๋ ํ) v
"catcode setup" ์ธ์๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์ ํ ์ฌํญ์ด์ด์ผ ํจ: \NewDocumentCommand {\myverb} { v[\@noligs] } {#1}
).
@phelype ๊ฐ์ฌ ์ค๋ ๋์์ต๋๋ค :)
์ด ๊ฒฝ์ฐ ์ค์ ์ธ์์ ์์ด๋์ด๊ฐ ๋ง์์ ๋ญ๋๋ค... ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ํฉ์๋ฅผ ๋นํ์ฑํํ ์๋ ์์ต๋๋ค.
์ธ์ ์ฌ์์๋ ์ ํ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์ ๋ฌธ์( w
?)๊ฐ ํ์ํฉ๋๋ค.
๋๋ v
-type์ ๋ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ
๋๋ ์ฐจ๋ผ๋ฆฌ V
(์ฐ๋ฆฌ๊ฐ o์ O, d์ D๊ฐ ์๋ ๊ฒ๊ณผ ์ผ์น)์ ํฌํํ ๋ค์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณ ๋ คํฉ๋๋ค.
์ธ์ ์ฌ์์๋ ์ ํ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์ ๋ฌธ์(
w
?)๊ฐ ํ์ํฉ๋๋ค.
ํ๋ ์ถ๊ฐํ ์ ์๋์?
๋๋ o
๋ฐ O{}
์์ผ๋ฏ๋ก v
๋ฐ V{}
๊ฐ ์๋ ๊ฒ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. ๋ฌผ๋ก ๋
ผ์์ ์๋ฏธ๋ ๋ค๋ฅด์ง๋ง...
v-type์ ๋ํด catcode๋ฅผ ์ฌ์ฉ์ ์ ์ํด์ผ ํ๋ ๊ฒฝ์ฐ \@noligs
์ ๊ฐ์ ์์์ ๋ช
๋ น์ด ์๋ cctab ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ช
๋ น ์ฝ๊ธฐ๋ catcodes๋ง ์ค์ ํ๊ณ ํ์ฑ ๋ฌธ์์ ์ ์๋ ๋งคํฌ๋ก ๋ณธ๋ฌธ์์ ์ํ๋์ด์ผ ํฉ๋๋ค.
@u-fischer ๊ทธ๋์ l3cctab
์ ๋ํ ํ๋ณด๋ฅผ ...
ํ์ฌ l3cctab
์๋ ๋ฐฉ์๊ณผ ํ์ฌ ๋ฌธ์ ์ ์ด๋ป๊ฒ ๋์์ด ๋ ์ ์๋์ง ์ ํ ๋ชจ๋ฅด์ง๋ง ์ ๋ง ๊ด์ฌ์ด ์์ต๋๋ค. :)
๋ด ์์ ์ ์๋ฏธ์ v
๊ฐ '๋ง ๊ทธ๋๋ก'์ธ ๋ฐ๋ฉด ์ฌ๊ธฐ์ ํ์ํ ๊ฒ์ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์
๋๋ค. ์ค์ํ ๊ฒ์ ๊ตฌ๋ถ ๋ฌธ์๊ฐ catcode ํ
์ด๋ธ ๋ฑ์ ์ํด ๋ณ๊ฒฝ๋๋์ง ๊ฑฑ์ ํด์ผ ํฉ๋๋ค. ๋ํ ์ฐ๋ฆฌ๋ ๋๋ฌธ์ -> ์๋ฌธ์์ ์ ํ์ ์ธ์ ๋ณํ์ ์ผ๊ด๋๊ฒ ์ ์งํด ์์ต๋๋ค. ๋ฐ๋ผ์ c{<table>}
(= 'catcode')์ ๊ฐ์ ๊ฒ์ด ์ณ์ ๊ฒ์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๊ฐ๋ฅํ ํ ์ค๋ ๋๋ ๋ด์ผ cctab
์ ๋ ฌํ์ฌ ๋
ผ์ํ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
@dbitouze catcode ํ
์ด๋ธ์ ๋ชจ๋ chars(*)์ ๋ํ '๊ณ ์ ' catcode ์ธํธ๋ฅผ ๊ฐ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋จ์ผ ํ ํฐ ์ธํฐํ์ด์ค๋ฅผ ์ป๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก ' \c_document_cctab
์ผ๋ฐ catcodes, \c_initex_cctab
IniTeX ๋ฑ์
๋๋ค. ์์ด๋์ด๋ ์ด๊ฒ์ด ํ๋๋ณด๋ค ํจ์ฌ ๋ช
ํํ๊ณ ์์ ์ ์ด๋ผ๋ ๊ฒ์
๋๋ค. ํ๋์ฉ ์ค์ ํฉ๋๋ค.
@josephwright (ํ ํฝ์์
์ถ๋ ฅ ์ค์ ์๋ ค์ง ํฉ์ ์ธํธ๋ฅผ ์ต์ ํ๋ ๊ฒ์ \tl_replace_all:Nnn
๋ฅผ ์ฌ์ฉํ๊ณ ๋ฌธ์ ๊ฐ ์๋ ๋ฌธ์๋ฅผ ํฉ์๋ฅผ ํ์ฑํ์ง ์๋ ๊ฒ์ผ๋ก ๊ต์ฒดํ์ฌ ์ํํ ์๋ ์์ต๋๋ค.
@Skillmon ์ข์ ์ : ์ถ์ด์ ์๋ฃ๋ฅผ ๊ฐ์ ธ์์ ํ ํฐ์ ๊ต์ฒดํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์๋ฐํ ๋งํ๋ฉด catcode ์ค์ ์ ๋ํด ๊ฑฑ์ ํ๋ ๊ฒ๋ณด๋ค ๋ ์ฌ์ด ์ ๊ทผ ๋ฐฉ์์ผ ๊ฒ์ ๋๋ค.
์ด ํ ๋ก ์ ๊ฒฐ๊ณผ์ ๊ด๊ณ์์ด ๋ฌธ์ํํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์
๋๋ค.
xparse.pdf \NewDocumentCommand๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฌ์ ๋์์ ์ฌํํ๋ ๋ฐฉ๋ฒ.
@josephwright ๋ ๊ต์ฒดํ ํ ํฐ์ ์์ ๋ฐ๋ผ \tl_replace_all:Nnn
์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํจ์ฌ ๋๋น ์ง๋๋ค.
๋ํ ์ด๋ค ๋ฌธ์(๋งค์ฐ ํฐ ๊ธ๊ผด)๋ฅผ ๋์ฒดํด์ผ ํ๋์ง ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น?
์ถ๊ฐ: ๋ง์ ์คํฌ๋ฆฝํธ(๋น์ ๋ฝ์ด)์์ '๊ณ ์ ํญ ๊ธ๊ผด๋ก ์ถ์'๋ฅผ ์กฐํํ๋ค๋ ๊ฒ์ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
@car222222 ๋งค์ฐ ํฐ ๊ธ๊ผด์์ ๊ธ๊ผด ๊ธฐ๋ฅ์ ๋ชจ๋ ์ต์ ํ๋ ์ ์ผํ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ป์์ต๋๋ค. LaTeX๋ ๊ธ๊ผด์์ ๊ฐ๋ฅํ ๋ชจ๋ ํฉ์์ ๋ํด ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ต์ํ LaTeX2e๋ฅผ ์ง์ํ๋ ๋ฌธ์๋ ์ฝ๊ฒ ๋ฎ์ ์ ์์ต๋๋ค( \tl_map_function:NN
๋ฐ \tl_replace_all:Nnn
).
์ถ๊ฐ: AFAIK์๋ ์ผ๋ถ ๋น์ ๋ฝ์ด ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ ์ผ๋ถ ๊ณ ์ ํญ ๊ธ๊ผด์ ์ด์ค ๊ฐ๊ฒฉ ๊ธฐํธ๊ฐ ์์ต๋๋ค.
hbox์ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๊ฒ์ ์๋ํ๋ ๊ฒ ๊ฐ๋ค
ํฉ๋ฆฌ์ ์ผ๋ก ์ํ์ง๋ง ๊ด๋ฒ์ํ๊ฒ ํ
์คํธํ์ง ์์์ต๋๋ค.
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\myverb}{v}{\texttt{\str_map_ function:nN {#1}\ hbox:n }}
\ExplSyntaxOff
\documentclass{๊ธฐ์ฌ}
\usepackage[T1]{๊ธ๊ผด}
\begin{๋ฌธ์}
๋์ฌ|a--b ---c ``<''|
\myverb|a--b ---c ``<''|
\end{๋ฌธ์}
hbox์ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํฉ๋ฆฌ์ ์ผ๋ก ์ ์๋ํ๋ ๊ฒ ๊ฐ์ง๋ง ๊ด๋ฒ์ํ๊ฒ ํ ์คํธํ์ง ์์์ต๋๋ค.
|a--bgrรผรe ---c ``<''|
์๋
์, ๋ ๋ฒ์งธ ์๋( v
์ธ์๋ ํ์ฑ ๋ฌธ์๋ฅผ ๊ทธ๋๋ก ์ ์ง): ๋ชจ๋ ๋นํ์ฑ ๋ฌธ์ ์์ \kern 0pt\relax
๋ฅผ ์ฝ์
ํฉ๋๋ค.
\RequirePackage{xparse}
\ExplSyntaxOn
\tl_new:N \l__myverb_tl
\cs_new:Npn \__myverb:n #1
{
\token_if_active:NF #1 { \kern 0pt\relax }
\exp_not:n {#1}
}
\NewDocumentCommand { \myverb } { v }
{
\tl_set:Nn \l__myverb_tl {#1}
\tl_replace_all:Nnn \l__myverb_tl { ~ } { { ~ } }
\group_begin:
\use:c { verbatim<strong i="8">@font</strong> }
\use:x { \tl_map_function:NN \l__myverb_tl \__myverb:n }
\group_end:
}
\ExplSyntaxOff
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\verb|a--bgrรผรe ----c ``<''|
\myverb|a--bgrรผรe ----c ``<''|
\end{document}
์, ๋ ๋ฒ์งธ ์๋(
v
์ธ์๋ ํ์ฑ ๋ฌธ์๋ฅผ ์๋ ๊ทธ๋๋ก ์ ์ง):
๊ทธ๋ฌ๋ ๋ชจ๋ ์ฌ๋์ ์๋๋๋ค. ์: ์ฌ๊ธฐ ๊ฒฌ์ ์ด ํ์ฑํ๋์ง ์์์ต๋๋ค.
~~~~
\documentclass{๊ธฐ์ฌ}
\usepackage[๋
์ผ์ด]{๋ฐ๋ฒจ}
\begin{๋ฌธ์}
"ใ
\ExplSyntaxOn
\NewDocumentCommand { \myverb } { mv }
{
\tl_analysis_ show:n {#1}
\tl_analysis_ show:n {#2}
}
\ExplSyntaxOff
\myverb{"a}|"a|
\end{๋ฌธ์}
~~~~
์ค๋ค
~~~~
ํ ํฐ ๋ชฉ๋ก์๋ ๋ค์๊ณผ ๊ฐ์ ํ ํฐ์ด ํฌํจ๋ฉ๋๋ค.
" (ํ์ฑ ๋ฌธ์=๋งคํฌ๋ก:->ํ์ฑ @prefix "active@char" )
ใฑ (๋ฌธ์ ใฑ).}
l.29 \myverb{"a}|"a|
?
ํ ํฐ ๋ชฉ๋ก์๋ ๋ค์๊ณผ ๊ฐ์ ํ ํฐ์ด ํฌํจ๋ฉ๋๋ค.
" (์บ๋ฆญํฐ ")
a (๋ฌธ์ a).}
~~~~
@u-fischer ํ์ง๋ง ์ด ๋ ์ถ๋ ฅ ์ค '๋ง ๊ทธ๋๋ก ํ ์คํธ'์์ ์ํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
Non-active " ์ผ์ด์ค๋ LaTeX๊ฐ '๋ง ๊ทธ๋๋ก'๋ฅผ ์๋ฏธํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ถ ์ฌ๋๋ค์ ์๋ฅผ ๋ค์ด ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ '๋ง ๊ทธ๋๋ก'์ฒ๋ผ ๋ณด์ด์ง ์๋ รค ์ถ๋ ฅ์ ๊ธฐ๋ํฉ๋๋ค.
๋ด๊ฐ ์ฌ๋ฌ ๋ฒ ์ผ๋ฏ์ด '๋ง ๊ทธ๋๋ก'๋ ์ธ์ ๊ฐ๋ฅํ 7๋นํธ ASCII ์ธ๋ถ์์ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
@ car222222 ๋ด ์๋ ์ถ๋ ฅ์ด ์๋ ์ ๋ ฅ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋๋ ์๋ฌด ๊ฒ๋ ์ถ๋ ฅํ์ง ์๊ณ xparse๊ฐ ์ก์ ์ธ์๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ๋ถ์ํ ๋ฟ์ ๋๋ค. ๋ฌธ์์์ ํ์ฑ ๋ฌธ์๋ฅผ ์๋ ๊ทธ๋๋ก ๋๊ณ ๋ค๋ฅธ ๋ชจ๋ ํ ํฐ์ catcode 12๋ก, ๊ณต๋ฐฑ์ catcode 10์ผ๋ก ๋ณํํ๋ ์ธ์๋ฅผ ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ํ ์คํธ์์ ๋ด ์์์ด ์๋ชป๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. babel์ ์ฌ์ฉํ ํ์ฑ ๋ฌธ์ ์ค์ ๋ catcode 12๋ก ๋ณํ๋ฉ๋๋ค. ์ธ์ ํ์๊ฐ \dospecial์ ํฌํจํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ง๋ฌธ: ์ด v
-type ์ธ์๋ ์ฐ์์ ์ธ ๊ณต๋ฐฑ์ ํ๋์ ํ ํฐ์ผ๋ก ์ถ์ํด์ผ ํ๋์(catcode 10 ์ฌ์ฉ), ์๋๋ฉด ๊ณต๋ฐฑ์ ์๋ฅผ "๋ง ๊ทธ๋๋ก" ์ ์งํด์ผ ํ๋์? ์ ํํ ์ผ๋ง๋ "๋ง ๊ทธ๋๋ก"์ด์ด์ผํฉ๋๊น (์ง๊ธ ๋งค๋ด์ผ์ ์ ์ ์๋์ด ์์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค)?
@u-fischer ์ ์ถ๋ ฅ ?? ๊ทธ๋ฌ๋ ๋น์ ์ ๋ด ์์๋ ์ง๋ฌธ์ ๋๋ตํ์ต๋๋ค.
ํ์ฑ ์ํ๋ฅผ ์ ์งํ๊ณ ์ถ์ง๋ง รค ๊ธ๋ฆฌํ๊ฐ ์ถ๋ ฅ๋ ์ ์๋๋ก ์ถ์ด์ ์ผ๋ก ๋นํ์ฑ "์ ์์ฑํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ "๋๋ ์๊ฐํ๋ค"๋ผ๊ณ ๋งํ ๋ ์ด๊ฒ์ ๋ด๊ฐ TeX/LaTeX์์ '๋ง ๊ทธ๋๋ก'๋ผ๋ ์๋(40๋ ์ ) ๊ฐ๋ ์์ ๋ฐ๋ฅผ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
์ด์ฉ๋ฉด ๊ทธ ๊ฐ๋ +์ ์๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ง๋ง ์ ํํ ๋ฌด์์ผ๋ก?
๋๋ @RuixiZhang42๊ฐ ๋งํ ๋๋ก: 21์ธ๊ธฐ์ ๊ทธ๋๋ก๋ ์ด๋ป์ต๋๊น?
ํฅ๋ฏธ๋กญ๊ฒ๋ ๋์ฌ*|YZ| (๋ ๊ฐ์ ์ฐ์ ํญ ์ฌ์ฉ) ๋จ์ผ ๊ณต๋ฐฑ โโ์ ๊ณต
๋์ฌ๋ ํญ์ด ์๋ space์ catcode๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋๋ v-type(๋ฐ "+v"๋) ์ธ์๊ฐ ํ์ฌ ์ ์ ์๋์ด ์์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํ ๊ฒ์ธ๊ฐ
catcode ํ
์ด๋ธ์ ์ฌ์ฉํ์ฌ ์๋ฏธ๊ฐ ์์ต๋๊น?
๊ณต๋ฐฑ ๋ฐ ๊ธฐํ ๋ช ๊ฐ(์: `\^^M?)์ catcode 13(ํ์ฑ)์ ์ง์ ํ์ญ์์ค.
catcode 12(๊ธฐํ)๋ฅผ ๋ค๋ฅธ ๋ชจ๋ ๋ฐ์ดํธ์ 0-127(pdfTeX์์), 0-255(XeTeX์์,
upTeX, pTeX) ๋๋ 0-1114111(LuaTeX).
pdfTeX์์ catcode 13(ํ์ฑ)์ ๋ฐ์ดํธ 128-255์ ์ง์ ํฉ๋๋ค.
์ผ๋ถ ํญ๋ชฉ์ catcode 11(๋ฌธ์)๋ก ์ ์งํ๋ ๊ฒ์ด ๋ ๋์๊น์?
๋น์ ์ ํ์ฑ ์ํ๋ฅผ ์ ์งํ๋ ค๋ฉด "
์๋จ, ์ ๋ ๊ทธ๋ฐ ๋ง์ ํ์ง ์์์ต๋๋ค. ๋๋ ๋ฌธ์๋ฅผ ์ฝ์ ํ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์์ํ๋ค๊ณ ์ผ์ต๋๋ค. ์ด๊ฒ์ ๋ฌธ์๊ฐ ๊ฐ์ ๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
ํ์ง๋ง รค ๊ธ๋ฆฌํ๊ฐ ์ถ๋ ฅ๋ ์ ์๋๋ก ๊ทธ๋๋ก "๋นํ์ฑ"์ ์์ฑํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฑ "
์์๋ "a
๋ฅผ ์ถ๋ ฅ์ผ๋ก ์ป์ ์ ์์ต๋๋ค. ๋ก์ปฌ์์ ์ ์ ํ ์ ์๋ฅผ ์ง์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
@u-fischer "ํ์ฑ ์ํ์์๋ ์ถ๋ ฅ์ผ๋ก" ์ป์ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์ ๋๋ค. ํ์ง๋ง '๋ง ๊ทธ๋๋ก ๋ชจ๋'์ ์ด๋ฌํ ์ฌ์ฉ์ ์ง์ ์ด ํ์ํ์ง ์ฌ๋ถ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์๋ง๋ ๊ทธ๊ฒ์ํด์ผํฉ๋๊น?
์ง๋ฌธ์ผ๋ก ๋์๊ฐ์: ์ ๋ ฅ ํ ํฐ ๋ชฉ๋ก์ ์ฝ๊ณ ์ถ๋ ฅ(๊ธ๊ผด, ํฉ์, ์ปค๋, ๊ธฐํ ๊ธ๊ผด ๊ธฐ๋ฅ ๋ฑ ํฌํจ)์ ๋ํด '๋ง ๊ทธ๋๋ก'๊ฐ ์๋ฏธํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
์๋ง๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์
๋๋ค(์ธ์ ๊ฐ๋ฅํ ASCII ์
๋ ฅ ์ ์ฉ):
๋ฌธ์๊ฐ ์ ๊ฑฐ๋๊ฑฐ๋ ๋ฌธ์ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด ๋ค์์ ์ ์ธํ๊ณ ๋๋ถ๋ถ์ catcode๋ 12๊ฐ ๋ฉ๋๋ค. ๋จ, 13์ผ๋ก ๋ณ๊ฒฝ(๋๋ ์ ์ง)๋ฉ๋๋ค. . . .
๋ํ catcode 13 ํ ํฐ์ด ๋๋ ์ธ์ ๋ถ๊ฐ๋ฅํ ๋ค์ ASCII: . . .
์ ํ๋ก์ธ์ค์ ์ํด ๋ด๋ถ์ ์ผ๋ก catcode 13 ํ ํฐ์ผ๋ก ํ๋ช ๋ ์ ์๋ 7๋นํธ ACSII ๋ฌธ์์ ์ถ๋ ฅ(ํ ์คํธ ํํ)์ ์ฒ๋ฆฌํ๋๋ก ํ๊ฒฝ์ ์ฌ์ฉ์ ์ ์ํด์ผ ํฉ๋๋ค.
[์๋ณธ๊ณผ ์๋นํ ๋ค๋ฅด์ง๋ง ์๋ณธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ASCII ์ ๋ ฅ๋ง ํฌํจํฉ๋๋ค.]
@blefloch ๋ ๋ค์
inputenc๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ ๊ฒ ํ์๊ฒ ์ต๋๊น? ๊ทธ๋ค์๊ฒ ์ด๋ค ์ ์๋ฅผ ๋ด๋ฆฌ์๊ฒ ์ต๋๊น?
utf-8 inputenc ์ ๋ ฅ์ verbatim ๋ชจ๋์ ๋ํด ๋ง์ด ์๊ฐํ ์ฌ๋์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ง์๋ ์์ ์ด๋ฉฐ, ์ด๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
utf-8 inputenc ์ ๋ ฅ์ verbatim ๋ชจ๋์ ๋ํด ๋ง์ด ์๊ฐํ ์ฌ๋์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ง์๋ ์์ ์ด๋ฉฐ, ์ด๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
์ต์ํ T1 ์ธ์ฝ๋ฉ์ ๋ํด ์ง์๋ฉ๋๋ค. ๊ทธ๋ฆฌ์ค์ด ๋๋ ์ด์ ์ ์ฌํ ๊ฒฝ์ฐ verbatim@font ๋ฅผ ์ฌ์ ์ํด์ผ ํฉ๋๋ค.
~~~
\documentclass{๊ธฐ์ฌ}
\usepackage[LGR,T1]{๊ธ๊ผด}
\begin{๋ฌธ์}
๋์ฌ|grรผรe โฌ |
\makeatletter
\ defverbatim@font {\ttfamily}
fontencoding{LGR}\selectfont
verb|ฮฮตฮนฮฌ ฯฮฟฯ
ฮฯฯฮผฮต|
\end{๋ฌธ์}
~~~
์ถ์ด์ ๋ ผ์ฆ์ด ํด์ผ ํ ์ผ์ ๋ํ ๊ฐ๋ฅํ ์ ์. ๋๋ ์ต์ 1์ ์ ํธํ์ง๋ง ๋ช ๊ฐ์ง ์ธก๋ฉด์ ๋์น ์ ์์ต๋๋ค.
๋ชจ๋ ์์ง์์ catcodes๋ฅผ 0์์ 255๋ก ์
๋ฐ์ดํธํ๊ณ catcodes 11, 12, 13(๋ฌธ์/๊ธฐํ/ํ์ฑ)์ ๋ณ๊ฒฝํ์ง ์๊ณ catcode 10(๊ณต๋ฐฑ)์ catcode 13(ํ์ฑ)์ผ๋ก, ๋ค๋ฅธ ๋ชจ๋ catcode๋ฅผ 12(๊ธฐํ)๋ก ๋ณ๊ฒฝ . ๊ทธ๋ฐ ๋ค์ \@noligs
์ catcode ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค. ์ฆ, \verbatim@nolig@list
ํญ๋ชฉ์ ํ์ฑํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ธ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด catcodes 11, 12, 13๋ง ํฌํจ๋ ๊ฒฐ๊ณผ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ํ์ฑ ๋ฌธ์๋ฅผ ์ํ์ง ์๋ ์ฌ์ฉ์๋ฅผ ์ํด ๋ค์ ๋ฌธ์์ด๋ก ์ฝ๊ฒ ๋ณํํ ์ ์์ต๋๋ค. inputenc ๋๋ babel-shorthand ์ง์์ ์ํ๋ ์ฌ๋๋ค์ ์ํด ๋ชจ๋ ํ์ฑ ๋ฌธ์๊ฐ ์ ์ง๋์์ต๋๋ค. ๋ํ ํฉ์ ์ต์ ๋ฅผ ์ง์ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝํ ์ ์๋ catcode ํ
์ด๋ธ \l_xparse_verbatim_cctab
์ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ๋ฌธ์ ์ค๊ฐ์ ๋ณ๊ฒฝ๋ ์ ์๋ babel ๋ฐ๋ก ๊ฐ๊ธฐ์ ๋๊ธฐํ๋ฅผ ์ ์งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ํ ํจํค์ง ์์ฑ์์๊ฒ๋ ์ถ์ด ์ธ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ ์ \l_xparse_verbatim_cctab
๋ฅผ ๋ณ๊ฒฝํ๋ ๋ํผ ํจ์๊ฐ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฃจ๊ธฐ ์ด๋ ต์ต๋๋ค.
2์ ๋ณํ. ์ฌ๊ธฐ์ cctab์ v
์ธ์๋ก ์ ๊ณต๋ฉ๋๋ค(์ ํ์ ์ธ์ ๋๋ ์ ๋ฌธ์). ๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ babel ์๊ธฐ ๋ฐ \verbatim@nolig@list
๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋๊ธฐํํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ํ ๋ก ์ ๊ฒฐ๊ณผ์ ๊ด๊ณ์์ด ๋ฌธ์ํํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ ๋๋ค.
xparse.pdf \NewDocumentCommand๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฌ์ ๋์์ ์ฌํํ๋ ๋ฐฉ๋ฒ.