Latex3: xparse์˜ "verbatim" ์ธ์ˆ˜ ์œ ํ˜•์— ๋Œ€ํ•œ ๋ฌธ์„œ catcodes, ์žฌ์ƒ์‚ฐ ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™” \verb

์— ๋งŒ๋“  2020๋…„ 06์›” 25์ผ  ยท  43์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: latex3/latex3

๋•Œ 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}

image

bug documentation xparse

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ํ† ๋ก ์˜ ๊ฒฐ๊ณผ์— ๊ด€๊ณ„์—†์ด ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
xparse.pdf \NewDocumentCommand๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‚ฌ์˜ ๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•.

๋ชจ๋“  43 ๋Œ“๊ธ€

๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ํƒ€์ž๊ธฐ ๊ธ€๊ผด์˜ -- ํ•ฉ์ž์ž…๋‹ˆ๋‹ค. \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}

test

๊ทธ๋Ÿฌ๋‚˜ 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 ๋“ฑ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ์ด๊ฒƒ์ด ํ•˜๋‚˜๋ณด๋‹ค ํ›จ์”ฌ ๋ช…ํ™•ํ•˜๊ณ  ์•ˆ์ •์ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์”ฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • XeTeX์—๋Š” ํ•„์š”ํ•œ ๊ธฐ๋ณธ ์š”์†Œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ฉ๋ฆฌ์ ์ธ ์„ฑ๋Šฅ์œผ๋กœ 0์—์„œ 255๊นŒ์ง€์˜ ๋ฌธ์ž๋งŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@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{๋ฌธ์„œ}
~~~

image

์ถ•์–ด์  ๋…ผ์ฆ์ด ํ•ด์•ผ ํ•  ์ผ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ์ œ์•ˆ. ๋‚˜๋Š” ์˜ต์…˜ 1์„ ์„ ํ˜ธํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ธก๋ฉด์„ ๋†“์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  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 ์ง€์›์„ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋ชจ๋“  ํ™œ์„ฑ ๋ฌธ์ž๊ฐ€ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•ฉ์ž ์–ต์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  2. ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” catcode ํ…Œ์ด๋ธ” \l_xparse_verbatim_cctab ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌธ์„œ ์ค‘๊ฐ„์— ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” babel ๋ฐ”๋กœ ๊ฐ€๊ธฐ์™€ ๋™๊ธฐํ™”๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒจํ‚ค์ง€ ์ž‘์„ฑ์ž์—๊ฒŒ๋Š” ์ถ•์–ด ์ธ์ˆ˜๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ ์ „์— \l_xparse_verbatim_cctab ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ž˜ํผ ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

  3. 2์˜ ๋ณ€ํ˜•. ์—ฌ๊ธฐ์„œ cctab์€ v ์ธ์ˆ˜๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(์„ ํƒ์  ์ธ์ˆ˜ ๋˜๋Š” ์ƒˆ ๋ฌธ์ž). ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ babel ์†๊ธฐ ๋ฐ \verbatim@nolig@list ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰