나는 게으른 사람이고 새로운 명령을 자주 사용하는 것을 좋아합니다. 마무리 후 원래 코드로 교체하겠습니다.
\verb|..
여기에 있는 텍스트 에 대한 약어를 갖고 싶습니다... |
하지만 여기서 문제가 발생하고 있습니다. 코드를 수정하는 방법을 모르겠습니다.
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\newcommand\bv{\verb|}
\newcommand\ev{|}
\begin{document}
1. Putting \color{green!40!black} \verb| hurz | \color{black} works
but:
2. Putting \bv hurz \ev fails.
\end{document}
저는 \TeX
마법사가 아니라 초보자이기 때문에 모든 힌트를 높이 평가합니다!
잊어버렸습니다: Linux에서 PDFLateX로 작업하는 중입니다.
문안 인사!
답변1
축어적 명령은 명령을 확장하지 않고 끝 문자열을 찾아야 하므로 명령에서 이를 숨길 수 없습니다 \ev
.
fancyvrb를 사용하여 짧은 축어를 정의할 수 있습니다. 설명서를 참조하세요.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\begin{document}
Putting |\section{abc} hurz| work
\end{document}
답변2
\verb
어디에서 끝낼지 알아야 하지만 그동안 백슬래시를 포함하여 문자에 대한 모든 특수 해석을 비활성화해야 합니다.
자료를 다음과 같이 구분한다고 생각할 수도 있습니다.끈 \ev
하지만 이는 매우 번거로운 일이 될 것입니다. 축어적으로 인쇄될 자료에 없는 단일 문자로 구분하는 것이 훨씬 간단합니다. 그러나 이것은 매우 간접적인 방식으로 작동합니다.
LaTeX가 발견되면 \verb
다음 문자를 검사하고카테고리 코드를 변경합니다"그룹의 끝"을 의미합니다. 따라서 다른 인스턴스를 찾으면 캐릭터의 그룹 끝 특성으로 인해 축어 모드에 필요한 모든 특수 설정이 자동으로 비활성화됩니다. \ev
로 정의할 때 문제점은 무엇입니까 |
? 우선, 이는 |
"그룹 끝"을 의미하는 것으로 변경될 수 없지만 이는 가장 작은 문제입니다. \ev
세 개의 문자열로 구성된 문자열로 검사됩니다.정상문자이기 때문에 \verb
시행 중입니다! 따라서 명령으로 해석할 수 없습니다.
인라인 자료를 그대로 색칠하는 것이 목표라면 더 간단한 방법이 있습니다. 두 가지를 보여 드리겠습니다. 하나는 단일 색상으로, \greenverb
와 동일한 구문으로 매크로를 정의합니다 \verb
. 두 번째 방법은 \colorverb
색상 사양을 인수로 사용하고 일반 색상 축어 명령을 호출하는 방법을 정의합니다.
\documentclass{article}
\usepackage{xcolor}
\usepackage{newverbs}
\newverbcommand{\greenverb}{\color{green!40!black}}{}
\begin{document}
Putting \greenverb|hurz| works
\end{document}
여러 색상이 필요한 경우 일반 명령을 정의한 다음 특수화할 수 있습니다. my
충돌 가능성을 최소화하려면 (이름, 임의의 문자열 등) 보다 더 자세한 접두사를 사용하십시오 .
\documentclass{article}
\usepackage{xcolor}
\usepackage{newverbs}
\makeatletter % allow private control sequences
\newverbcommand{\my@colorverb}{\color{\my@verbatimcolor}}{}
\newcommand{\colorverb}[1]{\def\my@verbatimcolor{#1}\my@colorverb}
\makeatother
\newcommand{\greenverb}{\colorverb{green!40!black}}
\newcommand{\blueverb}{\colorverb{blue!80!black}}
\begin{document}
Putting \greenverb|hurz| works
Putting \blueverb|hurz| works
Putting \colorverb{red!80!black}|hurz| works
\end{document}
답변3
이것은 실제 축어는 아니지만 꽤 가깝습니다. 예를 들어 입력에는 버팀대 균형 조정이 필요합니다.
구문은 사용자가 요청한 것입니다: \bv....\ev
. 또한 축어적 자료에는 줄 바꿈 및 단락(빈 줄) 구분이 포함될 수 있습니다.
부적절한 출력을 생성하는 한 가지 장소는 \bv
입력 행이 단일 백슬래시로 끝나는 경우입니다 \
. catcode-1,2 문자가 변경되면 또 다른 부적절한 출력이 발생합니다. 추가 단계를 수행하지 않는 한 계속 {
및 으로 표시됩니다.}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern,tokcycle}
\tokcycleenvironment\myverb
{\addcytoks[1]{\string##1}}
{\addcytoks{\{}\processtoks{##1}\addcytoks{\}}}
{\ifx\par##1\addcytoks{\\}\else\addcytoks[1]{\string##1}\fi}
{\addcytoks[1]{\string##1}}
\makeatletter
\def\bv{\begingroup\obeylines\catcode`\%=12%
\long\def\tokencycle##1##2##3##4{\begingroup\let\endtokencycle
\endtokcycraw\aftertokcycle{\the\cytoks\expandafter\endgroup
\expandafter\endgroup\expandafter\tcenvscope
\expandafter{\the\cytoks}}\tokcycraw{##1}{##2}{##3}{##4}}%
\myverb}
\makeatother
\let\ev\endtokcycraw
\begin{document}
\textit{here we} go:
\bv ABc. D &^$% \xyz
\ {ef}g~\\
H#I^_ \ev back t\v{o} normal \today
a
b%
c
\end{document}